@Controller와 @RestController의 차이

박재민·2021년 7월 1일
0

[개요]

  • MVC 패턴에서 @RestController은 @Controller와 @ResponseBody의 조합

  • Spring 프레임 워크에서 RESTful 서비스를 보다 쉽개 개발 할 수 있도록 Spring 4.0에서 추가

  • @Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 찾는 것이지만, @RestController는 단순히 객체만을 반환하고 객체 데이터를 JSON 또는 XML형식으로 HTTP 응답에 담아서 전송

  • @Controller + @ResponseBody를 사용하여 만들 수 있지만 이러한 방식은 RESTful 웹 서비스의 기본 동작이기 때문에 Spring은 @Controller와 @ResponseBody의 동작을 조합한 @RestController를 도입

[Spring에서 @Controller와 @RestController의 역할은 무엇인가?]

  • @Controller는 view에 표시될 데이터가 있는 Model 객체를 만들고 view를 선택함

  • @ResponseBody를 사용하여 HTTP ResponseBody에 데이터를 담아 요청을 완료할 수 있음

  • HTTP ResponseBody에 데이터를 담는 것은 RESTful 웹 서비스에 대한 응답에 유용
    -> 왜냐하면 view를 반환하는 대신 데이터를 반환하기 때문

[Spring에서 @RestController와 @Controller의 차이점]

  • @Controller는 클래스를 MVC 컨트롤러로 표시하는데 사용하며, @RestController는 RESTful 서비스에서 사용 되는 @Controller + @ResponseBody와 동일

[결론]

  • RESTful 서비스를 만드는 경우 @Controller + @ResponseBody대신 @RestController를 사용하는 것이 좋다.
profile
동료를 소중히 생각하는 개발자입니다.

0개의 댓글