Project/toy project
[우리집에 가면] 25.02.13 - JPA, Swagger, Security config, 구조
히히심
2025. 2. 13. 13:14
728x90
1. JPA 설정 및 테이블 생성
2. Swagger 설정
3. Security Config 임시 설정
4. 프로젝트 구조 설정
⬇️ 고민거리
더보기
1. 계층형(레이어드) 구조
- controller, service, repository, entity, config 패키지에 모두 모아두는 구조
- 장점 : 구조가 직관적이고, SpringBoot가 특정 패키지를 스캔하도록 설정하기가 간단하다.
- 단점 : 엔티티가 많아질수록 하나의 디렉토리에 파일이 많이 쌓이고, 기능별로 묶어서 관리하기는 어렵다.
2. 도메인(기능)별 구조
- 도메인(기능) 별로 entity, service, repository를 묶어 놓는 방식
- 장점 : 기능 중심으로 파일이 묶이므로 해당 기능을 수정할 때 찾기 쉽다. 응집도가 높아짐
- 단점 : 패키지 스캔 설정 시 여러 하위 패키지를 잡아줘야 할 수도 있다.
>> 나는 도메인별 구조로 선택했다.
도메인은 이렇게 설정했다.
- member
- group
- item
- consumption
- notification
또한, api 패키지를 통해 Controller, DTO 등 외부 인터페이스 레이어로 사용했다.
domain 패키지에는 엔티티, 서비스, 레포지토리를 두어 비즈니스 로직을 담당하도록 했다.
** 내일 목표 : 배포
728x90