목차
1 - 스프링부트 개요
1. 스프링부트란?
스프링 프레임워크
- 대규모의 엔터프라이즈 애플리케이션시 개발환경을 제공해서 기능 개발에만 집중할 수 있도록 함
- 서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구
- 설정이 복잡 등 단점 → 스프링 부트 출시
스프링 부트
- 스프링 프레임워크를 개선한 것(개발 환경 설정 간소화, 웹 애플리케이션 서버 <톰캣, 제티, 언더토우 등> 내장 등)
- 자바 웹 프로그램을 더욱 쉽고 빠르게 만들기 위해 개발된 도구
- 원하는 기능을 찾아 조립하기만 하면 편리하게 자바 웹 프로그램을 만들 수 있음

2. 스프링부트 개발 환경 설정
1단계 : JDK 설치
- JDK(Java Development Kit): 자바 코드의 번역과 실행을 담당하는 자바 개발 도구
2단계 : IDE 설치
- IDE(Integrated Development Environment): 개발 생산성을 높여 주는 통합 개발 환경으로, 이클립스와 인텔리제이 같은 프로그램이 있음
3단계 : 스프링 부트 프로젝트 만들기
①Spring Initializr 페이지(https://start.spring.io) 접속
: 쉽게 프로젝트를 생성할 수 있음
②프로젝트 세부 항목 설정
- Project: Gradle – Groovy
- Language: Java
- Spring Boot: 3.1.0(없으면 기본값으로 선택: 현재, 3.2.3) : SNAPSHOT-현재 테스트 단계, Mx - 주요 기능 및 버그 수정 단계
- Packaging: Jar
- Java: 17(앞에서 설치한 JDK 버전으로 선택)
스프링부트 3 버전은 JDK17 이상만 지원함
build system의 Gradle과 Maven 차이
build system이란?
- 소스 코드를 이용해서 실행 가능한 애플리케이션을 생성하는 과정을 자동화하는 프로그램
- 의존성 내려받기, 코드 패키징, 컴파일, 테스트 실행 등이 포함
예전에는 Maven을 많이 사용, 요즘은 Gradle을 사용하는 추세
→ 단, 현장의 운용 시스템은 Maven이 많음
Gradle 특징
- 메이븐에 비해 가독성이 좋고 설정이 간단
- 자바, 코틀린, 그루비 등 다양한 언어 지원
- 원하는 대로 빌드 스크립트를 작성할 수 있음.
- 빌드와 테스트 속도가 메이븐에 비해 더 빠름.
프로젝트 구조
- src > main
- 실제 코드를 작성하는 공간
- java : java 코드 작성
- resources : 외부 파일 저장
- test
- 프로젝트 테스트 코드를 작성하는 공간
- build.gradle
- 빌드 설정 파일. 의존성이나 플러그인 설정 등과 같이 빌드에 필요한 설정
- settings.gradle
- 빌드할 프로젝트의 정보를 설정하는 파일
2. MVC 패턴
뷰 템플릿
- 웹 페이지(View)를 하나의 틀(Template)로 만들고 여기에 변수를 삽입해 서로 다른 페이지로 보여 주는 기술

- Mustache
- Thymeleaf, JSP 가 포함된다.
- 뷰 템플릿을 만드는 도구 즉, 뷰 템플릿 엔진 의미
MVC 패턴(Model-View-Controller Pattern)
- 웹 페이지를 화면에 보여 주고(View),
- 클라이언트의 요청을 받아 처리하고(Controller),
- 데이터를 관리하는(Model) 역할을 나누는 기법

MVC 패턴을 활용해 뷰 템플릿 페이지 예제
controller/FirstController
package org.example.firstproject.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller // 컨트롤러 어노테이션 명시
public class FirstController {
@GetMapping("/hi") // /hi 주소로 GET 요청이 들어오면 hello() 메서드 실행
public String hello(Model model) {
model.addAttribute("username", "홍길동"); // username이라는 변수에 "홍길동" 대입
return "greetings"; // greetings.mustache 파일 반환
}
}
templates/greetings.mustache
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>{{username}}님 반갑습니다.</h1>
</body>
</html>
어노테이션(annotation)
- 소스 코드에 추가해 사용하는 메타 데이터의 일종
- 컴파일 및 실행 과정에서 코드를 어떻게 처리해야 할지 알려주는 추가정보
- @ 기호를 붙여 사용
MVC의 역활과 실행 흐름


1 - 스프링부트 개요
1. 스프링부트란?
스프링 프레임워크
- 대규모의 엔터프라이즈 애플리케이션시 개발환경을 제공해서 기능 개발에만 집중할 수 있도록 함
- 서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구
- 설정이 복잡 등 단점 → 스프링 부트 출시
스프링 부트
- 스프링 프레임워크를 개선한 것(개발 환경 설정 간소화, 웹 애플리케이션 서버 <톰캣, 제티, 언더토우 등> 내장 등)
- 자바 웹 프로그램을 더욱 쉽고 빠르게 만들기 위해 개발된 도구
- 원하는 기능을 찾아 조립하기만 하면 편리하게 자바 웹 프로그램을 만들 수 있음

2. 스프링부트 개발 환경 설정
1단계 : JDK 설치
- JDK(Java Development Kit): 자바 코드의 번역과 실행을 담당하는 자바 개발 도구
2단계 : IDE 설치
- IDE(Integrated Development Environment): 개발 생산성을 높여 주는 통합 개발 환경으로, 이클립스와 인텔리제이 같은 프로그램이 있음
3단계 : 스프링 부트 프로젝트 만들기
①Spring Initializr 페이지(https://start.spring.io) 접속
: 쉽게 프로젝트를 생성할 수 있음
②프로젝트 세부 항목 설정
- Project: Gradle – Groovy
- Language: Java
- Spring Boot: 3.1.0(없으면 기본값으로 선택: 현재, 3.2.3) : SNAPSHOT-현재 테스트 단계, Mx - 주요 기능 및 버그 수정 단계
- Packaging: Jar
- Java: 17(앞에서 설치한 JDK 버전으로 선택)
스프링부트 3 버전은 JDK17 이상만 지원함
build system의 Gradle과 Maven 차이
build system이란?
- 소스 코드를 이용해서 실행 가능한 애플리케이션을 생성하는 과정을 자동화하는 프로그램
- 의존성 내려받기, 코드 패키징, 컴파일, 테스트 실행 등이 포함
예전에는 Maven을 많이 사용, 요즘은 Gradle을 사용하는 추세
→ 단, 현장의 운용 시스템은 Maven이 많음
Gradle 특징
- 메이븐에 비해 가독성이 좋고 설정이 간단
- 자바, 코틀린, 그루비 등 다양한 언어 지원
- 원하는 대로 빌드 스크립트를 작성할 수 있음.
- 빌드와 테스트 속도가 메이븐에 비해 더 빠름.
프로젝트 구조
- src > main
- 실제 코드를 작성하는 공간
- java : java 코드 작성
- resources : 외부 파일 저장
- test
- 프로젝트 테스트 코드를 작성하는 공간
- build.gradle
- 빌드 설정 파일. 의존성이나 플러그인 설정 등과 같이 빌드에 필요한 설정
- settings.gradle
- 빌드할 프로젝트의 정보를 설정하는 파일
2. MVC 패턴
뷰 템플릿
- 웹 페이지(View)를 하나의 틀(Template)로 만들고 여기에 변수를 삽입해 서로 다른 페이지로 보여 주는 기술

- Mustache
- Thymeleaf, JSP 가 포함된다.
- 뷰 템플릿을 만드는 도구 즉, 뷰 템플릿 엔진 의미
MVC 패턴(Model-View-Controller Pattern)
- 웹 페이지를 화면에 보여 주고(View),
- 클라이언트의 요청을 받아 처리하고(Controller),
- 데이터를 관리하는(Model) 역할을 나누는 기법

MVC 패턴을 활용해 뷰 템플릿 페이지 예제
controller/FirstController
package org.example.firstproject.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller // 컨트롤러 어노테이션 명시
public class FirstController {
@GetMapping("/hi") // /hi 주소로 GET 요청이 들어오면 hello() 메서드 실행
public String hello(Model model) {
model.addAttribute("username", "홍길동"); // username이라는 변수에 "홍길동" 대입
return "greetings"; // greetings.mustache 파일 반환
}
}
templates/greetings.mustache
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>{{username}}님 반갑습니다.</h1>
</body>
</html>
어노테이션(annotation)
- 소스 코드에 추가해 사용하는 메타 데이터의 일종
- 컴파일 및 실행 과정에서 코드를 어떻게 처리해야 할지 알려주는 추가정보
- @ 기호를 붙여 사용
MVC의 역활과 실행 흐름

