과거에는 서버가 주로 요청을 받아 html/css/js 파일을 반환해주곤 했다.
하지만 최근의 경향은 다르다.
웹 생태계가 고도화 되는 과정중에 상대적으로 프론트엔드와 백엔드가 각각 따로 발전하게 되면서, 느슨하게 결합하는 방식을 더 많이 채택하게 되었다.
그래서 최근에는 서버가 직접 뷰(html/css/js)를 반환하기 보다는 요청에 맞는 특정한 정보만 반환하는 것을 조금 더 선호하기도 한다.
서버에서는 데이터 교환 포맷 중 주로 JSON 형태로 데이터를 반환한다.
따라서 초기 html 파일 요청을 제외하고는 JSON 데이터를 요청하는 API를 통해 브라우저에서 html을 조작하여 반영하는 식으로 개발한다.
이런 방식으로 개발하면 프론트와 서버를 분리해서 개발할 수 있다.
html 반환하는 API 코드는 없고 html을 관리하는 서버는 프론트엔드에서 따로 운영을 한다.
백엔드에서는 JSON 데이터 요청을 받고 데이터를 가공해서 JSON형태로 바꾼 다음 Client에 반환하는 서버만 개발한다.
templates
폴더에서 해당 문자열의 .html
파일을 찾아서 반환해준다.JSON
데이터를 브라우저에 반환하고 싶다면 해당 메서드에 @ResponseBody
애너테이션을 추가해줘야한다!@ResponseBody
애너테이션을 추가한다.@GetMapping("/response/json/string")
@ResponseBody
public String helloStringJson() {
return "{\"name\":\"Robbie\",\"age\":95}";
}
@ResponseBody
애너테이션을 추가하고@GetMapping("/response/json/class")
@ResponseBody
public Star helloClassJson() {
return new Star("Robbie", 95);
}
👀 이 작업은 Spring 라이브러리 Jackson의 Object mapper가 가능하게 해준다. 다음 벨로그에서 알아보쟈!!!
= @Controller + @ResponseBody