프로젝트를 개발하기에 앞서 패키지 구조를 어떻게 할 지 생각을 해봤다.
1. 계층형 디렉터리 구조
계층형 구조는 각 레이어 별로 디렉토리를 나눈 구조다.
스프링 처음 배울때는 프로젝트를 계층형 구조로 많이 만들었다. 각 계층 별로 클래스도 몇 개 없었기 때문에 충분히 감당할 수 있었기 때문이다. 근데 이번 프로젝트는 그래도 하나의 서비스를 통으로 개발하는 거라 계층형 구조로 하면 한 계층에 클래스가 엄청나게 많이 생길 거 같았다. 그리고 나중에 MSA로 서비스 분리할 때도 힘들 거 같다는 생각이 들었다. 물론 MSA는 그냥 생각만 해본 거다.
2. 도메인형 디렉터리 구조
도메인형 디렉터리 구조는 구현하고자 하는 도메인 별로 디렉토리를 나눈 구조다. 디렉터리 구조만 보고도 도메인이 어떤 것들이 있는지 쉽게 파악할 수 있다. 유지 보수적인 측면에서도 어떤 부분에서 오류가 발생하는지 쉽게 파악할 수 있어서 좋다.
사실 팀원들이랑 도메인 별로 나눠서 개발하기로 했기 때문에 이미 도메인형 구조로 하기로 마음 먹고 있었다. 답은 이미 정해져 있지만 이참에 한 번 공부하고 넘어가면 좋을 거 같아서 정리해봤다.
'개발 > Field-Passer 프로젝트' 카테고리의 다른 글
[Field-Passer 프로젝트] 쿼리 최적화 (N + 1 문제 해결하기) (0) | 2023.02.04 |
---|---|
[Field-Passer 프로젝트] Spring Data JPA 페이징 처리하기 (0) | 2023.02.03 |
[Field-Passer 프로젝트] SpringBoot 로그인 시 예외 처리하기 (0) | 2023.01.30 |
[Field-Passer 프로젝트] Rest API에서 JSON 반환하기 (1) | 2023.01.29 |
[Field-Passer 프로젝트] JPA 사용해서 Entity 설계하기 (0) | 2023.01.29 |
댓글