기존 패키지 구조 형태
V1: 계층 중심 패키지 구조
com.tenco.blog
├── controller/ # 계층별 분리
│ ├── BoardController
│ └── UserController
├── model/ # 모든 엔티티가 한 곳에
│ ├── Board
│ └── User
├── service/ # 모든 서비스 클래스가 한 곳에
│ ├── BoardService
├── repository/ # 모든 리포지토리가 한 곳에
│ ├── BoardNativeRepository
│ └── UserRepository
├── dto/ # 모든 DTO가 한 곳에
│ ├── BoardRequest
│ └── UserRequest
└── util/
└── MyDateUtil
// 문제점: Board 관련 파일들이 여러 패키지에 흩어져 있음
// BoardController ← controller 패키지
// Board ← model 패키지
// BoardRepository ← repository 패키지
// BoardRequest ← dto 패키지
Spring MVC란?
MVC(Model-View-Controller)는 애플리케이션을 세 가지 역활로 분리하는 디자인
패턴입니다.
------------------------------------------------------------------------------------------------------------
도메인 중심 구조로 전환
도메인이란?
- 도메인(Domain)은 소프트웨어가 해결하려는 문제 영역이나 비즈니스 영역을 의미함
"어떤 문제 영역(분야)" 또는 "주제"를 의미하는 말이야.
개발에서는 **프로그램이 다루는 '업무 영역'이나 '주요 개념 단위'**를 말해.
쉽게 말하면?
“이 시스템(웹사이트, 앱 등)이 무엇을 다루는지에 대한 큰 분류”
즉, 현실 세계의 개념을 소프트웨어 안에서 분리해서 표현한 단위야.
블로그 시스템의 도메인들
Board (게시글) 도메인
- 게시글 작성, 수정, 삭제 ,조회
- 조회수 증가, 인기글 설정
-게시글 상태 관리 (공개/비공개/임시저장)
User(사용자) 도메인
- 회원가입, 로그인, 프로필 관리
- 권한 관리, 활동 이력
Comment (댓글) 도메인
- 댓글 작성, 수정, 삭제
Category (카테고리) 도메인
- 카테고리 생성 ,관리
- 게시글 분류
변경할 프로젝트 형태
com.tenco.blog
├── board/ # Board 도메인의 모든 것이 한 곳에
│ ├── Board # 엔티티
│ ├── BoardController # 컨트롤러
│ ├── BoardPersistRepository # 리포지토리
│ └── BoardRequest # DTO
├── user/ # User 도메인의 모든 것이 한 곳에
│ ├── User
│ ├── UserController
│ ├── UserRepository
│ └── UserRequest
└── utils/ # 공통 기능
└── MyDateUtil
// 장점: Board 관련된 모든 클래스가 board 패키지에 응집
728x90
'Spring boot' 카테고리의 다른 글
EntityManager 핵심 메서드 요약표 (0) | 2025.06.23 |
---|---|
버전 2 -1. 게시글 작성 - PersistenceContext 활용 (0) | 2025.06.22 |
스프링 부트 핵심 콘셉트가 뭘까? (1) (2) | 2025.06.22 |
(스프링 부트 입문) 버전 1 - 스프링 부트 익명 블로그 만들어 보기)5.게시글 수정하기 (0) | 2025.06.22 |
(스프링 부트 입문) 버전 1 - 스프링 부트 익명 블로그 만들어 보기) 4.게시글 삭제하기 (0) | 2025.06.22 |