❗️이 포스팅은 인프런의 [스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술] 강의를 정리한 내용입니다.❗️
[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의
스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세
www.inflearn.com
[스프링 입문기 5] 스프링 웹개발 기초
- 정적 컨텐츠
- MVC와 템플릿 엔진
- API 방식
정적 컨텐츠
- 서버에서의 변형 없이 정적 파일을 그대로 웹 브라우저에게 넘겨줌
- Spring Boot에서는 /static 폴더에서 정적 컨텐츠를 사용할 수 있도록 제공한다.

- 웹 브라우저에서 localhost:8080/hello-static.html 경로로 들어가면 내장 톰켓 서버가 요청을 받는다.
- 가장 먼저 hello-static과 관련된 컨트롤러가 존재하는지 찾아본다. (컨트롤러가 우선순위)
- 없다면 resources : static/hello-static.html를 찾는다.
MVC와 템플릿 엔진
- MVC란 하나의 애플리케이션을 만들 때의 개발 패턴으로, Model(모델), View(뷰), Controller(컨트롤러)이라는 세 가지 구성 요소로 소프트웨어를 구조화하는 방법을 말한다.
- Model : 모델이란 데이터와 비즈니스 로직을 담당하는 부분으로서, 애플리케이션의 데이터를 처리하고, 상태를 유지하는 역할을 말한다.
- View : 뷰는 사용자 인터페이스(UI)를 담당하는 부분으로, 데이터를 시각적으로 표현하여 사용자에게 보여주는 역할을 담당한다.
- Controller : 컨트롤러는 모델과 뷰 사이의 상호작용을 관리하는 부분이다.
- "name"을 파라미터로 받고, 리턴은 templates/hello-template.html인 컨트롤러를 만들었다.
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name") String name, Model model){
model.addAttribute("name", name); // key : name, value : name
return "hello-template";
}
- "hello-template.html"에서는 모델의 attribute인 name값을 파라미터로 받은 value로 변경하여 html 내용을 동적으로 바꿀 수 있다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaft.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p th:text="'hello '+ ${name}">hello! empty</p>
</body>
</html>
- 파라미터는 GET 방식처럼 "http://localhost:8080/hello-mvc?name=spring!"처럼 설정해 줄 수 있다.

API 방식
- @ResponseBody를 사용.
@GetMapping("hello-api")
@ResponseBody
public Hello helloAPI(@RequestParam("name") String name){
Hello hello = new Hello();
hello.setName(name);
return hello; //hello라는 객체 자체를 반환
}
static class Hello{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

- API 방식은 템플릿 방식과 다르게 viewResolver 대신에 HttpMessageConverter가 작동한다. (JSON 포맷으로 변형)
- 기본 문자는 StringHttpMessageConverter, 기본 객체는 MappingJackson2HttpMessageConverter가 처리한다. byte처리와 같은 다른 형식들도 기본적으로 HttpMessageConverter가 탑재되어 있다.
반응형
SMALL
'Computer Science > Spring' 카테고리의 다른 글
[스프링 입문기 4] 빌드 및 실행하기 (0) | 2023.08.03 |
---|---|
[스프링 입문기 3] Welcome 페이지 만들기 (0) | 2023.08.01 |
[스프링 입문기 2] 라이브러리 살펴보기 (0) | 2023.08.01 |
[스프링 입문기 1] 프로젝트 환경설정/첫 프로젝트 실행해보기 (0) | 2023.08.01 |