Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,278 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

123

Bottle note 프로젝트의 API 서버입니다.

Image 1 Image 4 Image 3 Image 2

bottle note


📄내 입맛에 딱 맞는 한병을 찾아가는 여정노트

보틀노트는 위스키 애호가들이 모여 서로의 의견을 공유하고, 더욱 즐겁고 유익한 시음 경험을 할 수 있도록 도와줍니다.
위스키에 대한 열정을 함께 나눠보세요! 쉽고 편리하게 위스키 평가와 리뷰를 공유할 수 있어요!


🥃 위스키 별점 및 리뷰 작성

위스키를 시음한 후 별점을 부여하고, 상세한 리뷰를 작성해 보세요!
맛, 향, 느낌 등 다양한 측면을 기록하고 공유할 수 있습니다.
가격을 입력하고, 시음한 장소를 태그하여 좋은 경험한 장소를 기록해 보는건 어때요?

🥃 위스키 정보 및 리뷰 보기

위스키의 상세 정보와 다른 사용자의 리뷰를 쉽게 확인할 수 있습니다.
다양한 의견을 통해 다른 사람들이 위스키를 어떻게 평가했는지 알 수 있고
새로운 위스키를 시도해볼 수 있어요!

🥃 찜하기 기능으로 위스키 목록 관리

관심 있는 위스키를 찜하기 기능을 통해 목록에 추가하고
찜한 위스키 목록을 통해 나만의 위스키 컬렉션을 만들 수 있어요!

🥃 다른 유저와 팔로우 및 별점 보기

다른 사용자를 팔로우하여 그들의 별점과 리뷰를 볼 수 있어요!
나의 팔로워들은 어떤 평가를 했을까요?
팔로워가 나와 취향이 비슷하다면, 내 입맛에 맞는 새로운 위스키를 알 수 있을지도?

🥃 나의 평가 및 별점 기록 관리

내가 평가한 위스키와 부여한 별점을 한눈에 볼 수 있어요!
나만의 위스키 평가 기록을 통해 나의 취향을 분석하고 다음 시음을 계획해보세요!


아키텍처

도메인 간 통신과 Facade 완충 지대

이 서버는 alcohols, user, review, rating 등 여러 도메인이 서로를 참조하는 DDD 기반 모듈러 모놀리스입니다. 유저 조회에 위스키 정보가 필요하고, 위스키 조회에 유저 정보가 필요한 양방향 호출이 자연스럽게 발생하는 구조입니다.

이때 각 도메인의 Service가 상대 도메인의 Service를 직접 참조하게 두면 순환 의존이 생기고, 어떤 메서드가 공개 계약이고 어떤 것이 내부 구현인지 경계가 사라져 변경 비용이 누적됩니다. 그래서 도메인 간 호출을 서로 직접 잇지 않고, 그 사이를 유연하게 완충하는 계층으로 Facade를 두었습니다.

  • {domain}/facade/ — 타 도메인에 공개하는 유일한 계약. 인터페이스와 전용 payload DTO만 두며, 엔티티는 경계를 넘지 않습니다.
  • {domain}/service/Default{Domain}Facade — 계약의 구현체. 도메인 내부 사정이므로 밖에서 알 필요가 없습니다.
  • 동기 조회는 Facade로, 부수효과 전파(히스토리, 알림)는 도메인 이벤트로 분리해 완충 지대가 병목이 되지 않게 합니다.
  • 이 규칙은 문서가 아니라 ArchUnit 아키텍처 테스트(./gradlew check_rule_test)가 빌드에서 강제합니다.

결합을 없애는 설계가 아니라, 결합을 좁고 눈에 보이는 지점으로 모아 관리하는 설계입니다.


이슈 관리

기능 요청, 버그 리포트, 작업 항목 등 모든 이슈는 bottle-note/workspace 레포지토리에서 관리합니다.
이슈의 SSOT는 workspace이며, PR 작성 시 본문에 bottle-note/workspace#N 형식으로 관련 이슈를 링크해 주세요.


보틀노트는 위스키 애호가들이 모여 서로의 의견을 공유하고
더욱 즐겁고 유익한 시음 경험을 할 수 있도록 도와줍니다.

boton

About

bottle note api server

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages