코드를 구성하는 몇 가지 방법을 소개한다.
소개할 예시들은 송금 서비스 BuckPal에 대한 것들이다.
특히 사용자가 본인의 계좌에서 다른 계좌로 돈을 송금할 수 있는 ‘송금하기’ 유스케이스에 대해 살펴본다.
buckpal
|
|--- domain
| |--- Acount
| |--- Activity
| |--- AccountRepository
| |--- AccountService
|
|--- persistence
| |--- AccountRepositoryImpl
|
|--- web
|--- AccountController
웹, 도메인, 영속성 계층 각각에 해당하는 전용 패키지인 web, domain, persistence를 둔다.
DIP를 이용해 의존성이 domain 패키지에 있는 도메인 코드만을 향하도록 한다.
단 이 패키지는 최적의 구조가 아니다! → Why?
buckpal
|
|--- account
|--- Acount
|--- AccountController
|--- AccountRepositoryImpl
|--- AccountRepository
|--- SendMoneyService