Spring Tool Suite에서 Maven 기반 웹 프로젝트를 생성할 때, web.xml 파일 없이도 구성이 가능합니다. 프로젝트의 pom.xml을 수정하여 JDK 컴파일 버전을 1.8로 지정합니다.
1. Maven 환경 설정
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
전통적인 SSM(Spring+SpringMVC+MyBatis) 구조에서는 web.xml이 필수였지만, Spring Boot는 Servlet 3.0 이상의 스펙을 기반으로 동작하므로 web.xml 없이 웹 애플리케이션을 구동할 수 있습니다.
2. Spring Boot 프레임워크 상속
pom.xml에 Spring Boot 의존성과 웹 환경 지원을 추가합니다.
<project>
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
</parent>
...
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
...
</project>
기존 프로젝트에서는 모든 라이브러리 의존성을 수동으로 선언했지만, spring-boot-starter-web 하나만 추가하면 Spring MVC와 내장 Tomcat 등 웹 환경에 필요한 각종 의존성이 자동으로 포함됩니다.
spring-boot-starter-parent는 Spring Boot의 기본 설정값들을 상속받기 위해 사용합니다.
spring-boot-starter-xxx는 각각 특정 모듈(예: 웹, JPA, 시큐리티)을 의미합니다.
3. 통합 환경 테스트 코드 작성
src/main/java 디렉토리 아래에 메인 애플리케이션 클래스를 생성합니다.
package com.example.myapp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
Spring Boot 프로젝트는 일반적으로 Application으로 끝나는 클래스를 가지며, 이 클래스에 표준 main 메서드를 구현합니다. @SpringBootApplication 어노테이션이 핵심이며, 이 어노테이션 하나로 자동 설정, 컴포넌트 스캔, 추가 설정이 활성화됩니다.
프로젝트 또는 해당 클래스를 우클릭한 후 Run As → Spring Boot App을 선택하면, 콘솔에 서버가 시작되었다는 메시지가 출력됩니다. Spring Boot는 내장 Tomcat을 포함하고 있어 웹 의존성만 추가하면 바로 서버가 구동되며, 기본 포트는 8080입니다.
Tomcat의 기본 포트나 기타 설정을 변경하려면 src/main/resources/ 경로에 application.properties 파일을 생성합니다.
server.context-path=/
server.port=80
server.session.timeout=60
server.tomcat.max-threads=800
server.tomcat.uri-encoding=UTF-8
Spring Boot는 기본적으로 src/main/resources/ 또는 클래스패스 상의 /config 디렉터리에서 application.properties나 application.yml을 자동으로 로드합니다.
Spring Boot는 "마이크로 프레임워크"로 불리지만, 이는 규모가 작다는 의미가 아니라 설정이 간결하다는 뜻입니다. 대부분의 기반 설정은 프레임워크가 자동으로 처리하며, 확장성을 위해 일부 설정만 파일로 남겨둡니다.
위 예제는 Spring Boot를 단순히 구동하는 수준이지만, 실제 프로젝트에서는 Spring MVC와 MyBatis 등을 통합하여 사용하게 됩니다. 이러한 심화 내용을 학습하기 전에 소스 코드 분석을 통해 Spring Boot의 내부 동작 원리를 이해하는 것이 도움이 됩니다.