FireDrago
[Spring] 웹 개발의 기초 본문
intro
스프링은 java 기반의 프레임워크로 주로 웹개발을 하는데 사용된다.
클라이언트의 요청을 받은 스프링이 html과 json을 어떻게 클라이언트에게 반환하는지 알아보자
html
html은 웹 페이지의 기본이 된다. 하지만 html은 스스로 동적 페이지를 구성할 수 없다. 즉 사용자의 요청에 따라 달라지는 페이지를 구성할 수 없다. 그래서 스프링에서는 "템플릿 엔진"을 사용한다. 대표적인 템플릿 엔진이 Thymeleaf 이다.

thymeleaf 를 사용할때는 먼저 xml 네임스페이스를 설정해줘야한다. 그런다음 지정한 네임스페이스와 "${변수명}" 를 사용해 동적페이지를 구성한다. 위의 예시에서는 컨트롤러에서 전달받은 name 변수에 따라 클라이언트에게 표시되는 페이지가 달라지는 것이다. 그러면 컨트롤러에서는 어떻게 데이터를 전달하는지 살펴보자

* @GetMapping("hello-mvc") 어노테이션은 HTTP GET 방식의 /hello-mvc 요청과 해당 메서드를 매핑한다.
* @RequestParam("name") String name은 /hello-mvc 요청에서 name 파라미터의 값을 name 변수로 받아온다.
* model.addAttribute("name", name)은 name 변수의 값을 model 객체에 추가한다.
* return "hello-template"은 ViewResolver를 통해 hello-template.html 템플릿을 반환한다.
이런 과정을 거쳐 전달된 model이 위의 Thymeleaf 예시에서 name 변수를 꺼내어 사용하는 것이다.
html 페이지를 반환할때는 ViewResolver가 사용된다는 사실을 기억하자!!
JSON
JSON은 키와 값으로 구성되어 있으며, 언어에 상관없이 데이터를 전달할 수 있는 방식을 말한다. 현재의 웹 프로그래밍은 대부분 JSON을 사용하여 데이터를 주고 받는다. 스프링에서 JSON 데이터를 반환하는 예시를 살펴보자

- @ResponseBody 애노테이션을 사용하면, 컨트롤러가 반환하는 객체를 JSON으로 변환하여 HTTP 응답으로 전송한다.
- 이때는 ViewResolver 가 아닌 HttpMessageConverter 인터페이스가 기능한다.

1. html을 반환할때는 ViewResolver 가 역할을 수행하며, 동적 페이지를 위해 템플릿 엔진을 사용한다.
2. JSON을 반환할때는 HttpMessageConverter가 역할을 수행하며 @ResponseBody 어노테이션을 사용한다.
이 글은 인프런 김영한님의 스프링 입문 강의를 바탕으로 작성했습니다.
'프로그래밍 > Spring' 카테고리의 다른 글
| [Spring] 스프링 기본 원리 (0) | 2024.01.04 |
|---|---|
| [Spring] AOP (0) | 2024.01.02 |
| [Spring] 스프링 의존관계 설정 (0) | 2023.12.30 |
| [Spring] 회원관리 예제 (0) | 2023.12.29 |
| [Spring] Spring에서 Mybatis 사용하기 (0) | 2023.09.04 |
