kongkong.note
[만들면서 배우는 클린 아키텍처] 05~07장 본문
책 정보
https://ebook-product.kyobobook.co.kr/dig/epd/ebook/E000005295801
클린 아키텍처 | 톰 홈버그
eBook 클린 아키텍처 | 우리 모두는 낮은 개발 비용으로 유연하고 적응이 쉬운 소프트웨어 아키텍처를 구축하고자 한다. 그러나 불합리한 기한과 쉬워보이는 지름길은 이러한 아키텍처를 구축하
ebook-product.kyobobook.co.kr
목차
05. 웹 어댑터 구현하기
06. 영속성 어댑터 구현하기
07. 아키텍처 요소 테스트하기
NOTE.
✅ 웹 어댑터(controller)의 책임
1. HTTP 요청을 자바 객체로 매핑
2. 권한검사
3. 입력 유효성 검증
4. 입력을 유스케이스의 입력 모델로 매핑
5. 유스케이스 호출
6. 유스케이스의 출력을 HTTP로 매핑
7. HTTP 응답을 반환
✅ 웹 어댑터와 애플리케이션 계층 간의 경계
인커밍 어댑터 생각할 필요 없이, 유스케이스를 먼저 구현하면 경계를 자연스럽게 만들 수 있다. (책임 분리)
✅ 컨트롤러 나누기
- 클래스마다 코드는 적을수록 좋다.
- 모델을 공유하지 않는 여러 작은 클래스들을 만드는 것을 두려워하지 마라.
- 각 연산에 대해 가급적이면 별도의 패키지 안에 별도의 컨트롤러 만드는 것을 선호한다.
- 전용 모델 클래스들은 컨트롤러의 패키지에 대해 private으로 선언해서, 실수로 다른 곳에서 재사용되지 않도록 한다.
- 각 컨트롤러마다 필요한 필드가 다르기 때문에 결국 새로운 모델을 만들도록 간접적 적용하는 것.
- 메서드와 클래스명은 유스케이스를 최대한 반영해서 짓는다.
✅ 영속성 어댑터의 책임
1. 입력 받는다.
2. 입력을 데이터베이스 포맷으로 매핑한다.
3. 입력을 데이터베이스로 보낸다.
4. 데이터베이스 출력을 애플리케이션 포맷으로 매핑한다.
5. 출력을 반환한다.
✅ 영속성 어댑터 분리
하나의 애그리거트당 하나의 영속성 어댑터를 만들어, 여러개의 영속성 어댑터를 두는게 좋다.
✅ 테스트 피라미드

기본 전제 : 비용 적고, 유지보수 쉽고, 실행 빠르게
✅ 단위 테스트
- @Test
- 도메인 엔티티 테스트, 유스케이스 테스트
✅ 통합 테스트
- @WebMvcTest, @DataJpaTest
- 의존성의 상호작용 테스트 목적
- 웹 어댑터 테스트, 영속성 어댑터 테스트
✅ 시스템 테스트
- @SpringBootTest
- 전체 애플리케이션을 띄우고 API를 통해 요청을 보내고 동작 검증 목적
'SW 아키텍처 > 클린 아키텍처' 카테고리의 다른 글
| [만들면서 배우는 클린 아키텍처] 08~10장 (0) | 2026.04.04 |
|---|---|
| [만들면서 배우는 클린 아키텍처] 01~04장 (0) | 2026.02.17 |