Package By Feature
- 장점
- 도메인 모델 위지 개발에 적합
- 단일 기능과 관련된 특징들 혹은 단일 기능 자체만을 배치
- 높은 응집도와 높은 모듈성 갖게됨
- 패키지간 결합도 최소화
- 각 패키지 간의 순환 의존이 발생할 가능성 적어짐
- 중복된 부분 제거에 용이
- 자바 코드, DB 항목 등 특정 기능과 관련된 모든 항목 총 집합
- 단점
- 모듈 단위로 분리할 때 어려움
Package By Layer
- 장점
- 개발자 별로 기능 단위 개발 하는 경우 사용
- 모듈 단위로 분리에 용이
- 단점
- 딱히 관련 없는 항목들이 포함됨
- 패키지간 결합도가 높아서 패키지에 수정 가했을 때 해당 패키지 참조하는 다른 패키지 내부 파일도 수정 필요
- 각 패키지간의 순환 참조 발생할 가능성 높음
- 각 모듈에 중복된 코드 발생할 확률 높음
- 도메인 간의 관계보다 각 모듈별로 각자 구현할 가능성이 높음