봄봄 Spring 이 왔어요

[Spring] 클라이언트로 정보 전달하기

daun_up 2024. 8. 4. 15:05

프론트엔드만 하던 나는... 주는 API 를 받아서 활용만 해봤지 준 적은 당연히 없다. 이번에 백엔드를 처음 하면서 열심히 코드를 따라 치며 기능 구현을 하고 이걸 어떻게 프론트에게 내가 받던 body (API) 방시긍로 주지...? 하고 솜씻너가 되었다. 프론트 오빠 미안... 이런 나라서... MVC 어쩌고가 중요한 것 같긴 한데 thymeleaf 를 써서 view resolver 에러를 봤던 것 같긴 한데... 아니 API 는 언제 만드는 거지?

Spring 에서 컨텐츠 전달 방식

Spring 전달 방식은 정적 content, MVC & 템플릿 엔진, API 방식 등 크게 세 가지로 나누어진다. 

템플릿 엔진

템플릿 엔진이란 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어를 말한다. 그 중 웹 템플릿 엔진이란 웹 문서가 출력되는 템플릿 엔진을 말한다. 

MVC

MVC 는 Model, View, Controller 를 가르키는 말이다. 웹에서 화면을 출력하기 이전에 content 를 다루는 구현 방식 중 하나이다. 

API 방식

API 방식은 템플릿 엔진에서 처럼 viewResolver 를 사용하지 않는다. 대신에, @ResponseBody 를 사용한다. HTTP 의 BODY 에 문자 내용을 직접 반환하는 것을 의미한다. HTML 이 아닌 JSON 형태로 반환한다. @ResponseBody 를 사용하면 viewResolver를 사용하지 않는 대신에, HttpMessageConverter가 대신 작동한다.