Giter VIP home page Giter VIP logo

book-review-service's Introduction

μ±… 리뷰 μ„œλΉ„μŠ€

책을 λ¦¬λ·°ν•˜κ³  μ‘°νšŒν•  수 μžˆλŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ κΈ°λŠ₯ 및 섀계

  • νšŒμ›κ°€μž…

    • μ‚¬μš©μžλŠ” νšŒμ›κ°€μž…μ„ ν•  수 μžˆλ‹€.
    • 이메일, νŒ¨μŠ€μ›Œλ“œ, λ‹‰λ„€μž„(8자 이내)을 μž…λ ₯λ°›μœΌλ©°, 이메일과 λ‹‰λ„€μž„μ€ unique ν•΄μ•Όν•œλ‹€. λͺ¨λ“  값은 ν•„μˆ˜κ°’μ΄λ‹€.
    • 이메일 인증의 경우 72μ‹œκ°„λ‚΄μ— μˆ˜ν–‰ν•΄μ•Όν•œλ‹€.
    • λͺ¨λ“  μ‚¬μš©μžλŠ” νšŒμ›κ°€μž… μ‹œ USER κΆŒν•œμ„ κ°–λŠ”λ‹€.
      • ADMIN role도 μžˆμ§€λ§Œ, κ΄€λ¦¬μž νšŒμ›κ°€μž…μ€ λ³„λ„μ˜ APIλŠ” μ œκ³΅ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • 둜그인

    • μ‚¬μš©μžλŠ” λ‘œκ·ΈμΈμ„ ν•  수 μžˆλ‹€.
    • 이메일 인증이 된 μ΄λ©”μΌλ‘œλ§Œ 둜그인이 κ°€λŠ₯ν•˜λ‹€.
    • 둜그인 μ‹œ νšŒμ›κ°€μž… λ•Œ μ‚¬μš©ν•œ 아이디와 νŒ¨μŠ€μ›Œλ“œκ°€ μΌμΉ˜ν•΄μ•Όν•œλ‹€.
    • μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°μ™€ JWTλ₯Ό μ‚¬μš©ν•˜κ³ , λ‘œκ·ΈμΈμ— μ„±κ³΅ν•˜λ©΄ μ•‘μ„ΈμŠ€ν† ν°κ³Ό λ¦¬ν”„λž˜μ‹œ 토큰을 λ°œκΈ‰ν•œλ‹€.
  • μ±… 검색

    • λ‘œκ·ΈμΈν•˜μ§€ μ•Šμ€ μ‚¬μš©μžλ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  μ‚¬μš©μžλŠ” 책을 검색할 수 μžˆλ‹€. '넀이버 검색 > μ±… Search API'λ₯Ό μ‚¬μš©ν•œλ‹€. https://developers.naver.com/docs/serviceapi/search/book/book.md#%EC%B1%85
    • 넀이버 API 호좜 μž₯μ•  λ°œμƒ μ‹œ μ‚¬μš©μž κ²½ν—˜μ„ μœ„ν•΄ 'μ„œν‚· 브레이컀 νŒ¨ν„΄'을 μ‚¬μš©ν•œλ‹€.
      • 검색 쑰건에 λ”°λ₯Έ 검색결과λ₯Ό μΊμ‹œμ— μ €μž₯해두고, Open API에 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ μΊμ‹œμ— μžˆλŠ” λ°μ΄ν„°λ‘œ μ‘λ‹΅ν•œλ‹€.
      • λ§Œμ•½ μΊμ‹œμ—λ„ 데이터가 μ‘΄μž¬ν•˜μ§€ μ•Šλ‹€λ©΄, 카카였 μ±… 검색 APIλ₯Ό μ‚¬μš©ν•˜μ—¬ 검색결과λ₯Ό μ‘λ‹΅ν•œλ‹€. 카카였 μ±… 검색 API: https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-book
    • 검색 κ²°κ³ΌλŠ” 기본적으둜 '정확도 순'으둜 μ •λ ¬λ˜λ©°, κ·Έ μ™Έ μ •λ ¬μœΌλ‘œλŠ” '졜근 μΆœκ°„μΌ 순'이 μžˆλ‹€.
    • μ±… 이미지, 제λͺ©, μ €μž, νŒλ§€κ°€κ²©, μΆœνŒμ‚¬, μΆœκ°„μΌμ„ λ³Ό 수 있고, 검색 κ²°κ³Όκ°€ λ§Žμ„ 수 μžˆμœΌλ―€λ‘œ paging μ²˜λ¦¬ν•œλ‹€.
  • μ±… 상세 쑰회

    • λ‘œκ·ΈμΈν•˜μ§€ μ•Šμ€ μ‚¬μš©μžλ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  μ‚¬μš©μžλŠ” 책을 상세 μ‘°νšŒν•  수 μžˆλ‹€.
    • μ±…μ˜ μƒμ œ 정보λ₯Ό μ‘°νšŒν•  수 μžˆλ‹€.
  • μ±… 리뷰 리슀트 쑰회

    • 리뷰의 ꡬ성은 μž‘μ„±μžμ˜ λ‹‰λ„€μž„, 별점, λ‚΄μš©, μ’‹μ•„μš” 갯수, μž‘μ„± λ‚ μ§œλ‘œ κ΅¬μ„±λœλ‹€.
    • 'μ’‹μ•„μš”μˆœ', 'μ΅œμ‹  순'으둜 μ •λ ¬ν•  수 μžˆλ‹€.
    • κ²°κ³Όκ°€ λ§Žμ„ 수 μžˆμœΌλ―€λ‘œ paging μ²˜λ¦¬ν•œλ‹€.
  • μ±… 리뷰 μž‘μ„±

    • λ‘œκ·ΈμΈν•œ μ‚¬μš©μžλ§Œ 리뷰λ₯Ό μž‘μ„±ν•  수 μžˆλ‹€.
    • 리뷰 μž‘μ„± ν•­λͺ©μ€ μž‘μ„±μžμ˜ λ‹‰λ„€μž„, 별점, λ‚΄μš©μœΌλ‘œ κ΅¬μ„±λ˜κ³  λͺ¨λ‘ ν•„μˆ˜κ°’μ΄λ‹€.
    • 책을 λ”°λ‘œ DB에 μ €μž₯ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ, ISBN값을 μ‚¬μš©ν•œλ‹€.
  • 리뷰 'μ’‹μ•„μš”'

    • λ‘œκ·ΈμΈν•œ μ‚¬μš©μžλ§Œ λ§ˆμŒμ— λ“œλŠ” 리뷰에 'μ’‹μ•„μš”'λ₯Ό λˆ„λ₯Ό 수 μžˆλ‹€.
    • νšŒμ›μ˜ 쀑볡 'μ’‹μ•„μš”'λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ νšŒμ›ID, 리뷰IDλ₯Ό unique둜 가진닀.
    • 리뷰 μž‘μ„±μžλŠ” 'μ’‹μ•„μš” μ•Œλ¦Ό'을 λ°›λŠ”λ‹€.
  • 리뷰 'μ’‹μ•„μš”' μ·¨μ†Œ

    • λ‘œκ·ΈμΈν•œ μ‚¬μš©μžλŠ” 본인이 λˆ„λ₯Έ 'μ’‹μ•„μš”'λ₯Ό μ·¨μ†Œν•  수 μžˆλ‹€.
    • 리뷰 μž‘μ„±μžλŠ” μ·¨μ†Œμ•Œλ¦Όμ€ 받지 μ•ŠλŠ”λ‹€.
    • 'μ’‹μ•„μš”' ν…Œμ΄λΈ”μ—μ„œ μ‚­μ œλœλ‹€.
  • μ•Œλ¦Ό

    • λ‘œκ·ΈμΈν•œ μ‚¬μš©μžλ§Œ μ•Œλ¦Όμ„ λ°›μ•„λ³Ό 수 μžˆλ‹€.
    • μ•Œλ¦Όμ€ μˆ˜μ‹ μž, λ‚΄μš©, μ•Œλ¦Όμ΄ 온 λ‚ μ§œ, 읽은 μƒνƒœλ‘œ κ΅¬μ„±λ˜μ–΄μžˆλ‹€.
    • 읽은 μƒνƒœλŠ” μ½μ€λ‚ μ§œ μ»¬λŸΌμ„ λ‘ μœΌλ‘œμ¨ κ΅¬ν˜„ν•œλ‹€.
    • μ•Œλ¦Όμ΄ 무슨 νƒ€μž…μΈμ§€ νŒŒμ•…ν•˜κΈ°μœ„ν•΄ enum으둜 κ΄€λ¦¬ν•œλ‹€. (e.g. LIKE, COMMENT)
      • ν˜„μž¬λŠ” 'LIKE'νƒ€μž…μ˜ μ•Œλ¦Όλ§Œ μ‘΄μž¬ν•˜μ§€λ§Œ, 좔후에 μ—¬λŸ¬ νƒ€μž…μ˜ μ•Œλ¦Όμ΄ 좔가될 κ°€λŠ₯성이 μžˆκΈ°λ•Œλ¬Έμ΄λ‹€.
    • μ•Œλ¦Όμ€ [λ‚΄κ°€ μž‘μ„±ν•œ 리뷰에 'μ’‹μ•„μš”'κ°€ λˆŒλ Έμ„ λ•Œ]와 같은 상황에 λ°œμƒν•œλ‹€.
    • λ§Œμ•½, [Aμœ μ €κ°€ μ‚¬μš©μžλ‹˜μ˜ '리뷰1'λ₯Ό μ’‹μ•„ν•©λ‹ˆλ‹€.] λΌλŠ” μ•Œλ¦Όμ΄ μ˜¨λ‹€λ©΄, ν•΄λ‹Ή μ•Œλ¦Ό 클릭 μ‹œ '리뷰1'둜 μ΄λ™ν•œλ‹€.
      • Aμœ μ €: action_member_id μ»¬λŸΌμ„ λ‘ μœΌλ‘œμ¨ κ΅¬ν˜„ν•œλ‹€.
      • 리뷰1둜 이동: target_type 컬럼과 target_id μ»¬λŸΌμ„ λ‘ μœΌλ‘œμ¨ κ΅¬ν˜„ν•œλ‹€.

ERD

ERD

νŠΈλŸ¬λΈ” μŠˆνŒ…

go to the trouble shooting section

ν”„λ‘œμ νŠΈ 회고

go to the project retrospective section

기술 μŠ€νƒ

book-review-service's People

Contributors

cchoijjinyoung avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.