2019-11-18 작성

스프링 개발환경 구성하기 (7) STS 플러그인 설치 및 스프링 프로젝트 생성

📢 2022년 1월 기준으로 포스팅을 새로 반영하였습니다.

스프링을 개발할 때, 보통 2가지 방법으로 개발 도구를 설정하곤 한다.

  • 스프링 전용의 STS 툴을 이용하거나
  • Eclipse 또는 IntelliJ에서 플러그인 형태로 사용하거나

개인적으로 2번째 방법인 Eclipse에서 STS 플러그인을 다운받아서 사용하고 있으므로 이 방법을 포스팅하려고 한다. 만약 1번째 방법으로 스프링 개발을 하려면 Spring Tool을 참고하자.

1. STS 플러그인 설치

이클립스에서 [Help] - [Eclipse Marketplace]을 누르면 아래의 창이 뜬다. Find 란에 'sts'를 검색하면 다양한 플러그인이 검색된다. 2022년 1월 기준으로 대표적으로 아래 3개 항목이 보일 것이다.

  • Spring Tools 3 (Standalone Edition) 
  • Spring Tools 3 Add-On for Spring Tools
  • Spring Tools 4 (aka Spring Tool Suite 4)

이 중에서 'Spring Tools 3 Add-On'으로 설치할 것이다. 하나씩 설치해본 결과(..) 이 플러그인으로 설치하면 Standalone Edition 버전인 'Spring Tools 3'도 같이 설치가 된다. 항목을 선택하여 'Install' 버튼을 누른다. (참고로 'Spring Tools 4'로 설치하면 스프링 부트 프로젝트만 생성할 수 있다.)

이제 원하는 솔루션을 고른 후 'Confirm'을 누른다.

라이선스 동의 후 'Finish' 버튼을 누르면 STS 플러그인이 설치될 것이다.

이클립스 재시작 후, STS 설치가 정상적으로 완료되었는지 확인하기 위해 [Window] - [Preferences]에서 Spring 메뉴가 보이는지 확인해보자.

2. 스프링 프로젝트 생성하기

이클립스에서 Ctrl+N를 누른 뒤 Spring 폴더의 'Spring Legacy Project'를 선택한다. 프로젝트명은 각자 원하는 이름으로 작성하자.

  • Project name : devpad
  • Templates : Spring MVC Project

만약 프로젝트 정보를 기입후 'Next'를 누르니 아래의 에러가 발생한다면 포스팅을 참고하자.

An error has occurred. See error log for more details.Could not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter

'Next'를 눌러 다음 창으로 넘어가면 패키지를 작성한다. 세번째로 입력한 인자는 프로젝트의 context명이 된다. 예를 들어 com.company.devpad 로 입력할 경우 devpad가 context명이 된다. 

'Finish'를 누르면 아래처럼 프로젝트가 생성된다. 만약 프로젝트에 오류 표시가 뜬다면, 이클립스 메뉴에서 [Project] > [Clean] 으로 프로젝트 클린을 해보자. 그래도 오류가 사라지지 않는다면 프로젝트 우클릭하여 [Maven] > [Update Project]하여 업데이트하면 오류가 사라질 것이다.

프로젝트 구조를 보면 'Maven Dependencies' 라는 폴더가 보인다. 이 폴더는 메이븐이 자동으로 필요한 라이브러리를 다운로드하는 곳이다. 그리고 이전 포스팅에서 메이븐 개발 환경을 설정할 때 만든 C:\dev\apache-maven-3.8.4\repository 디렉토리에도 관련 라이브러리가 쌓이는 것을 확인할 수 있다.

3. 스프링 프로젝트 실행하기

생성한 프로젝트를 톰캣 서버에 추가한 뒤 실행해보자. 톰캣 서버를 우클릭하여 'Add and Remove'를 클릭한다.

아래와 같이 프로젝트를 'Add >'를 이용하여 왼쪽에서 오른쪽으로 프로젝트를 옮긴 뒤 'Finish'를 누르면 톰캣에 프로젝트가 추가된다.

서버를 구동하려면 프로젝트를 선택 후 'Ctrl + Alt + R' 단축키를 입력하거나, 우클릭하여 'Start'를 클릭하면 된다. 구동이 되었다면 http://localhost:8080/context명/ 에서 확인하자. 내 경우 http://localhost:8080/devpad/ 가 된다.

결과가 아래처럼 'Hello world!'가 나오는 이유는 서버가 구동되면서 기본 샘플로 제공 중인 소스파일이 실행되었기 때문이다.

만약 http://localhost:8080/ 로 확인하고 싶다면 톰캣 서버를 더블클릭 후 Modules 탭의 Path를 /로 변경한다. 또는 Servers 폴더의 server.xml의 마지막 부분에서 변경해도 된다.

