Clean Architecture, Package by Feature로 더욱 깔끔하게!
by DD
7년 전
조회수 0
Clean Architecture 적용 시, Package by Feature 방식의 중요성을 강조함
Package by Layer 방식의 단점과 Package by Feature 방식의 장점 비교
Feature 중심 패키징을 통해 유연한 코드 구조 및 유지보수성 향상
Package by Feature의 핵심 원리
Package by Feature는 기능별로 코드를 묶어 관심사 분리를 극대화한다. 따라서 결합도 감소와 재사용성 향상을 동시에 달성한다. 구체적으로, 각 기능의 Controller, Model, Adapter를 한 패키지에 묶어 변경의 파급 효과를 최소화한다.
Layer vs Feature: 트레이드오프 분석
Package by Layer는 초기 이해가 쉽지만, 기능 변경 시 여러 레이어를 수정해야 하는 문제점이 있다. 반면 Package by Feature는 코드의 응집도를 높여 유지보수를 용이하게 한다. 의존성 관리 측면에서도 feature 방식이 더 유리하다.
실전 적용 가이드: Go 프로젝트 예시
Go 프로젝트에서 Package by Feature를 적용할 때, 각 feature를 root package로 구성한다. 구체적으로, pgrepo, usecase, entity 등을 feature 내부에 배치한다. 따라서 데이터 레이어 변경이 도메인 로직에 미치는 영향을 최소화하여 시스템 안정성을 확보한다.