-
어플리케이션 패키징 전략언어/java 2023. 5. 7. 16:25
1. 계층형
패키지를 3개 (controller, service, repository) 만들고 모든 도메인의 코드를 계층별로 분류한다.
개발 초기에는 유용할 수 있으나 코드베이스가 점차 커지면서 분리의 필요성이 생긴다.
2. 기능 기반 패키지
시스템을 기능 기반으로 나눈다. 수평적인 계층을 분리한 후 유스케이스별로 수직으로 패키지를 분리한다.
도메인 별로 패키지를 나누어 모듈 분리가 될 수 있어 1번보다 나은 구조이다.
비즈니스 룰과 인프라 코드가 섞여 있어 인프라의 변경이 비즈니스 코드의 변경을 불러올 수 있다.
3. 포트와 어댑터
비즈니스 룰과 도메인 코드와, 프레임워크나 데이터베이스 등 기술적인 세부 구현과 분리할 수 있다.
4. 컴포넌트 기반 패키지
자바의 경우 같은 패키지에 있어야 public 으로 선언하지 않아도 의존할 수 있다. (package-private) 따라서 컴포넌트 별로 같은 패키지로 묶어 서로 의존이 가능하도록 하자.
아키텍처는 변경될 수 있으며 필요에 의해 변경되어야 한다.
필요란 유스케이스, 운영, 개발, 배포 등의 관심사가 포함된다.
(클린 아키텍처 책을 보고 정리)
'언어 > java' 카테고리의 다른 글
java module vs maven module (0) 2023.03.26 java platform, Maven & Gradle, intellij, java module system 에 대해 정리하기 (0) 2023.02.26 GraalVM, native compiler, cloud native, spring cloud 등등 개념 정리 (0) 2023.02.19 java GC 에 대해 공부하자 (0) 2023.02.12 자바의 메모리 누수에 대해 (0) 2023.02.11