반응형
고민
전에 프로젝트를 진행하면서
패키지를 어떤 기준으로 나누어 만들어야
효율적인지 고민을 했다.
처음에는 컨트롤러, 서비스, 레포지토리 등으로 나누었고
다음은 조금 더 간결하고 모아지도록 M,V,C 각각 패키지로 만들었다.
하지만 프로젝트 크기가 커지면서 도메인마다의 MVC가 생겨났다.
그러면서 어떻게 해야 찾기에도 편하면서 관리하기 좋을까?
고민을 하던 당시에는 가장 좋은 효율을 찾던 중 맡은 기능별로 나누어 관리했다.
지금와서 생각해보면 결론적으로 도메인을 기준으로 나누어 진행했었다.
종류
패키지를 구조적으로 계층형과 도메인형으로 나뉜다.
계층형 구조
처음 내가 진행했던 방법은 계층형 구조이다.
계층형 구조는 작은 프로젝트에 유용하며 전체적인 구조를 빠르게 파악할 수 있다.
하지만 하나의 디렉토리에 너무 많은 클래스들이 모이게되면서 복잡해 보일 수 있다.
그리고 모듈 단위의 분리 시 어려움이 있다.
도메인형 구조
후에 효율을 생각하며 설계했던 구조가 도메인형 구조이다.
관련된 코드들이 모여있어서 모듈 단위로 분리할 때 유리하다.
하지만 프로젝트에 대한 이해도가 낮을 경우 전체적인 구조를 파악하기 힘들어진다.
같은 패키지 내에 존재해도 되는 코드들 또한 나누어져 찾기 힘들 수도 있다.
결론
상황에 알맞은 구조를 선택해서 설계하자!
반응형
'WEB > Spring' 카테고리의 다른 글
[Spring Boot] TDD - JUnit? (0) | 2023.06.27 |
---|---|
[Spring Boot] Spring Boot에서 TDD 방법론 (0) | 2023.06.23 |
[Spring Boot] Spring boot EC2에 배포하기 (0) | 2022.12.19 |
[Spring] RestTemplate Response Entity Type (0) | 2022.12.15 |
[Spring] AOP - 구현 (0) | 2022.10.27 |