패키지 구성의 종류
1. 계층형
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── demo
│ │ ├── DemoApplication.java
│ │ ├── config
│ │ ├── controller
│ │ ├── dao
│ │ ├── domain
│ │ ├── exception
│ │ └── service
│ └── resources
│ └── application.properties
- 각 계층을 대표하는 디렉터리를 기준으로 코드들이 구성한다.
- 해당 프로젝트에 이해가 상대적으로 낮아도 전체적인 구조를 빠르게 파악할 수 있다.
2. 도메인형
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── demo
│ │ ├── DemoApplication.java
│ │ ├── coupon
│ │ │ ├── controller
│ │ │ ├── domain
│ │ │ ├── exception
│ │ │ ├── repository
│ │ │ └── service
│ │ ├── member
│ │ │ ├── controller
│ │ │ ├── domain
│ │ │ ├── exception
│ │ │ ├── repository
│ │ │ └── service
│ │ └── order
│ │ ├── controller
│ │ ├── domain
│ │ ├── exception
│ │ ├── repository
│ │ └── service
│ └── resources
│ └── application.properties
- 도메인을 기준으로 디렉토리를 구성한다.
- 관련된 코드들이 응집해 있다는 장점이 있다.
뭘 선택할까?
이번 프로젝트로 MSA 환경을 연습할거라 Spring 서버를 주요 서비스별로 분리할 예정이다.
안그래도 규모가 크지 않은 프로젝트인데 이걸 또 쪼개야하다보니, 만일 도메인형으로 패키지를 구성하면 하나의 Spring 프로젝트 안에 도메인이 1개밖에 없는 경우도 있을 것이다.
따라서 도메인형이 아닌 계층형으로 패키지를 구성할 것이다.
스켈레톤 코드 작성하기
fillsa 프로젝트의 패키지를 우선 다음과 같이 구성해보았다.
src
├─java
│ └─com
│ └─filling
│ └─fillsa
│ ├─config
│ ├─controller
│ ├─domain
│ │ ├─dto
│ │ │ ├─request
│ │ │ └─response
│ │ └─entity
│ ├─exception
│ ├─repository
│ └─service
└─resources
폴더 안이 비어있으면 git에 올라가지 않으니, 주요 파일들을 생성해놓았다.
이제 spring 개발을 시작할 준비는 얼추 끝났다!
728x90
반응형
'IT 일상 > 프로젝트' 카테고리의 다른 글
[사이드 프로젝트] fillsa 개발일지 009. 리액트 처음 세팅하기 (3) CSS (0) | 2024.01.29 |
---|---|
[사이드 프로젝트] fillsa 개발일지 008. 리액트 처음 세팅하기 (2) Axios, React Query, Zustand (1) | 2024.01.23 |
[사이드 프로젝트] fillsa 개발일지 007. 리액트 처음 세팅하기 (1) (0) | 2024.01.18 |
[사이드 프로젝트] fillsa 개발일지 006. vite로 리액트 프로젝트 생성하기 (0) | 2024.01.09 |
[사이드 프로젝트] fillsa 개발일지 005. 피그마로 리액트 코드 생성하기 (0) | 2023.12.28 |