본문으로 건너뛰기

패키지

계층 기반 패키지

전통적인 수평 계층형 아키텍처
기술적인 관점에서 해당 코드가 하는 일에 기반해 코드를 분할

기능 기반 패키지

서로 연관된 기능, 도메인 개념, 또는 Aggregate Root에 기반하여 수직의 얇은 조각으로 코드를 나누는 방식

포트와 어댑터

업무/도메인에 초점을 둔 코드가 프레임워크 데이터베이스 같은 기술적인 세부 구현과 독립적이며 분리된 아키텍처를 만들기 위해 사용

컴포넌트 기반 패키지

큰 단위의 단일 컴포넌트와 관련된 모든 책임을 하나의 자바 패키지로 묶는 데 주안점을 둠
모노리틱 애플리케이션에서 컴포넌트를 잘 정의하면 MSA로 가기 위한 발판으로 삼을 수 있음

참고 자료

클린 아키텍처, 로버트 C. 마틴 p.316