프로젝트 환경설정
🎯라이브러리 살펴보기
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-starter-test
- junit: 테스트 프레임워크
- mockito: 목 라이브러리
- assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원
🎯View 환경설정
Welcome Page 생성
<!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>
스프링 부트가 제공하는 Welcome Page 기능
- static/index.html에 올려두면 Welcome page 기능을 제공함

컨트롤러에서 리턴 값으로 문자를 반환하면 viewResolver가 화면을 찾아서 처리함
- 스프링부트 템플릿엔진 기본 viewName 매핑
- resources:templates/ + {ViewName} + .html
🎯빌드하고 실행하기
cmd창을 연 뒤
- ./gradlew build 입력
- cd build/libs 입력
- java -jar hello-spring-0.0.1-SNAPSHOT.jar 입력
- 실행 화면 확인
스프링 웹 개발 기초
🎯정적 컨텐츠
스프링 부트의 정적 컨텐츠 기능

🎯MVC와 템플릿 엔진
MVC: Model, View, Controller
Controller
@Controller
public class HelloController {
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
}
View
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>

🎯API
@ResponseBody 문자 반환
@Controller
public class HelloController {
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
}
- @ResponseBody를 사용하면 viewResolver 사용❌
- 대신 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY TAG를 말하는 것 ❌)
@ResponseBody 객체 반환
@Controller
public class HelloController {
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
- @ResponseBody를 사용하고 객체를 반환하면 객체가 JSON으로 변환됨
@ResponseBody 사용 원리

@ResponseBody를 사용
- HTTP의 BODY에 문자 내용을 직접 반환
- viewResolver 대신 HttpMessageConverter가 동작
- 기본 문자처리: StringHttpMessageConverter
- 기본 객체처리: MappingJackson2HttpMessageConverter
- byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
'Project > Backend 프로젝트' 카테고리의 다른 글
| 백엔드 프로젝트 12주차 - 스프링부트3 자바 백엔드 개발 입문 1장~2장 (2) | 2023.12.23 |
|---|---|
| 백엔드 프로젝트 8주차 스프링 입문 (2) (0) | 2023.11.11 |
| 백엔드 프로젝트 5주차 (SQL 첫걸음) - 5장 (1) | 2023.10.07 |
| 백엔드 프로젝트 4주차 (SQL 첫걸음) - 4장 (0) | 2023.10.07 |
| 백엔드 프로젝트 4주차 (SQL 첫걸음) - 3장 (0) | 2023.09.30 |