스프링 프레임워크(Spring Framework) 개발 환경 설정하기
스프링 개발에서 가장 많이 사용하는 통합 개발도구는 Eclipse 기반으로 개발된 Spring Tool Suite(STS)를 이용하거나, Intellij 또는 Eclipse 플러그인의 형태로 사용하는 경우가 많습니다. 일반적으로 STS를 이용하여 진행되며 이를 사용하기 위해 사전에 JDK의 설치가 필요합니다.
개발 환경 구성을 위해서 다음의 프로그램을 각각의 버전에 맞춰서 설치를 해줘야합니다.
(각 프로그램의 버전은 설치 당시의 버전을 기준으로 작성했습니다.)
IDE - Eclipse IDE for Java EE Developers (2018-09 Window 64bit)
Java - JDK 1.8.0_202 (JDK 1.6 이상 권장)
Tomcat - Apache Tomcat 8.5.39
Maven - Maven 3.6.0
1.1 STS(Spring Tool Suite)의 설치와 개발환경
JDK 설치 이후 http://spring.io/tools/sts/all 의 링크를 이용하여 STS를 다운로드 받아 사용할 수 있습니다. 자신의 운영체제에 맞는 버전을 선택하여 다운로드 해줍니다.
※ STS(Spring Tool Suite)
Spring 응용 프로그램 개발을 위해 만들어진 Eclipse 기반의 개발 환경입니다. Pivotal tc Server, Pivotal Cloud Foundry, Git, Maven, AspectJ 등의 integration을 포함하여 Spring 애플리케이션을 구현하고, 디버깅, 실행 및 배포 할 수 있는 환경을 제공해줍니다.
다운로드 받은 후 압축된 파일을 풀어준 뒤 sts-bundle 폴더 안의 STS.exe 실행 파일을 실행해줍니다.
또는 다음과 같이 이클립스의 Marketplace에서 STS를 설치해주는 방법도 있습니다.
1.2 스프링 프로젝트를 시작하는 두 가지 방법
스프링으로 웹 프로젝트를 시작하는 방법은 다음과 같이 두 가지가 있습니다.
1) Spring Boot를 이용하는 프로젝트의 생성 (Spring Starter Project)
2) Spring의 템플릿 프로젝트를 이용하는 프로젝트의 생성 (Spring Legacy Project)
두 가지 방식 중 어떤 방식으로 프로젝트를 생성하는 것이 좋은가에 대해서는 다음과 같은 질문에 대한 답을 고려하면 좋습니다.
- 현재 같이 일하는 사람들이 WAS를 사용하고 있는가
- 스프링을 사용해본 적이 있는가
- 모델 2 방식을 이해하고 경험해 본 적이 있는가
- Tomcat과 같은 WAS를 사용해본 적이 있는가
- WAS 실행 시 에러가 발생하면 어느 정도는 본인이 해결 가능한가
위의 질문에 해당하는 경우엔 Spring Legacy Project를 선택해서 작성하는 것이 좋고, 조금 더 빠른 개발이 필요하거나 최신 트렌드에 민감한 경우라면 Spring Starter Project로 설정하는 것이 좋습니다.
Spring Boot는 그 목적 자체가 최대한 간단하게 실행하고 배포 가능한 수준의 웹 어플리케이션을 제작하는 것입니다. 따라서 개발에 필요한 기본적인 모든 환경설정을 맞춰주고 최소한의 개발을 해야 하는 경우에 좋은 선택이 됩니다. 이러한 경우 전혀 경험이 없는 개발자라도 쉽게 웹 프로젝트를 생성해서 실행할 수 있습니다.
Spring Starter Project (Spring Boot) | Spring Legacy Project | |
장점 |
별도의 설정이 필요없음 WAS 없이 실행 가능 로딩 시간이 짧아 테스트 하기에 편리함 |
현재까지 실무에서 많이 사용 다양한 자료가 존재 기존 프로젝트를 이해하는데 도움이 됨 모듬 버전의 스프링에서 사용 가능 |
단점 |
기존의 설정과 다른 방식으로 사용함 JSP 설정 등은 별도로 해야함 |
초반 테스트 환경 구성 등이 어려움 WAS와 연동하는 경우 결과 확인에 많은 리소스를 소모함 |
STS 설치 후 이클립스를 실행하여 상단 메뉴에서 File > New > Other... 클릭 후 spring을 검색해보면 생성 가능한 프로젝트에 spring이 나타나는 것을 확인할 수 있습니다.
1.3 Spring Project를 이용한 프로젝트 생성
STS를 사용하여 얻는 가장 큰 이점은 스프링의 복잡한 프로젝트 구성을 템플릿으로 제공하므로 설정을 한 번에 완료할 수 있다는 점입니다. 이를 사용하기 위해서 프로젝트 생성 시 Spring Project 메뉴의 항목을 이용해줍니다.
이클립스 상단 메뉴에서 File > New > Other... 클릭 후 spring을 검색한 뒤 Spring Legacy Project를 선택하여 프로젝트를 생성해줍니다.
생성시 프로젝트명을 작성하고 Templates 영역에서 Spring MVC Project를 선택해줍니다.
이후 사용할 패키지명을 작성해줍니다.
여기까지 완료되면 maven이 필요한 라이브러리를 다운로드 받기 시작하는데 자동으로 관련 라이브러리를 다운로드 받기 때문에 몇 분정도의 시간이 소요됩니다.
※ 이후 진행하는 모든 실습에서는 maven 이라는 빌드 도구를 이용하여 필요한 jar 파일들과 프로젝트를 구성하게 됩니다.
- maven은 프로젝트 관리 도구로 프로젝트의 시작과 끝까지의 단계에 맞춰서 사용하는 개발 도구입니다. 주로 프로젝트에 필요한 의존적인 라이브러리를 관리해주는 용도로 많이 사용됩니다.
1.4 라이브러리의 초기화
STS는 기본적으로 maven을 내장하고 있기 때문에 프로젝트 생성 시 바로 maven을 이용해서 스프링 관련 라이브러리를 다운로드 해줍니다.
maven이 다운로드 받은 라이브러리는 일반적으로 .m2 라는 이름의 폴더 하위에 위치하게 됩니다. 이 폴더는 숨김 폴더이기 때문에 경로를 확인하고 싶으면 폴더 옵션에서 '숨김 파일 및 폴더 표시' 옵션을 선택한 후 해당 드라이브 경로에서 확인해줍니다.
1.5 JDK 버전의 처리
STS를 이용하여 스프링 MVC 프로젝트를 생성하면 JDK 버전은 1.6 버전을 기준으로 생성됩니다. 그 이상의 버전을 사용하고 싶다면 해당 프로젝트의 Project Facets 와 Java Compiler를 버전에 맞게 변경해줘야 합니다.
생성한 프로젝트를 우클릭한 후 Properties를 클릭하여 아래와 같이 변경하고자 하는 JDK 버전에 맞게 설정해줍니다.
1.6 스프링 MVC 프로젝트 템플릿의 구조
생성한 Spring MVC 프로젝트 폴더는 아래와 같은 구조로 이루어져 있습니다.
STS는 기본적으로 별도의 설정 없이 웹 개발에 필요한 모든 경로를 만들어주기 때문에 개발 시간 단축이 가능합니다. 위의 폴더 구조의 경로의 의미는 다음과 같습니다.
- src/main/java : 개발되는 java 코드의 경로
- src/main/resources : 서버가 실행될 때 필요한 파일들의 경로
- src/test/java : 테스트 전용 경로 (각 테스트 코드 작성 경로)
- src/test/resources : 테스트 시에만 사용되는 파일들 경로
- src/main/webapp/WEB-INF/spring : Spring 설정 파일의 경로
- src/main/webapp/WEB-INF/views : JSP 파일의 경로
- pom.xml : maven 설정 파일
1.7 Spring 프레임워크의 버전 변경
스프링 프로젝트를 사용하면 모든 라이브러리의 경로와 설정이 완료되지만 스프링의 버전과 같이 개별적으로 변경이 필요한 경우도 있습니다. 아래 방법을 통해서 3.x 버전을 4.x 버전으로 변경해보겠습니다.
https://repo.spring.io/release/org/springframework/spring/ 링크에서 스프링4의 최신 버전을 확인한 후 생성된 프로젝트의 pom.xml 내용을 다음과 같이 수정합니다.
<properties>
<java-version>1.8</java-version>
<org.springframework-version>4.3.9.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
스프링의 버전이 변경되면 maven은 다시 라이브러리를 다운로드 받습니다.
해당 프로젝트에 maven 설정이 안되어 있을 경우 프로젝트를 우클릭하고 Configure > Convert to Maven Project 를 클릭해줍니다.
이후 해당 프로젝트에서 변경된 스프링 라이브러리를 다운로드 받았는지 확인해줍니다.
(스프링의 버전이 바뀌면 기존에 설정한 JDK 버전이 1.6 으로 초기화되는 경우가 있으므로 함께 확인해줍니다.)
1.8 Tomcat 설치 및 사용
STS가 제공하는 서버 외에 Tomcat을 연동하여 실행하는 방법입니다. https://tomcat.apache.org/ 링크에서 Tomcat을 다운로드 받아 압축을 풀어줍니다. (실습을 위해 8.5 버전을 다운로드하였습니다.)
이클립스 상단 메뉴에서 Window > Preferences 를 클릭한 후 Server > Runtime Environments 를 선택하여 Tomcat 서버를 다음과 같이 추가해줍니다. (또는 Spring 프로젝트를 생성한 것처럼 직접 server를 생성해주어도 됩니다.)
이후 해당 프로젝트를 우클릭하고 Run As > Run on Server를 클릭하여 실행해줍니다.
실행이 안될 경우 프로젝트 우클릭 후 Run As > Maven clean 과 Run As > Maven install 을 순서대로 실행해 준 후 다시 시도해줍니다.
정상적으로 실행되면 다음과 같이 브라우저에 서버 실행 결과가 출력되는 것을 확인할 수 있습니다.
위의 URL 경로에서 /myapp 의 경우 앞서 스프링 프로젝트 생성시 설정한 패키지의 마지막 경로로 설정됩니다.
이상으로 Spring Framework 개발 환경 설정 방법에 대해서 알아봤습니다.
※ 참고 문헌
-
구멍가게 코딩단, 『코드로 배우는 스프링 웹 프로젝트』, 남가람북스(2015), p26 ~ p48. Chapter 1-1. 개발 환경의 설정