[Spring-boot]_3차 Spring boot (@Requestbody)

2022. 2. 20. 17:00[SpringBoot]_/[Spring-boot]_인프런 강의

728x90
반응형

Web Application 에서 기본적으로 Model, View, Controller 의 MVC 구조를 많이 사용한다.

 

이는 Spring에서 controller 부분에서 핸들링이 가능하다.

대표적으로 3가지를 사용하게 되는데 다음과 같다.

 

1] 정적 콘텐츠 제공

 

static 아래의 파일을 제공 -> 정적인 콘텐츠를 제공

url 부분에 html 부분까지 넣어서 전달하게 되면 해당 html 파일 전체가 제공된다.

 

static 아래의 해당 파일을 만든다.

주소 검색란에 해당 파일의 html을 전달한다.

 

spirng 동작원리]

   1. 해당 heloo-static.html 요청

   2. 내장톰켓이 받아서 이를 spring에 전달

   3. 스프링에서 해당 controller 를 찾는다

   4. 해당 정적컨텐츠는 컨트롤러가 없기 때문에 바로 해당 파일을 제공

 

2] 렌더링이 된 html 파일을 제공 = template 엔진방식

위의 컨트롤러는 hello-template를 리턴하게 된다.

template 아래의 heloo-template.html

위의 정적과 다른 동작원리]

 

   1. 해당 hello-mvc 요청이 들어옴

   2. 내장톰켓이 spring 에서는 우선적으로 해당하는 컨트롤러를 찾음

   3. 전달 컨트롤러가 있기 때문에 return 값인 hello-template를 리턴하고 model 안의 atttest 값에 전달받은 name의       값을 대입 해당 값을 대입하기 위해서는 url뒤에 ?를 이용하여 (HTTP 통신에서 GET 에 값을 전달하는 방식과 동일)       값을 넣어준다

   4. spring의 viewResolver가 동작하여 HTML을 변환하고 변환된 HTML을 전달한다

 

 

위와같은 동작을 template 엔진방식이라고 한다.

 

3] API 통신

 

API 통신에는 2가지가 있다 

기본 문자열통신 과 객체 통신

3-1] 기본 문자열 통신

ResponseBody 태그를 사용하게 되며 동작원리는 다음과 같다

   1. GetMapping으로 해당하는 url 주소가 전달이 된다

   2. 톰켓에서 spring 컨테이너에 전달 해당하는 컨트롤러가 있으니 반응

   3. @ResponseBody 태그가 붙어있는것을 확인 [HTTP Boby 에 문자내용을 직접 반환]

   4. viewResolver 대신에 HttpMessageConverter가 동작

   5. return 하는 요소가 단순 문자열이면 stringconverter가 동작

   6. 기본 문자열이 반환되서 보여진다.

 

결과]

 

3-2] Json 객체 반환 통신

위의 내용과 다른점은 return 값이 hello 라는 객체라는 점이다.

ResponseBody 태그를 사용하게 되며 동작원리는 다음과 같다.

   1. GetMapping으로 해당하는 url 주소가 전달이 된다

   2. 톰켓에서 spring 컨테이너에 전달 해당하는 컨트롤러가 있으니 반응

   3. @ResponseBody 태그가 붙어있는것을 확인 [HTTP Boby 에 문자내용을 직접 반환]

   4. viewResolver 대신에 HttpMessageConverter가 동작

   5. return 하는 요소 객체이기 때문에 JsonConverter 가 동작

   6. json 파일로 반환

 

결과]

 

spring 에서 controller로 통신하는 방법은 대표적으로 3가지가 있다. 여기서 변형 심화하여 사용하게 된다.

정적파일 전달은 컨트롤러가 없고

API통신의 경우 view가 없다

xml통신방법도 있지만 추세는 json통신을 주로 한다.

 

https://inf.run/qct1

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

 

728x90
반응형