Skip to content

DGU-DOGE/DOGE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hits

[2023년 2학기] 소프트웨어공학개론 DOGE

🙌 팀원 소개

[Front-End]

이름 전공 학번 Email
김태윤 컴퓨터공학전공 19학번 [email protected]
이민수 컴퓨터공학전공 17학번 [email protected]

[Back-End]

이름 전공 학번 Email
손기민 컴퓨터공학전공 19학번 [email protected]
이형준 컴퓨터공학전공 19학번 [email protected]

⚒️ Tech

badges badges badges

1. 프로젝트명

동국대학교 중앙 도서관 지도 - DOGE

2. 프로젝트 배경

도서관에서 원하는 서적을 찾기 위해 서가 사이에서 한참을 뒤적거린 경험이 한 번쯤 있을 것이다. 도서관의 자료는 모두 ‘청구기호’라는 고유번호가 붙어있기 때문에, 사람들은 청구기호를 통해서만 책을 찾을 수 있다. 도서관에서 제공하는 도서검색 서비스를 이용해도 얻을 수 있는 정보는, 책의 존재 여부와 청구기호 뿐이다. 길고 복잡한 청구기호만으로 책을 찾는 것은 불편하고 어려운 일이다. 따라서 조용한 도서관의 분위기를 방해하지 않고, 신속하고 편하게 원하는 도서를 찾을 수 있도록 동국대학교 중앙도서관의 책 지도 프로그램을 만들고자 한다.

3. DB ERD

4. 기능 소개

1️⃣ 메인화면

2️⃣ 회원가입

3️⃣ 도서검색

4️⃣ 도서상세정보 확인 및 지도 확인

5️⃣ 도서 즐겨찾기 및 삭제

5. 크롤링 & 책 정보 처리 알고리즘

크롤링은 자바 스프링 환경에서 셀레니움을 사용하여 진행하였다.
중앙도서관 홈페이지에서 통합검색 > 소장자료의 URL을 임의로 설정하여 동국대학교 중앙도서관에서 소장하고 있는 모든 단행본을 검색하였다.
첫 페이지에서 다음 페이지로 넘기면서 도서 정보(청구기호, 서명, 저자, 출판사, 사진 링크)를 크롤링한다.

중도 검색

청구기호를 크롤링하기 위해 좌측에 보이는 '중앙도서관 대출가능' 버튼을 셀레니움으로 클릭한 뒤 진행한다.

도서 정보

크롤링한 데이터는 책에 대한 정보만 있을 뿐, 위치에 대한 정보는 크롤링 할 수 없기 때문에 별도의 연산 처리 로직이 필요하다.
아래 사진에서 층 정보, 책장 정보 등에는 모두 null로 채워져 있는 것을 확인할 수 있다.

db이미지

책의 위치를 계산하기 위해 우선 중앙도서관에 방문하여 중앙도서관에 있는 모든 서가의 청구기호 범위와 이름을 조사하였다.
이후 책이 청구기호의 범위에 속하는지 판단하는 알고리즘을 구현하여 책과 서가를 맵핑하였다. 보존도서나 특수한 책은 서가에 존재하지 않기 때문에 맵핑하지 않았다.

이후 SQL을 활용하여 책을 청구기호 순으로 정렬한 뒤, 각 서가에 몇 권의 도서가 존재하는지 SQL의 count를 사용하여 계산한다.
이렇게 계산한 서가마다의 총 도서 수를 서가에 존재하는 책장의 수만큼 균등분할하여 SHELF_COUNT를 계산한다.
이 작업을 BOOK_ROW에 대해서도 실행하여 BOOK_ROW도 계산할 수 있다.
BOOK_CELL을 연산하기 위해 균등분할을 한다면 다중 반복으로 인한 시간 복잡도가 너무 높아지기 때문에 BOOK_ROW의 값을
순서대로 가져와 이번에 가져온 값이 앞에 가져온 값과 달라지면 다시 1부터 증가하는 방법을 사용하였다.

🎯 Commit Convention

  • feat : 새로운 기능 추가
  • fix : 버그 수정
  • docs : 문서 수정
  • style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
  • refactor: 코드 리펙토링
  • test: 테스트 코드, 리펙토링 테스트 코드 추가
  • chore : 빌드 업무 수정, 패키지 매니저 수정

💡 PR Convetion

아이콘 코드 설명
🎨 :art 코드의 구조/형태 개선
⚡️ :zap 성능 개선
🔥 :fire 코드/파일 삭제
🐛 :bug 버그 수정
🚑 :ambulance 긴급 수정
:sparkles 새 기능
💄 :lipstick UI/스타일 파일 추가/수정
:rewind 변경 내용 되돌리기
🔀 :twisted_rightwards_arrows 브랜치 합병
💡 :bulb 주석 추가/수정
🗃 :card_file_box 데이버베이스 관련 수정

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •