본문 바로가기

컴퓨터/Spring Boot

[TIL] Spring Boot(intellij) - 템플릿 엔진과 API

* 인프런 김영한 강사님의 스프링 입문 강의 정리

스프링의 가장 기초인 정적 페이지, 템플릿엔진을 이용한 동적 페이지

그리고 MVC 패턴과 API를 공부하였다.

 

 

▶ 정적 페이지 

- resources/static 하위에 html 파일을 생성

- 스프링 컨테이너에서 관련 컨트롤러가 없으면 resources: static하위의 html 파일을 찾아 웹 브라우저에 전송한다.

 

▶ MVC 패턴과 템플릿 엔진

MVC 패턴?
- 디자인 패턴 중 하나로 Model, View, Controller의 약자이다.
- 프로젝트 구성요소를 세가지의 역할로 구분한 패턴이다.
- Model : 애플리케이션의 정보
- View : 사용자 인터페이스 요소
- Controller : Model과 View를 연결하는 역할, 이벤트 처리 - > 메인 로직 담당
- 유지보수성, 애플리케이션의 확장성, 유연성의 증가

 

[controller]

- @RequestParam의 required는 true가 default이다 따라서 false가 아니라면 항상 값이 있어야 한다.

- 위 컨트롤러를 만들고 localhost:8080/hello-mvc?name=spring!으로 요청을 보내면 아래와 같은 페이지가 뜬다.

 

 

동작 방법은

1. 요청을 보내면 스프링 컨테이너에서 컨트롤러를 찾는다.

2. model에 (name:spring!) 값을 담아 viewResolver를 통해 html로 변환하여 웹 브라우저로 내려준다.

 

 

▶ API

- API 방식을 사용하면 viewResolver 대신 HttpMessageConverter가 동작하며

  StringConverter 또는 JsonConverter가 작동하여 변환된 데이터를 http body에 담아 웹 브라우저에 내려준다.

 

- @ResponseBody 어노테이션을 사용한다.

 

- hello-string - 문자 처리 -> html 구조 없이 문자 그대로 출력된다.

- hello-Api - 객체(Object) 처리 -> 데이터가 JSON 형태로 출력된다.

 

- json형식으로 리턴하는 라이브러리는 Jackson 과 GSON이 있다. 스프링부트는 Jackson을 디폴트로 한다.

728x90