본 게시물은 김영한님의 “스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술” 강의를 바탕으로 작성했습니다.
프로젝트 환경 설정
프로젝트 생성
프로젝트를 생성하기에 앞서 Java 17 이상, IntelliJ 또는 Eclipse가 설치되어 있어야 합니다.
스프링 부트 스타터
스프링 부트 스타터는 스프링 부트 기반 프로젝트를 만들어 주는 사이트입니다.
https://start.spring.io 로 이동하면 다음과 같은 페이지가 나옵니다.

스프링 부트 스타터 설정
다음 사진과 같이 설정하고 [GENERATE]를 누르면 압축 파일이 다운로드 됩니다.

- Gradle을 제일 많이 사용합니다.
- Spring Boot 버전은 3.x.x 버전을 사용합니다. SNAPSHOT과 M2 같은 미정식 버전을 제외한 최신 버전인 3.4.3 버전을 사용했습니다.
- Group은 기업(도메인)명을 적는 곳이고, Artifact는 build 했을 때의 결과물입니다. 위와 같이 작성합니다.
- Packaging은 Jar, Java는 17 또는 21을 선택합니다.
- Dependencies는 [ADD DEPENDENCIES]를 클릭하여 추가합니다. Web 프로젝트를 할 것이기에 Spring Web과 Template Engine 중 하나인 Thymeleaf를 추가합니다.

다운로드한 파일을 압축 해제하고 IntelliJ에서 [Open]을 눌러 압축 해제한 [hello-spring] 폴더를 선택합니다.
IntelliJ Gradle 대신 Java 직접 실행 설정
IntelliJ에서 Gradle을 통해 실행하지 않고 Java로 직접 실행하는 것이 더 빠릅니다.

- [Settings(⌘,) → Build, Execution, Deployment → Build Tools → Gradle]로 이동합니다.
- [Build and run using: Gradle → IntelliJ IDEA]로 변경합니다.
- [Run tests using: Gradle → IntelliJ IDEA]로 변경합니다.
IntelliJ JDK 설치 확인
JDK 17 버전 이상을 설치되어 있어야 합니다.

- [Project Structure(⌘;) → Project Settings → Project]로 이동합니다.
- SDK가 17 이상인지 확인합니다. 없다면 [Download JDK…]를 눌러 다운로드 받습니다.
Gradle JDK 설정

- [Settings(⌘,) → Build, Execution, Deployment → Build Tools → Gradle]로 이동합니다.
- [Gradle JVM]을 자바 17 버전 이상으로 설정합니다.
스프링 부트 실행

- src/main/java/hello.hello-spring/HelloSpringApplication.java의 main 함수를 실행합니다.
- 브라우저에서 http://localhost:8080에 접속합니다.
- 아래와 같은 화면이 나오면 정상적으로 작동함을 알 수 있습니다.

View 환경설정
Welcome Page 만들기
스프링 부트에서 static/index.html 을 올려두면 Welcome page 기능을 제공합니다. static 폴더에서 알 수 있듯이 정적 페이지만 지원합니다.
<!DOCTYPE HTML>
<html>
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello
<a href="/hello">hello</a>
</body>
</html>
- 위와 같이 파일을 생성하고 작성한 다음 스프링 부트를 재실행합니다.
- 브라우저에서 http://localhost:8080에 접속하면 아래 사진과 같이 뜨는 것을 볼 수 있습니다.

thymeleaf 템플릿 엔진
정적 페이지를 보았으니 동적 페이지 차례입니다.
- hello.hello_spring에서 controllor라는 새로운 Package를 생성합니다.
- controller/HelloController.java 파일을 생성하고 아래와 같이 입력합니다.
package hello.hello_spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello";
}
}
- resources/templates/hello.html 파일을 생성하고 아래와 같이 입력합니다.
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
</body>
</html>
스프링 부트를 재실행하고 http://localhost:8080/hello에 접속하면 아래와 같은 화면을 볼 수 있습니다.

동작 환경 그림

- 컨트롤러에서 리턴 값으로 문자열을 반환하면 viewResolver가 viewName에 문자열을 매핑하여templates/ +{ViewName}+.html을 찾아서 처리합니다.
- 컨트롤러에서 key는 “data”, value는 “hello!!”라는 model을 만들고 return “hello”;를 통해 hello.html의 데이터를 포함한 화면을 렌더링합니다.
- thymeleaf 공식 사이트: https://www.thymeleaf.org/
- 스프링 공식 튜토리얼: https://spring.io/guides/gs/serving-web-content/
- 스프링부트 메뉴얼: https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-template-engines
빌드하고 실행하기
IntelliJ에서 스프링 부트를 실행할 수 있지만 콘솔(터미널)에서도 실행할 수 있습니다.
Terminal에서 프로젝트가 위치한 폴더까지 디렉터리를 이동하고 다음 명령어를 차례대로 입력합니다. (디렉터리 이동 방법: cd 디렉터리명)
- ./gradlew build
- cd build/libs
- java -jar hello-spring-0.0.1-SNAPSHOT.jar
- 실행 확인

- ls -arlth 명령어를 작성하면 디렉터리 내 모든 파일들을 볼 수 있습니다.
- hello-spring-0.0.1-SNAPSHOT.jar을 복사하여 실행 명령어를 입력하면 성공적으로 스프링 부트를 실행할 수 있습니다.
- hello-spring-0.0.1-SNAPSHOT.jar 파일만 옮겨서 실행하면 다른 환경에서도 스프링 부트를 실행할 수 있습니다.
- IntelliJ에서 스프링 부트를 반드시 종료한 후 실행해야 합니다. 8080 포트를 사용하기에 충돌되면 실행되지 않습니다.
'Development > Spring' 카테고리의 다른 글
| [Spring] 스프링 입문 - 강의 정리 6 (0) | 2026.02.08 |
|---|---|
| [Spring] 스프링 입문 - 강의 정리 5 (0) | 2026.02.08 |
| [Spring] 스프링 입문 - 강의 정리 4 (0) | 2026.02.08 |
| [Spring] 스프링 입문 - 강의 정리 3 (0) | 2026.02.08 |
| [Spring] 스프링 입문 - 강의 정리 2 (0) | 2026.02.08 |