ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Book in seoul]도서 검색 사이트
    프로젝트 2023. 4. 16. 23:08

     

     

     

    library-search-machine

    서울에 위치한 도서관들의 도서데이터를 검색. library-search-machine has 5 repositories available. Follow their code on GitHub.

    github.com

     

    아키텍쳐

     

    기술적 의사 결정

    • Redis
      • 로그인 과정에서 생성되는 Refresh Token은 영구적으로 저장될 필요가 없다. Redis는 key-value 쌍으로 데이터를 관리할 수 있는 데이터 스토리지이며 in-memory로 데이터를 관리하므로 영구적으로 저장할 수 없는 대신 굉장히 빠른 액세스 속도가 보장한다. 추가로 기본적으로 데이터의 유효기간을 지정할수 있다. 이러한 Redis의 특성때문에 RefreshToken를 Redis에서 관리하도록 하였다.

     

    • Elastic Search
      • 데이터가 1700만개이므로 대용량 검색엔진 Elastic search오픈소스를 사용하기로 하였다. Elastic search는 역색인을 활용한 검색 속도가 월등히 빠르며 한국어 형태소 분석기인 nori를 제공하므로 Mysql보다 더 높은 검색 성능(속도, 정확도)을 보여주었다.

     

    • Thymeleaf
      • 팀원이 전부 백엔드 이므로 React나 다른 프레임워크를 학습하기에 부담이 있었다. 그래서 서버 사이드 렌더링을 통하여 view을 제공하기로 하였다. jsp를 쓰자니 학습하기 까다롭고 활용하기에 어려움을 겪어 jsp의 단점을 보완하고 spring 진영에서 밀고 있는 thymleatf를 사용하기로 하였다.

     

    • MongoDB
      • MongoDB는 다른 데이터베이스 보다 높은 확장성과 유연성을 가지고 있고 만들고자 하는 기능인 도서 코멘트의 경우 수정이나 작성에 비해 읽기가 많기 때문에 RDB보다 Nosql인 MongoDB를 사용하였다.

     

    핵심기능

    1. 독서 검색 엔진
      • 자동 완성
      • 상세 검색
    1. 도서 코멘트 기능
    2. 도서 목록 자동 업데이트
    3. 사용자 맞춤 도서 추천
    4. 로그인 / 회원 가입

    댓글

Tistory.