Skip to content

Latest commit

 

History

History
37 lines (30 loc) · 2.64 KB

project-description.md

File metadata and controls

37 lines (30 loc) · 2.64 KB

MovieOn API

MovieOn API는 다음 기술로 개발되었습니다.

  • Kotlin 1.7.10
  • SpringBoot 2.7.5
  • Spring 5.3.23
  • MySQL 8.0.30

코드 아키텍처

모듈형 모노리스 아키텍처를 사용하여, 다음 모듈들로 프로젝트가 구성되어 있음.

모듈 설명
server 각 도메인 API 모듈을 통합하고 실행하는 모듈. 배포 시, 이 모듈을 사용.
shared 모든 모듈에서 의존하는 공통적인 의존성을 담은 모듈.
order-api 주문을 생성하고, 주문을 관리 및 처리하는 기능을 담당하는 모듈.
user-api 인증, 인가, 사용자 관리 기능을 담당하는 모듈.
product-api 상품을 관리하고 사용자에게 노출하는 기능을 담당하는 모듈.
payment-api 주문한 상품에 대한 결제 처리 및 취소를 담당하는 모듈.
notification-api 이메일, 푸시 등의 알림을 사용자에게 발송하고 알림 설정을 관리하는 모듈.
query-api 복잡한 조회와 관련한 요구사항을 처리하는 모듈(CQRS).
batch-api 배치 처리와 관련한 요구사항을 처리하는 모듈.

각 도메인 API 모듈은 다음과 같은 하위 모듈로 구성되어 있음.

  • 각 하위 모듈들은 계층형 아키텍처 형식을 따르며, interfaces를 기준으로 바로 아래 모듈만 의존해야 한다.
  • Domain 모듈은 다른 어떠한 모듈도 의존하면 안된다. 다른 모듈이 Domain 모듈을 의존해야 한다.
  • 예외적으로 infrastructure 모듈만 다른 모든 모듈을 의존할 수 있다.
  • 예외적으로 특정 모듈은 하위 모듈 구성을 하지 않을 수 있고 혹은 다른 아키텍처 구조를 가져갈 수도 있다.
하위 모듈 명 설명
user-interfaces 유저 HTTP API에 대한 진입점을 제공하는 모듈.
user-application 유저의 비즈니스 로직 제어를 담당하는 모듈.
user-domain 유저의 비즈니스 로직이 담긴 핵심 모듈.
user-infrastructure 외부 구성요소, 프레임워크, 영속성을 DIP를 사용하여 역전시키고 동작가능하도록 하는 기반 모듈.