IntelliJ IDEA 에서 Maven 을 사용하여 Spring MVC 애플리케이션 구축 방법

DockerBeginner
지금 연습하기

소개

이 튜토리얼에서는 IntelliJ IDEA 개발 환경에서 Maven 을 사용하여 Spring MVC 애플리케이션을 구축하는 과정을 안내합니다. 개발 환경 설정부터 컨테이너화를 위해 Docker 를 활용하는 필수 단계까지 다루어 현대적인 웹 애플리케이션 구축을 시작하는 데 도움을 드립니다.

Spring MVC 소개

Spring MVC 는 Spring 생태계의 일부인 인기 있는 웹 애플리케이션 프레임워크입니다. 모델 - 뷰 - 컨트롤러 (MVC) 아키텍처 패턴을 따르며, 애플리케이션 로직을 모델, 뷰, 컨트롤러라는 세 개의 상호 연결된 구성 요소로 분리합니다.

Spring MVC 란 무엇인가요?

Spring MVC 는 자바 기반의 웹 애플리케이션 프레임워크로, 웹 애플리케이션 구축을 위한 포괄적인 프로그래밍 및 구성 모델을 제공합니다. 웹 개발과 관련된 일반적인 작업 및 패턴 (예: 요청 처리, 뷰 렌더링, 데이터 바인딩) 을 처리하여 웹 애플리케이션 개발을 단순화합니다.

Spring MVC 의 주요 구성 요소

Spring MVC 프레임워크의 주요 구성 요소는 다음과 같습니다.

  1. 모델: 모델은 애플리케이션의 데이터와 비즈니스 로직을 나타냅니다. 애플리케이션의 데이터와 상태를 관리하는 역할을 합니다.

  2. : 뷰는 애플리케이션의 사용자 인터페이스를 렌더링하는 역할을 합니다. 사용자에게 데이터를 표시하고 사용자 상호 작용을 처리합니다.

  3. 컨트롤러: 컨트롤러는 모델과 뷰 사이의 중개자 역할을 합니다. 사용자 요청을 받아 데이터를 처리하고, 렌더링을 위해 데이터를 뷰로 전달합니다.

graph LR A[클라이언트] --> B[DispatcherServlet] B --> C[HandlerMapping] B --> D[컨트롤러] D --> E[모델] D --> F[뷰] F --> A[클라이언트]

Spring MVC 사용의 장점

Spring MVC 사용의 주요 장점은 다음과 같습니다.

  1. 책임 분리: MVC 패턴은 코드를 더욱 유지 관리 가능하고 테스트 가능하도록 명확한 책임 분리를 촉진합니다.
  2. 유연성: Spring MVC 는 개발자가 특정 요구 사항에 맞게 프레임워크를 사용자 정의할 수 있도록 유연하고 구성 가능한 아키텍처를 제공합니다.
  3. 확장성: Spring MVC 는 대규모 웹 애플리케이션 구축에 적합하도록 설계되었습니다.
  4. 다른 Spring 모듈과의 통합: Spring MVC 는 Spring Security, Spring Data, Spring Boot 와 같은 다른 Spring 모듈과 원활하게 통합되어 포괄적이고 일관된 개발 환경을 제공합니다.

Spring MVC 의 기본 개념과 구성 요소를 이해함으로써 이 강력한 프레임워크를 사용하여 견고하고 확장 가능한 웹 애플리케이션을 구축할 수 있습니다.

IntelliJ IDEA 를 이용한 개발 환경 설정

Maven 을 사용하여 IntelliJ IDEA 에서 Spring MVC 애플리케이션을 구축하기 위해 개발 환경을 설정해야 합니다. 다음은 설정 방법입니다.

Java 개발 키트 (JDK) 설치

먼저, Ubuntu 22.04 시스템에 Java 개발 키트 (JDK) 를 설치해야 합니다. 터미널에서 다음 명령어를 실행하여 설치할 수 있습니다.

sudo apt update
sudo apt install openjdk-11-jdk

Java 버전을 확인하여 설치를 확인합니다.

java -version

IntelliJ IDEA 설치

다음으로, 자바 개발을 위한 인기 있는 통합 개발 환경 (IDE) 인 IntelliJ IDEA 를 설치해야 합니다. IntelliJ IDEA 최신 버전은 공식 웹사이트 (https://www.jetbrains.com/idea/download/) 에서 다운로드할 수 있습니다.

다운로드가 완료되면 ZIP 파일을 압축 해제하고 다음 명령어를 실행하여 IDE 를 시작합니다.

./idea.sh

Spring MVC 프로젝트 설정

  1. IntelliJ IDEA 를 열고 "Create New Project"를 선택하여 새로운 프로젝트를 만듭니다.
  2. 프로젝트 유형으로 "Maven"을 선택하고 "Next"를 클릭합니다.
  3. 프로젝트 이름과 위치를 지정하고 "Finish"를 클릭합니다.
  4. 프로젝트 구조에서 "src/main/java" 폴더를 마우스 오른쪽 버튼으로 클릭하고 "New" > "Package"를 선택합니다. 예를 들어, "com.labex.springmvc"와 같은 패키지를 만듭니다.
  5. 패키지를 마우스 오른쪽 버튼으로 클릭하고 "New" > "Java Class"를 선택합니다. 예를 들어, "HelloController.java"와 같은 Spring MVC 컨트롤러를 위한 새로운 클래스를 만듭니다.
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";
    }
}
  1. "src/main/resources" 디렉토리 아래에 "templates"라는 새 폴더를 만듭니다. 여기에 Spring MVC 뷰 템플릿을 배치합니다.
  2. "templates" 폴더 안에 "hello.html"이라는 새 파일을 만들고 다음 내용을 추가합니다.
<!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 애플리케이션 구축

이제 개발 환경을 설정했으니, Maven 을 사용하여 Spring MVC 애플리케이션을 구축해 보겠습니다.

Maven 프로젝트 설정

  1. IntelliJ IDEA 프로젝트에서 pom.xml 파일을 엽니다.
  2. <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>
  1. 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>

Spring MVC 컨트롤러 구현

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 애플리케이션 설정

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);
    }
}

Spring MVC 애플리케이션 실행

  1. IntelliJ IDEA 터미널에서 프로젝트 디렉토리로 이동하고 다음 명령어를 실행하여 애플리케이션을 빌드하고 시작합니다.
mvn spring-boot:run
  1. 애플리케이션이 실행되면 웹 브라우저를 열고 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 를 사용하여 웹 애플리케이션을 탐색하고 구축하는 데 유용할 것입니다.