[Spring] Spring 프로젝트 디렉터리 구조 / 스프링 MVC 구조 :: 매운코딩
728x90
300x250

Spring 기반 프로젝트의 디렉터리 구조에 대하여 알아보겠다. 

스프링은 MVC구조로 Model, View, Controller의 기능을 가지고 있다.

 

처음 Spring MVC project를 생성하면 아래와 같은 구조를 가지고 태어난다.

<Spring 기반 프로젝트 디렉토리 구조>

- src/main/java : .java 코드가 있는 곳이다. Model, Controller가 존재한다.

- src/main/resources : Java Class에서 사용하는 리소스를 보관하는 곳이다. mapper, SQL등 DB연결을 위한 xml 파일 등의 .java 코드가 아닌 다른 모든 자원을 넣으면 된다.

- src/test/java : 단위 테스트를 위한 테스트 코드이다.

- src/test/resources : 단위 테스트에서 사용할 자원이다.

- Maven Dependencies : Maven에서 관리하는 라이브러리 폴더이다. pom.xml을 기반으로 다운받아 관리한다.

- src : Web에 관련된 자원이 담겨있는 폴더이다.

- src/main/webapp/resources : js, css, images 등의 자원이 있으며, 외부에서 접근이 가능하여 컨트롤러가 접근을 가로채지 않고 바로 접근할 수 있도록 설정하는 곳이다.

- src/main/webapp/WEB-INF: Web에 필요한 여러 파일들이 보관되는 곳이며 보안이 중요하여 외부 사용자가 직접 접근이 불가능하고 컨트롤러를 통해 내부적으로 접근하는 폴더이다.

- src/main/webapp/WEB-INF/classes : 컴파일 된 클래스가 있다.

- src/main/webapp/WEB-INF/spring: 스프링 프로젝트를 환경설정하는 곳이다. 공통 빈을 설정하는 영역이다. (ex. root-context.xml, servlet-context.xml) 

- src/main/webapp/WEB-INF/views : View에 대한 자원이 있는 곳으로 jsp, html이 있다.

- web.xml : Web App. 설정을 위한 내용이 들어있다. Deployment Descriptor(배포 서술자)라고 한다.

Servlet과 JSP를 매핑해주는 등의 웹 프로젝트의 환경설정 파일이다. WAS가 실행되면 가장 먼저 web.xml를 읽어 들인다.

- target/../../ : 프로젝트의 결과물의 저장장소이다. Maven을 빌드하면 생기는 jar,war 파일의 저장 용도이다.

- targer/m2e-wtp/web-resources/META-INF : MANIFEST 파일을 담는 폴어디며 jar의 일부분이다.

Java에서 설정관련 파일을 저장하는 폴더로 생각하면 된다.

- MANIFEST.MF : jar 파일에 대한 정보가 담겨있다. (class의 위치 등)

- pom.xml : pom(project object model)은 라이브러리를 사용할 때 의존성을 관리하는 설정파일이다.

maven이라는 빌드도구를 이용하기 위하여 사용된다. 해당 파일을 통해 프로젝트의 모든 설정, 의존성 등을 알 수 있다.

참고!!  Maven은 자바 프로젝트의 빌드를 자동화 해주는 도구이다. java 소스를 컴파일하고 패키징해서 디플로이하는 일을 수행한다.

 

 

 

*참고 블로그 :

https://codevang.tistory.com/240

https://gabrielyj.tistory.com/123

https://doublesprogramming.tistory.com/16

https://jayviii.tistory.com/7

https://doublesprogramming.tistory.com/84 (구동과정)

728x90

+ Recent posts