01
계층형 아키텍처의 문제는 무엇일까?
계층형 아키텍처가 데이터베이스 주도 설계를 유도하고 테스트와 유지보수를 어렵게 만드는 이유를 정리하며, 클린 아키텍처를 다루는 책의 1장을 소개합니다.
2023.02.05 — 2024.01.12 · 만들면서 배우는 클린 아키텍처 · 다 읽는 데 약 32분
계층형 아키텍처가 데이터베이스 주도 설계를 유도하고 테스트와 유지보수를 어렵게 만드는 이유를 정리하며, 클린 아키텍처를 다루는 책의 1장을 소개합니다.
단일 책임 원칙과 의존성 역전 원칙을 통해 도메인 코드를 영속성 계층으로부터 분리하는 방법과, 클린 아키텍처·육각형 아키텍처의 의존성 규칙을 정리합니다.
패키지를 계층별로 나누는 방식과 기능별로 나누는 방식의 장단점을 비교하고, 육각형 아키텍처를 표현하는 패키지 구조를 정리합니다.
송금하기 유스케이스 예제로 입력 유효성 검증과 비즈니스 규칙 검증을 구분하고, 유스케이스별로 입출력 모델을 분리하는 이유를 정리합니다.
웹 어댑터의 책임과 역할을 정리하고, 하나의 컨트롤러에 여러 연산을 몰아넣기보다 연산별로 작은 컨트롤러를 나누는 방식의 장점을 설명합니다.
영속성 어댑터의 책임과 인터페이스 분리 원칙에 따라 포트를 좁게 나누는 방법을 정리하고, 스프링 데이터 JPA 예제와 트랜잭션 경계 설정 방식을 설명합니다.
매핑하지 않기·양방향·완전·단방향 네 가지 계층 간 매핑 전략의 장단점을 비교하고, 유스케이스마다 적절한 전략을 선택하는 기준을 정리합니다.
패키지 접근 제한자와 빌드 아티팩트 분리로 아키텍처 경계를 강제하는 방법을 정리하고, 의존성이 안쪽 방향으로만 향하도록 설계하는 원칙을 다룹니다.