HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
♥️
2기 최종 프로젝트 팀별 공간
/
📚
[팀06] Books
/
🌿
요구사항 명세서
/
📜
책 추가
📜

책 추가

description
검색 결과가 없을 경우 관리자에게 추가 요청
api
💭
책 추가
시퀀스다이어그램
domain
책
우선순위
매우높음

1차 스프린트 구현

sequenceDiagram participant User participant View participant 도서시스템(Naver) participant Server participant DB User->>View: 현재 등록 되어있는 책 목록 요청 or 책 검색 View->>도서시스템(Naver): 등록되어있는 책 요청 도서시스템(Naver)->>View: 책 목록 리턴 User->>View: 책 선택 하여 등록 View->>Server: {"title","author",.."isbn":..} 으로 책 등록 요청 Server->>DB: repository.save(book) Server->>View: 저장된 책 id 리턴

최종 결정사항 (2차 스프린트 진행중)

sequenceDiagram participant User participant View participant 도서시스템 participant Server participant DB User->>View: 현재 등록 되어있는 책 목록 요청 or 책 검색 View->>도서시스템: 등록되어있는 책 요청 도서시스템->>View: 책 목록 리턴 User->>View: 책 선택 하여 조회 요청 View->>Server: isbn 으로 책 검색 (GET) Server->>DB: repository.findByIsbn(book) Server->>View: 저장된 책 id 리턴 View->>User: 없습니다(비회원) / 책 등록할래요?(회원)
 
 
 
 
 
 

본격 코드 작성 전 회의할 때 작성하던 내용


  • 책 이미지는 서버에 저장하지 않고 , 실제 도서시스템에 저장되어있는 이미지 url 을 받아와 저장한다
  • 책 등록 성공,실패 여부는, 즉시 알려준다
  • 사용자가 등록신청한 책 목록은 따로 확인할 수 없다
sequenceDiagram participant User participant View participant 도서시스템 participant Server participant DB User->>View: 현재 등록 되어있는 책 목록 요청 or 책 검색 View->>Server: 등록되어있는 책 요청 Server->> DB: 책 데이터 요청 DB->> View: 책 목록 데이터 전송, IF 데이터 없을시 User->> View: 책 등록 요청 loop 도서정보 크롤링 View->>도서시스템: html 요청 도서시스템->>View: html 페이지 리턴 loop 파싱 View->>View: 파싱 -> 도서 정보 데이터 추출 end end View->>Server: 도서 등록 데이터 전송 Server->>DB: 도서 데이터 저장
어린왕자
어린왕자님
  • 등록 데이터 전송
  • isbn 기준으로
redirect → 프론트의 추가 로직이 된다.
중복 크롤링 생긴다
trim 한 데이터를 넘겨주신다면 좀 더 위와 같은 상황이 줄어들겠지만, “어린왕자"로는 “어린왕자님"은 검색이 안되기 때문에, 결국 추가적인 리다이렉션과 중복 크롤링이 생길 수 밖에 없는 상황
 

검색어에 대한 정책 결론

  • 책 제목으로 검색을 하고 → %Like% ( 포함된 문자열로 검색 가능 함 ) → column 기준 정렬 까진 가능합니다
    • 좀 더 일치하는 결과부터 내려면 Like%
    • ( 참고- 개선가능성 : %Like
    • Like%
      %Like
    • 검색 결과 목록에서 Pagination OK
  • 어린왕자, 어린왕자 하얀 이런 정렬은 힘듭니다! ㅠㅠ ( 검색 엔진이 추가로 필요하다 )
 
 

검색어 조건

  • 책 목록
    • 필터링 조건 ( 우선순위를 결정해 보자 ) → UX 관점에서도 순위를 두 가지로 나눠봐야 할 것 같다
    • 🐳 
      • 1. 저자, 제목
          1. ISBN 2.카테고리 + 검색어
      • 저자 : Like
      • 제목 : Like
      • ISBN ( Unique)
        • 어린왕자 → 어린왕자 하얀, . ..
        • 카테고리별 검색.. Like ‘title’ Where category = ?
    • Pagination ( 카운트 값이 필요할 것 같다고 하심 )
      • next 알 수 있음