JAVA/스프링 입문

인프런 | 스프링 입문 - 스프링 웹 개발 기초

한 면만 쓴 종이 2022. 7. 16. 03:21

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

 

스프링 웹 개발 기초

  • 정적 컨텐츠
  • MVC와 템플릿 엔진
  • API

 

정적 컨텐츠

  • 스프링 부트 정적 컨텐츠 기능
  • 파일을 그대로 내려줌

http://localhost:8080/hello-static.html

<!DOCTYPE html>
<html>
<head>
    <title>static content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
정적 컨텐츠 입니다.
</body>
</html>

정적 컨텐츠 이미지

 

MVC와 템플릿 엔진

  • MVC: Model, View, Controller
  • 템플릿 엔진을 Model, View, Controller로 쪼개서 View를 랜더링해서 전달

 

https://localhost:8080/hello-mvc?name=spring

MVC, 템플릿 엔진 이미지

 

API

`@ResponseBody 문자 변환`

@ResonseBody: http의 body부에 해당 데이터를 직접 넣겠다는 뜻

 

 

@ResponseBody 사용 원리

(자세한 버전)

@RespnseBody가 있으면 helloController가 http의 body에 그대로 넘김

    * 객체가 넘겨져서 받으면 Spring은 디폴트 방식을 정해둠: json방식으로 데이터를 만들어서 http의 응답에 반환함

 객체를 넘기면 HttpMessageConverter가 동작함

    1. 단순 문자일 경우(객체X): StirngConverter가 동작

    2. 객체일 경우: JsonConverter가 동작 -> 객체를 json 스타일로 바꿈

 

@ResponseBody 사용

  • HTTP의 BODY에 문자 내용을 직접 반환
  • viewResolver 대신에 HttpMessageConverter 가 동작
  • 기본 문자처리: StringHttpMessageConverter
  • 기본 객체처리: MappingJackson2HttpMessageConverter
  • byte 처리 등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음