▸Spring MVC/기본 상식

스프링(Spring) 프로젝트의 폴더 구조

코데방 2020. 3. 6.
728x90
- Develop OS : Windows10 Ent, 64bit
- WEB/WAS Server : Tomcat v9.0
- Language : JAVA 1.8 (JDK 1.8)
- Framwork : Spring 3.1.1 Release
- Build Tool : Maven 3.6.3

 

먼저 Spring MVC 템플릿으로 스프링 프로젝트를 하나 생성해보겠습니다. 빌드툴은 메이븐을 사용합니다. 폴더 구조가 꽤 복잡한데, 하나하나 살펴보도록 하겠습니다.

 

 

 


 

 

1. src/main/java

 

 

자바(.java) 파일이 모여있는 곳입니다. 패키지로 잘 분리해서 자바 클래스를 생성해 사용하면 됩니다. 스프링에서 이미 MVC 패턴의 서블릿 구조를 잡아주기 때문에 따로 서블릿을 만들 필요 없이 스프링 구조에 맞춰 클래스 파일들을 작성해주면 됩니다. 

 

 


 

2. src/main/resources

 

 

자바 클래스에서 사용하는 리소스를 보관하는 곳입니다. DB 연결을 위한 자원, 의존성 주입(DI)을 위한 xml 파일 등 자바 코드 외 모든 자원은 이곳에 넣어주면 됩니다.

 

 

 


 

 

3. src/test

   - src/test/java

   - src/test/resources 

 

 

의 두 폴더와 같은 역할이지만 테스트를 위한 자바 코드와 리소스를 보관하는 곳입니다. 정확한 사용법은 차차 알아가도록 하겠습니다.

 

 


 

 

4. Maven Dependencies

 

 

메이븐에서 자동으로 관리해주는 라이브러리 폴더입니다. "pom.xml"에 작성된 라이브러리들을 자동으로 다운 받아 관리해줍니다. 빌드툴을 사용함으로써 개발자가 직접 관리해주지 않아도 되는 영역이 되었습니다. 

 

 


 

 

5. src

 

 

Web에 관련된 자원이 담겨있는 루트 폴더입니다. 하위 폴더에 웹과 관련된 모든 자원들이 분류되어 있습니다. main 폴더 안에 모두 들어가고, test 폴더는 말 그대로 테스트를 위한 공간입니다.

 

 


 

 

5-1. src/main/webapp/resources

 

 

웹에 필요한 다양한 자원들을 보관하는 곳이자, 사용자가 직접 접근할 수 있는 공간입니다. js, css, img 파일 등이 보관되어 있으며, 보통 컨트롤러가 요청을 가로채지 않고 바로 접근할 수 있도록 따로 설정해서 사용하는 곳입니다.

 

 


 

 

5-2. src/main/webapp/WEB-INF

 

 

웹에 필요한 코드 파일과 컴파일된 파일, 그리고 여러 환경설정 파일들이 보관되는 곳입니다. 보안이 중요한 파일들이기 때문에 외부 사용자가 직접 접근할 수 없으며 컨트롤러(정확히는 핸들러)를 통해 내부적으로만 접근할 수 있는 폴더입니다. 

 

 


 

 

5-2-1. src/main/webapp/WEB-INF/classes

 

 

컴파일 된 파일이 보관되는 곳입니다.

 

 


 

 

5-2-2. src/main/webapp/WEB-INF/spring

 

 

스프링 환경설정 파일(context)이 보관되는 곳입니다. 

 

 


 

 

 

5-2-3. src/main/webapp/WEB-INF/views

 

 

JSP, HTML 파일이 보관되는 곳입니다. 이 폴더가 루트(/)의 기준점입니다. 사용자가 입력하고, 컨트롤러가 받아주는 URL이 이 폴더의 구조를 따라가기 때문에 잘 정리해서 사용할 필요가 있는 곳입니다. 

728x90

댓글

💲 추천 글