4. 기본 환경설정 변경하기

1) 텍스트 인코딩 변경

해당 프로젝트를 우클릭 후 [Properties] - [Resource]에서 Text file encoding을 UTF-8로 변경한다.

2) JDK 버전 변경

기본적으로 설정된 JDK는 1.6이다. 따라서 그 이상의 버전을 사용하려면 해당 프로젝트를 우클릭 후 [Properties] - [Project Facets]에서 Java 버전을 변경한다.

3) Spring Framework 버전 변경

스프링 버전을 확인해보면 현재 2022년 1월 기준으로 최신 버전은 5.3.15이다. [pom.xml] 파일을 열어 스프링 버전을 4점대로 수정하려고 한다.

pom.xml 파일을 열면 아래처럼 표시되어 있는 부분이 있다.

<properties>
	<java-version>1.6</java-version>
	<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
	<org.aspectj-version>1.6.10</org.aspectj-version>
	<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

버전을 아래처럼 변경한다. 

<properties>
	<java-version>11</java-version>
	<org.springframework-version>4.3.3.RELEASE</org.springframework-version>
	<org.aspectj-version>1.6.10</org.aspectj-version>
	<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

변경한 소스를 잠시 살펴보자. properties 안에 4개의 태그들이 보일 것인데 이들을 변수 선언한 것이라고 보면 된다. 예를 들어 org.springframework-version 태그는 4.3.3.RELEASE로 정의했으므로 pom.xml 파일의 dependency 태그에서 저 태그를 사용할 수 있다. 즉, properties 에서 한번 선언해두면 ${org.springframework-version} 이런 식으로 쓸 수 있다. 자주 쓰일만한 버전들을 위에다 선언해서 버전을 좀 더 쉽고 직관적으로 관리할 수 있다.

스프링 버전이 변경되었으므로 Maven은 다시 라이브러리를 다운로드한다. 제대로 변경되었는지 확인하려면 Maven Dependencies 폴더에서 spring으로 시작되는 버전이 4.3.3인지 확인해보자.

3) servlet 버전 변경

servlet의 버전도 변경하자. 변경 전 소스는 아래와 같다.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>​

아래처럼 소스를 변경한다. 버전을 3버전대로 올렸다.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

4) maven plugins 변경

메이븐 플러그인 내용도 재정의하자. 변경 전 소스는 아래와 같다.

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>2.5.1</version>
	<configuration>
		<source>1.6</source>
		<target>1.6</target>
		<compilerArgument>-Xlint:all</compilerArgument>
		<showWarnings>true</showWarnings>
		<showDeprecation>true</showDeprecation>
	</configuration>
</plugin>

소스를 아래처럼 변경한다. 버전은 이전 포스팅에서 설정했던 3.8.1로 변경하였다. 참고로 '윈도우키+R'을 눌러서 나타난 실행창에 'cmd'를 입력해서 콘솔 창을 띄운다. 콘솔 창에 'mvn -version'라고 입력하면 설치한 메이븐 플러그인 버전을 알 수 있다. 또한 ${java-version} 라고 명시한 것은 properties 태그에서 참고하므로 11 버전이 될 것이다. 

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.8.1</version>
	<configuration>
		<source>${java-version}</source>
		<target>${java-version}</target>
		<compilerArgument>-Xlint:all</compilerArgument>
		<showWarnings>true</showWarnings>
		<showDeprecation>true</showDeprecation>
	</configuration>
</plugin>

여기까지 진행했다면 메이븐을 깔끔하게 반영해보자. 프로젝트 우클릭후 [Run As] > [Maven Install]를 진행하여 'BUILD SUCCESS'가 뜨는지 확인하자. 이어서 [Maven] > [Update Project]를 누른다. 이후로 에러가 발생한다면 이클립스를 닫고 C:\dev\apache-maven-3.8.1\repository 안의 파일을 모두 제거한 뒤 다시 위 과정을 진행해보자. 에러가 발생하지 않는다면 서버를 재실행하여 'Hello world!'가 정상적으로 보이는지 확인하자. 

5) Package Explorer 뷰로 바꾸기

프로젝트 뷰를 Project Explorer가 아닌 Package Explorer로 바꾸려면, 이클립스 메뉴에서 [Window] - [Show View] - [Other]에서 'Package Explorer'를 검색한 후 추가한다.

패키지의 Presentation도 아래의 방법으로 바꿀 수 있다. (참고로 파일을 만들 때 [Window] > [Perspective] > [Customize...]의 Shortcuts 탭에서 이용해 메뉴를 바꿀 수 있다)

5. 스프링 MVC 구조

스프링 프로젝트 구조를 간단히 살펴보자. 스프링 MVC 프로젝트 템플릿의 구조는 아래와 같다.