티스토리 뷰

처음 하는 스프링(Spring), 프로젝트 생성하기에 이어서.

처음 구성하는 프로젝트 구조

이제 막 프로젝트를 생성했다면 기본적인 Spring 프로젝트 구조는 거의 동일할 것이다.
실제로 프로젝트를 진행하면 초기에 구성된 구조를 그대로 사용하는 경우는 거의 없고,
각자의 입맛에 맞게 혹은 해당 프로젝트 팀에서 정한 구조를 사용하게 된다.
이번 포스팅은 각 구조가 어떤 의미인지, 그리고 입맛에 맞게 구성하는 법을 정리해 볼 것이다.

1. 폴더 구성
우선, 초기에 만들어진 구조를 기준으로 각각의 요소들이 어떻게 분리가 되고 배치되는지 알아보도록 하겠다.
필자가 만든 Begin 프로젝트를 기준으로 정리를 해보려고 한다.

폴더1
프로젝트 폴더 안에 있는 src(source) 폴더를 열면 main, test 두 개 폴더가 보이는데,
test 폴더의 경우 실제로 프로젝트를 진행할 때 JUnit 등 TDD 기반의 개발을 위한 디렉토리이므로 지금은 신경을 쓰지 않아도 된다.

폴더2
우리가 살펴볼 진짜 폴더는 main 폴더인데, 다음과 같이 java, resource, webapp 세 개의 폴더로 구성되어있다.
즉, Spring 프로젝트에서는 위와 같은 세 가지 관점으로 분리를 해 놓은 것이다.

2. As-Is 구성
위에서 살펴본 폴더 구성을 바탕으로 Eclipse에서 프로젝트 구조를 살펴보도록 하자.

asis1
보기 좋게 전체 디렉토리를 펼쳐놓고 번호를 매겨보았다.
①, ②, ③번 영역 모두 앞서 살펴봤듯이 src/main 디렉토리를 기반으로 하고 있다.
①번 영역은 java 폴더의 하위 디렉토리로, 쉽게 말해 .java 파일만 모아서 관리하는 곳이라고 볼 수 있다.
②번 영역은 resource 폴더의 하위 디렉토리로, java 코드에서 사용하기 위한 리소스(mapper, ws 등) 파일을 모아서 관리하는 곳이라고 볼 수 있다.
③번 영역은 webapp 폴더의 하위 디렉토리로, Web에서 사용하는 자원들을 모아서 관리하는 곳으로 jsp, js, css 같은 자원이나 xml 설정 파일 등이 있는 곳이다.

3. To-Be 구성
글이 길면 재미없으니, 사진으로 간단하게 정리하도록 하겠다.

tobe1
java 코드 부분은 패키지를 용도에 맞게 재구성하였고, resource 부분은 java 코드에서 사용할 mybatis 부분을 추가하였다.
webapp 부분은 경로 설정의 편의성에 초점을 두고 구성을 하였다.
추가적으로 WebApplicationContext 파일 중 DispatcherServlet의 역할을 할 파일은 혼동하지 않게 밖으로 빼주었다.
(servlet-context.xml을 우클릭하여 Refactor > Rename, Move 기능을 이용하여 밖으로 옮기고, begin-servlet.xml로 변경해주었다.)

중요하지 않게 생각될 수도 있지만, 개발에 앞서 폴더 구조를 보기 좋게 분류하는 작업 또한 중요하다고 말하고 싶다.
다음은 pom.xml, web.xml 등 환경 설정에 관한 부분을 정리할 예정이다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함