강의명 : 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
지식공유자 : 김영한
[지금 무료]스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 | 김영한 - 인프런
김영한 | , 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 첫 번째 강의입니다. 우아한형제들 최연소 기술이
www.inflearn.com
사전 설정
- 자바 17 이상 설치
- IDE : IntelliJ 또는 Eclipse 설치 (IntelliJ 추천)
스프링부트 3.0 이상, JDK 17 이상 사용!
필자는 IntelliJ와 JDK 21을 사용하고 있으며, 스프링부트는 SNAPSHOP, M1등 미정식 버전을 제외한 최신 버전을 사용하면 된다. 대학생은 IntelliJ Edu 라이센스를 사용할 수 있어서 따로 결제하지 않고 유료 버전의 기능을 활용할 수 있다.
프로젝트 생성
스프링 부트 스타터 홈페이지로 이동하여 스프링 부트 프로젝트를 생성한다.


- 프로젝트 선택
- Project : Gradle-Groovy
- Spring Boot : 3.x.x
- Language : Java
- Packaging : Jar
- Java : 21 (본인이 설치한 JDK 버전에 따라)
- Project Metadata (임의로 설정 가능하나, 강의에서는 아래의 이름으로 진행한다)
- GroupId : hello
- artifactId : hello-spring
- Dependencies : Spring Web, Thymeleaf
스프링부트 3.0 이상 버전에서는 다음에 대한 확인이 필요하다.
- Java 17 이상 사용
- javax 패키지 이름을 jarkarta로 변경
- H2 데이터베이스 2.1.214 버전 이상 사용
프로젝트 설정


위와 같은 경로를 통해 build.gradle -> Open as Project로 IntelliJ에서 열어준다.

- .idea
- IntelliJ가 사용하는 설정파일이다.
- gradle
- gradle과 관련된 폴더이다.
- src
- main
- java와 관련되어 실제 패키지와 소스파일들이 들어간다.
- resources에는 자바 파일을 제외한 설정 파일들이 들어간다.
- test
- test code에 사용되는 소스들이 들어간다.
- main
- build.gradle
- 플러그인, 종속성 설정, 버전 설정 등의 역할을 한다.
프로젝트 실행

HelloSpringApplication 클래스의 main 메소드를 실행한다.

콘솔에서 위와 같이 스프링이 동작하는 것을 확인할 수 있다.

localhost:8080을 주소창에 입력하여 간단하게 동작을 확인할 수 있다. 따로 페이지를 설정하지 않았으므로 오류 페이지가 출력될 것이다. 프로그램을 종료 후 실행하면 웹페이지에 접근할 수 없다.
라이브러리 살펴보기
Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다.
스프링 부트 라이브러리
- spring-boot-starter-web
- spring-boot-starter-tomcat: 톰캣 (웹서버)
- spring-webmvc: 스프링 웹 MVC
- spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
- spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
- spring-boot
- spring-core
- spring-boot-starter-logging
- logback, slf4j
- spring-boot
테스트 라이브러리
- spring-boot-starter-test
- junit: 테스트 프레임워크
- mockito: 목 라이브러리
- assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원
View 환경 설정
Welcome Page 만들기
resources/static/index.html 경로로 index.html 파일을 생성한다.

위의 html코드를 입력하면 Welcome Page가 만들어진다.

마찬가지로 스프링을 재시작하고 localhost:8080을 통해 Welcome Page가 만들어졌음을 확인할 수 있다.
위의 링크를 통해 Welcome Page에 대한 정보를 확인할 수 있다.
Thymeleaf 템플릿 엔진
- Java/hello.hello_spring 경로에 controller 패키지를 생성한다.
- controller 패키지에 HelloController 클래스를 생성한다.

- HelloController 클래스에 위와 같은 코드를 추가한다. 이때 @Controller 어노테이션을 통해 컨트롤러임을 명시한다.
- !@GetMapping 어노테이션을 통해 웹 어플리케이션에서 /hello를 입력받았을 경우 hello 메소드를 호출하도록 한다.
- resources/templates/hello.html 경로로 hello.html 파일을 생성한다.

- hello.html 파일에 위와 같은 html 코드를 추가한다.

- localhost:8080/hello 를 주소창에 입력하면 위와 같은 결과를 확인할 수 있다.

동작 방식
웹 브라우저에서 localhost:8080/hello를 입력하면, 내장 톰켓 서버에서 스프링컨테이너로 입력값을 전달한다.
@GetMapping 어노테이션의 Get은 http프로토콜에서 사용하는 Get 방식을 의미한다. 따라서 @GetMapping("hello")는 hello라는 url을 입력받았을 때 해당 메소드가 실행되도록 하는 것이다.
이때 return값인 hello는 templates의 hello.html파일의 hello를 의미한다. 컨트롤러에서 리턴 값으로 문자를 반환하면 viewResolver가 화면을 찾아서 처리한다. 따라서 컨트롤러에서 hello를 리턴하면 hello.html이 실행된다.
스프링 부트 템플릿엔진 기본 viewName 매핑 방식인 resources:templates/ +{ViewName}+ .html 의 형태로 html 파일을 찾게 된다.
이후 Thymeleaf 템플릿 엔진이 처리하여 hello.html로 변환 후 톰켓 서버를 거쳐 웹 브라우저에 화면을 표시해준다.
Model
model.addAttribute()함수를 통해 attributeName과 attributeValue를 입력받는다. 이때 attributeName으로 입력받은 "data"는 hello.html의 ${data}와 연동된다. 따라서 ${data}에 attributeValue인 hello!!가 전달된다.
attributeValue에 "hello!!" 대신 다른 값을 입력하면 웹 브라우저에 hello!! 대신 새로 입력한 값을 출력할 수 있다.
빌드하고 실행하기
필자는 윈도우 환경에서 실행하였으므로, mac 사용자와 방법이 다르다.
- 명령 프롬프트(cmd)로 이동
- cd명령어를 통해 hello-spring 디렉토리로 이동
- gradlew build 명령어 실행
- cd build/libs 명령어 실행
- java -jar hello-spring-0.0.1-SNAPSHOT.jar 명령어 실행

스프링이 명령 프롬프트에서 실행되는 것을 확인할 수 있다.
'Spring' 카테고리의 다른 글
| Spring 입문 - Part 3 : 회원 관리 예제 - 백엔드 개발 (0) | 2025.03.26 |
|---|---|
| Spring 입문 - Part 2 : 스프링 웹 개발 기초 (0) | 2025.03.24 |