이번 글은 새로운 실습을 하기위하여 보기 시작한 책을 공부하다가 정리를 해놓아야겠다 생각이 들어 작성을 하게 되었다.
이전 스프링 입문강의에서는 웹mvc를 구현하기위하여서 controller를 만들때 @Controller라는 어노테이션을 붙이고 시작하였는데 이곳에서는 @RestController라는 어노테이션을 붙이고 시작하였고 심지어 그에 따라 나오는 결과도 달랐다. 그리하여 이 두 가지의 차이에 대해서 알아보고자 한다.
기본적으로 우리는 MVC패턴이라는 말을 이전에도 사용한 것처럼 Model, View, Controller라는 것의 줄임말이라는 것을 본 적이 있었다.
이전에 했었던 Controller를 만드는 실습에서는 model이라는 객체 안에 값을 넣어 View(화면)을 담당하는 html로 넘겨 나중에는 화면에 html에 작성된 화면이 출력되는 것을 볼 수 있었다.
여기서 중요한 것은 Controller는 View를 출력한다는 것이다!
이 친구를 얘기하게 된것은 RestController와 연결되어있는 어노테이션이기때문에 일단은 알아보자.
View를 리턴하지 않고 컨트롤러에서 직접 데이터를 리턴할 수 있도록 하여준다.
이 친구 이전에 실습할때 API 형식으로 반환시켜줄때 사용하였던 친구이다. 이전 컨트롤러의 과정에서 View가 빠지게되었다.
반면 RestController는 View를 출력하지 않고 바로 그냥 이전 API실습에서 본 것과 같이 객체를 반환하게 되면 Json형식으로 화면에 출력을 시키고 문자열을 출력시키면 바로 문자열을 출력을 시키게된다.
그림에서와 같이 @Controller + @ResponseBody의 역할을 @RestController가 한다는 것을 알 수 있었다.
김영한 - 스프링 입문 강의
https://doublesprogramming.tistory.com/105