Infrastructure

예상 비용 (3월 6일 기준, 월 36414.68원)
Multi module

- pennyway-common
- 시스템과 무관하게 어디서나 사용 가능한 라이브러리 성격의 모듈
- 하나의 프로젝트에서 모든 모듈에서 사용될 수밖에 없는 성격의 클래스들의 집합
- Type, Util 등을 정의한다.
- 가능하면 사용하지 않아야 하며, 코드를 추가할 땐 필수적으로 회의를 거쳐야 한다.
- 프로젝트 내 어떠한 모듈도 의존해서는 안 된다.
- pennyway-infra
- 저장소, 도메인 외 시스템에서 필요한 모듈
- 서비스, 도메인 비지니스를 모른다.
- 전체적인 시스템 서포트를 위한 기능 모듈을 정의할 수 있다.
- web, client, event-publisher 등을 처리할 때 사용한다.
- pennyway-domain
- 서비스 비지니스를 모른다.
- 도메인 모듈을 조합한 더 큰 단위의 도메인 모듈이 존재할 수 있다. (우린 상관X)
- 필요하다면 하나의 모듈은 최대 하나의 infrastructure에 대한 책임만을 가질 수 있다. (일단 상관 X)
- 내부 구성
- Domain
- Java Class로 표현된 도메인 Class들
- Repository
- 도메인 CRUD
- 시스템에서 가장 보호받아야 하고 견고해야 한다.
- Domain 모듈 외에서 참조해선 안 된다.
- 구현하려는 기능이 핵심 비지니스 로직이라면 사용하는 측에서 작성하는 것을 권장
- Domain Service
- 도메인 비지니스 로직 처리
- 도메인 비지니스가 단순하다면 생기지 않을 수도 있다.
- 트랜잭션의 단위, 요청 데이터 검증, 이벤트 발생 등의 비지니스로 사용한다.
-
pennyway-external-api