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 내부에 배치한다. 따라서 데이터 레이어 변경도메인 로직에 미치는 영향을 최소화하여 시스템 안정성을 확보한다.

Clean Architecture Packaging Strategy