💻 하나씩 차곡차곡/Back-end
프로젝트 패키지 구조 : 레이어 중심 VS 도메인 중심
뚜루리
2025. 4. 18. 09:28
728x90
320x100
프로젝트 패키지 구조는 크게 레이어 중심과 도메인 중심이 있다. 어떤 차이점이 있고 어떨 때 어떤 식으로 하는 것이 좋을지 정리.
📦 레이어 중심 구조 (Layered)
- 기술 레이어 단위로 패키지 분리
com.bookbookclub
├── controller
├── service
├── repository
├── entity
├── dto
✔️ 장점
- 익숙하고 직관적
- 빠르게 개발 가능
❌ 단점
- 기능별로 뭉쳐있지 않아서 코드 이동 잦음
- 규모가 커질수록 파일 찾기 불편해짐
작고 단순한 프로젝트, 익숙한 구조로 빠르게 시작하고 싶을 때. 대규모보단 소규모에 적합.
📦 도메인 중심 구조 (Domain-based)
- 도메인별로 관련 코드 묶기
com.bookbookclub.domain
├── user
│ ├── controller
│ ├── service
│ ├── repository
│ ├── dto
│ └── entity
├── post
│ ├── controller
│ ├── service
│ └── entity
✔️ 장점
- 도메인 단위로 묶여 있어서 응집도 ↑
- 다른 도메인과 격리 잘됨 → 유지보수, 확장성에 유리
- MSA 나눌 때도 구조 그대로 사용 가능
❌ 단점
- 처음 보면 생소할 수 있음
- 작은 프로젝트에는 오히려 복잡해 보일 수 있음
도메인이 많거나, 확장 가능성을 고려한 구조. 실무/클린 아키텍처에 가깝다
728x90
320x100