본문 바로가기
💻 하나씩 차곡차곡/Back-end

프로젝트 패키지 구조 : 레이어 중심 VS 도메인 중심

by 뚜루리 2025. 4. 18.
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