소개
이 튜토리얼에서는 IntelliJ IDEA 개발 환경에서 Maven 을 사용하여 Spring MVC 애플리케이션을 구축하는 과정을 안내합니다. 개발 환경 설정부터 컨테이너화를 위해 Docker 를 활용하는 필수 단계까지 다루어 현대적인 웹 애플리케이션 구축을 시작하는 데 도움을 드립니다.
이 튜토리얼에서는 IntelliJ IDEA 개발 환경에서 Maven 을 사용하여 Spring MVC 애플리케이션을 구축하는 과정을 안내합니다. 개발 환경 설정부터 컨테이너화를 위해 Docker 를 활용하는 필수 단계까지 다루어 현대적인 웹 애플리케이션 구축을 시작하는 데 도움을 드립니다.
Spring MVC 는 Spring 생태계의 일부인 인기 있는 웹 애플리케이션 프레임워크입니다. 모델 - 뷰 - 컨트롤러 (MVC) 아키텍처 패턴을 따르며, 애플리케이션 로직을 모델, 뷰, 컨트롤러라는 세 개의 상호 연결된 구성 요소로 분리합니다.
Spring MVC 는 자바 기반의 웹 애플리케이션 프레임워크로, 웹 애플리케이션 구축을 위한 포괄적인 프로그래밍 및 구성 모델을 제공합니다. 웹 개발과 관련된 일반적인 작업 및 패턴 (예: 요청 처리, 뷰 렌더링, 데이터 바인딩) 을 처리하여 웹 애플리케이션 개발을 단순화합니다.
Spring MVC 프레임워크의 주요 구성 요소는 다음과 같습니다.
모델: 모델은 애플리케이션의 데이터와 비즈니스 로직을 나타냅니다. 애플리케이션의 데이터와 상태를 관리하는 역할을 합니다.
뷰: 뷰는 애플리케이션의 사용자 인터페이스를 렌더링하는 역할을 합니다. 사용자에게 데이터를 표시하고 사용자 상호 작용을 처리합니다.
컨트롤러: 컨트롤러는 모델과 뷰 사이의 중개자 역할을 합니다. 사용자 요청을 받아 데이터를 처리하고, 렌더링을 위해 데이터를 뷰로 전달합니다.
Spring MVC 사용의 주요 장점은 다음과 같습니다.
Spring MVC 의 기본 개념과 구성 요소를 이해함으로써 이 강력한 프레임워크를 사용하여 견고하고 확장 가능한 웹 애플리케이션을 구축할 수 있습니다.
Maven 을 사용하여 IntelliJ IDEA 에서 Spring MVC 애플리케이션을 구축하기 위해 개발 환경을 설정해야 합니다. 다음은 설정 방법입니다.
먼저, Ubuntu 22.04 시스템에 Java 개발 키트 (JDK) 를 설치해야 합니다. 터미널에서 다음 명령어를 실행하여 설치할 수 있습니다.
sudo apt update
sudo apt install openjdk-11-jdk
Java 버전을 확인하여 설치를 확인합니다.
java -version
다음으로, 자바 개발을 위한 인기 있는 통합 개발 환경 (IDE) 인 IntelliJ IDEA 를 설치해야 합니다. IntelliJ IDEA 최신 버전은 공식 웹사이트 (https://www.jetbrains.com/idea/download/) 에서 다운로드할 수 있습니다.
다운로드가 완료되면 ZIP 파일을 압축 해제하고 다음 명령어를 실행하여 IDE 를 시작합니다.
./idea.sh
package com.labex.springmvc;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/")
public String hello(Model model) {
model.addAttribute("message", "Hello from LabEx Spring MVC!");
return "hello";
}
}
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello LabEx</title>
</head>
<body>
<h1 th:text="${message}"></h1>
</body>
</html>
이제 IntelliJ IDEA 와 Maven 을 사용하여 Spring MVC 애플리케이션의 기본 개발 환경을 설정했습니다. 다음 단계로 Spring MVC 애플리케이션 구축을 진행할 수 있습니다.
이제 개발 환경을 설정했으니, Maven 을 사용하여 Spring MVC 애플리케이션을 구축해 보겠습니다.
pom.xml 파일을 엽니다.<dependencies> 섹션 내에 다음 코드를 추가하여 Spring MVC 와 뷰 템플릿 엔진인 Thymeleaf 에 필요한 종속성을 추가합니다.<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies>
pom.xml 파일의 <plugins> 섹션에 Spring Boot Maven 플러그인을 추가합니다.<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.0</version>
</plugin>
</plugins>
</build>
HelloController.java 파일에 들어오는 요청을 처리하고 적절한 뷰를 반환하는 컨트롤러 로직을 정의할 수 있습니다.
package com.labex.springmvc;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/")
public String hello(Model model) {
model.addAttribute("message", "Hello from LabEx Spring MVC!");
return "hello";
}
}
Spring MVC 애플리케이션을 설정하려면 루트 패키지 (예: com.labex.springmvc) 에 SpringMvcApplication.java 파일을 만들고 다음 내용을 추가합니다.
package com.labex.springmvc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringMvcApplication {
public static void main(String[] args) {
SpringApplication.run(SpringMvcApplication.class, args);
}
}
mvn spring-boot:run
http://localhost:8080/으로 이동합니다. 페이지에 "Hello from LabEx Spring MVC!" 메시지가 표시되어야 합니다.축하합니다! IntelliJ IDEA 와 Maven 을 사용하여 Spring MVC 애플리케이션을 성공적으로 구축했습니다. 이제 추가적인 컨트롤러, 서비스 및 뷰를 추가하여 애플리케이션을 확장할 수 있습니다.
이 튜토리얼에서는 IntelliJ IDEA 에서 Maven 을 사용하여 Spring MVC 애플리케이션을 구축하는 방법과 컨테이너화를 위해 Docker 를 활용하는 방법을 배웠습니다. 제시된 단계들을 따르면 이제 개발 환경을 설정하고 Spring MVC 프로젝트를 생성하며 배포를 위한 Docker 컨테이너로 애플리케이션을 패키징할 수 있을 것입니다. 이 지식은 앞으로 Spring MVC 와 Docker 를 사용하여 웹 애플리케이션을 탐색하고 구축하는 데 유용할 것입니다.