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
'프로그래밍 > Spring Framework' 카테고리의 다른 글
[Spring] STS에 Lombok 라이브러리 설치하기 + Lombok 메소드 기능 (0) | 2020.07.19 |
---|---|
[Spring] 스프링 게시판 예제 (1) - DB 연동 (Oracle, Mybatis) (0) | 2020.06.28 |
[Spring] STS - Spring 한글 인코딩하기 (0) | 2020.06.28 |
[Spring] STS에서 Spring framework project 생성하여 tomcat으로 웹띄우기 (0) | 2020.06.14 |
[Spring] STS에 Spring legacy project 없는 경우 (0) | 2020.06.14 |