본문 바로가기

Spring

Spring Boot 🌼 프로젝트 구조


Spring Boot 기본 프로젝트 구조

Gradle로 생성된 프로젝트 구조

src/main

프로젝트 코드가 있음.

main/java

@SpringBootApplication Class(main)가 있음.
하위 패키지는 자동으로 컴포넌트 스캔이 적용됨.

main/resources

static, templates, application.properties 등이 있음.

src/test

TestAplication이 있음.

Gradle, git 관련 파일 의존성 관리 및 설정을 할 수 있다.


Spring MVC 패턴에 따른 패키지 구조

 

controller, model(dto), repository(dao), service 로 분류되고,
프로젝트 규모에 따라서 계층형 또는 도메인형으로 나뉘게 된다.

계층형

계층형 구조는 controller, model(dto), repository(dao), service 로 패키지를 구분하고 동일한 역할을 하는 클래스들을 모아둔 구조다.

특징 :

전체적인 구조를 빠르게 파악할 수 있는 장점이 있지만, 그와 반대로 규모가 커지게 될 경우 오히려 단점으로 나타날 수 있다. 만약 해당 구조를 적용하게 된다면 규모가 작은 프로젝트에 적합하다.

도메인형

 

도메인형 구조는 사용하는 도메인 별로 controller, model(dto), repository(dao), service 를 각각 생성하는 구조다.

특징 :

도메인별 응집도가 높아진다.
각각 도메인의 흐름을 파악하기 쉽다.
패키지의 대한 변경점이 있을때 도메인별로 나누어져 있기 때문에 리팩토링시 이점이 있다.