'만들면서 배우는 클릭 아키텍처'를 읽고 실습 및 정리한 내용입니다.
- 계층형 아키텍처의 문제는 무엇일까?
- 의존성 역전하기
- 코드 구성하기
- 유스케이스 구현하기
- 웹 어뎁터 구현하기
- 영속성 어뎁터 구현하기
- 아키텍처 요소 테스트하기
- 경계 간 매핑하기
- 애플리케이션 조립하기
- 아키텍처 경계 강제하기
- 의식적으로 지름길 사용하기
- 아키텍처 스타일 결정하기
.
├── main
│ ├── java
│ │ └── com
│ │ └── architecture
│ │ └── clean
│ │ ├── CleanApplication.java
│ │ ├── account
│ │ │ ├── adapter
│ │ │ │ ├── in
│ │ │ │ │ └── web
│ │ │ │ │ └── SendMoneyController.java
│ │ │ │ └── out
│ │ │ │ └── persistence
│ │ │ │ ├── AccountJpaEntity.java
│ │ │ │ ├── AccountMapper.java
│ │ │ │ ├── AccountPersistenceAdapter.java
│ │ │ │ ├── AccountRepository.java
│ │ │ │ ├── ActivityJpaEntity.java
│ │ │ │ └── ActivityRepository.java
│ │ │ ├── application
│ │ │ │ ├── port
│ │ │ │ │ ├── in
│ │ │ │ │ │ ├── GetAccountBalanceQuery.java
│ │ │ │ │ │ ├── SendMoneyCommand.java
│ │ │ │ │ │ └── SendMoneyUseCase.java
│ │ │ │ │ └── out
│ │ │ │ │ ├── AccountLock.java
│ │ │ │ │ ├── LoadAccountPort.java
│ │ │ │ │ └── UpdateAccountStatePort.java
│ │ │ │ └── service
│ │ │ │ ├── GetAccountBalanceService.java
│ │ │ │ ├── MoneyTransferProperties.java
│ │ │ │ ├── NoOpAccountLock.java
│ │ │ │ ├── SendMoneyService.java
│ │ │ │ └── ThresholdExceededException.java
│ │ │ └── domain
│ │ │ ├── Account.java
│ │ │ ├── Activity.java
│ │ │ ├── ActivityWindow.java
│ │ │ └── Money.java
│ │ ├── common
│ │ │ └── SelfValidating.java
│ │ └── config
│ │ ├── CleanArchitectureConfiguration.java
│ │ └── CleanArchitectureConfigurationProperties.java
│ └── resources
│ ├── application.yml
│ ├── static
│ └── templates
└── test
└── java
└── com
└── architecture
└── clean
├── CleanApplicationTests.java
├── account
│ ├── adapter
│ │ ├── in
│ │ │ └── web
│ │ │ └── SendMoneyControllerTest.java
│ │ └── out
│ │ └── persistence
│ │ └── AccountPersistenceAdapterTest.java
│ ├── application
│ │ └── service
│ │ └── SendMoneyServiceTest.java
│ └── domain
│ ├── AccountTest.java
│ └── ActivityWindowTest.java
├── common
│ ├── AccountTestData.java
│ └── ActivityTestData.java
└── system
└── SendMoneySystemTest.java
source code: https://github.com/wikibook/clean-architecture