본문 바로가기
Programming/Spring Boot

스프링부트(Spring Boot) 프로젝트(폴더, 디렉터리) 구조

by 돌방로그 2023. 1. 25.

제목의 글을 설명하기에 앞서 정보전달의 목적도 있지만, 

제가 잊지않기 위해서 공부 및 정리하며 쓰는 글이라는 사실을 미리 고지합니다.

 

혹시라도 오입력된 정보가 있다면, 댓글 남겨주세요!


 

Spring Boot 개발하기에 앞서 Spring Boot 프로젝트(폴더, 디렉터리)의 구조를 먼저 살펴봅니다.

 


Spring Boot 프로젝트 폴더/디렉터리

Spring Boot 프로젝트를 처음 생성하면, 아래와 같이 프로젝트 구조, 폴더/디렉터리 구조를 확인하실 수 있습니다.

 

기본 구조

 

▶ src\main\java

  • 클래스, 인터페이스 등 자바 파일이 위치하는 최상위 폴더

 

▶ src\main\resources

  • templates
    • 화면 관련 템플릿 파일(*.html)이 위치하는 폴더
    • 스프링부트에서는 타임리프(Thymeleaf) 사용을 권장
  • static
    • css, fonts, images, javascript와 같은 정적 리소스 파일이 위치하는 폴더
  • application.properties
    • 웹 어플리케이션을 실행되면서 자동으로 로딩되는 프로젝트 환경 설정 파일
    • 프로젝트 환경, Database, JPA 등의 다양한 정보를 설정하는 파일

 

▶ src\test\java

  • 단위 테스트를 진행하는 코드를 작성할 수 있는 자바 파일이 위치하는 최상위 폴더
  • 'src\main\java' 하위 폴더 트리와 동일한 폴더 트리를 구성하는 것을 권장

 

▶ src\build.gradle

  • Gradle(Groovy를 기반으로 한 빌드 도구)이 사용하는 환경 파일
  • 프로젝트를 위해 필요한 플러그인과 라이브러리/Dependencies 등을 관리하는 파일 

 


실무 구조

실무에서는 프로젝트 규모에 따라서 목적에 맞게 계층형 혹은 목적형으로 나눠서 구성합니다.

실제로 제가 소속되었던 팀에서도 목적형을 기반으로 프로젝트가 구성되어 있었습니다.

 

프로젝트 규모가 클수록 목적형으로, 작을수록 계층형으로 프로젝트를 구성합니다.

아무래도 파일끼리의 연관 관계를 빠르게 파악하고 관리할 수 있어야 하기 때문입니다.

(사유는 제 추측입니다.)

 

아래 계층형과 목적형 모두 'src\main\java\...\' 폴더 하위만 기술하였습니다.

 

계층형

 

목적형

 

 


References

댓글