본문 바로가기
  • 시 쓰는 개발자
Spring

Spring 프로젝트 구조 (인텔리제이)

by poetDeveloper 2023. 9. 5.

본 포스팅은 "점프 투 스프링부트"(박응용) 을 공부하면서 작성해놓은 글 입니다.

 

SpringBoot 프로젝트 구조 이해하기

src/main/java

우리는 src/main/java 디렉터리의 하위 패키지에 자바 파일을 만들어서 파일을 작성하게 된다. 이때 말하는 하위 패키지란, 사실 크게 신경쓸 부분은 아니긴 한데 우리가 start.spring.io에서 만들어지는 패키지의 이름과 동일하다.(ex. com.mysite.sbb) 이 패키지 아래에서 controller나 dto, entity, service 파일 등을 만든다.

 

Application 파일

모든 프로그램에는 시작을 담당하는 파일이 있다. 스프링부트 애플리케이션에도 시작을 담당하는 파일이 있는데 그 파일이 바로 "프로젝트명"+Application.java 파일이다. 스프링부트 프로젝트를 생성할때 "ABCD"라는 이름을 사용하면 ABCDApplication.java 파일이 자동으로 생성된다.
Application 클래스에는 반드시 @SpringBootApplication이 적용되어 있어야 한다. 위 어노테이션을 통해 스프링부트의 모든 설정이 관리된다.

 

src/main/resources

src/main/resources 디렉터리는 자바 파일을 제외한 HTML, CSS, JS, 환경설정파일 등을 작성하는 공간이다.

 

templates

src/main/resources 디렉터리의 하위 디렉터리인 templates 디렉터리에는 템플릿 파일을 저장한다. 템플릿 파일은 HTML 파일 형태로 자바 객체와 연동되는 파일이다. templates 디렉터리에서는 각종 HTML 파일을 저장한다.

 

static

static 디렉터리는 SBB 프로젝트의 스타일시트(.css), 자바스크립트(.js) 그리고 이미지 파일(.jpg, .png) 등을 저장하는 공간이다.

 

application.properties(또는 .yml)

application.properties 파일은 프로젝트환경을 설정한다. 프로젝트 설정이나, 데이터베이스 연동 등의 설정을 이 파일에서 관리한다.

 

src/test/java

src/test/java 디렉터리는 프로젝트에서 작성한 파일을 테스트하기 위한 테스트 코드를 작성하는 공간이다. JUnit과 스프링부트의 테스팅 도구를 사용하여 서버를 실행하지 않은 상태에서 src/main/java 디렉터리에 작성한 코드를 테스트할 수 있다.

 

build.gradle 파일

그레이들(Gradle)이 사용하는 환경 파일이다. 그레이들은 그루비(Groovy)를 기반으로 한 빌드 도구로 Ant, Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 빌드 도구이다. build.gradle 파일에는 프로젝트를 위해 필요한 플러그인과 라이브러리 등을 기술한다.