Skip to content
Discussion options

You must be logged in to vote

@Controller@RestController

두 애노테이션 모두 스프링에서 컨트롤러의 역할을 지정해주기 위한 애노테이션

  • @Controller전통적인 SpringMVC의 컨트롤러
  • @RestControllerRESTful 웹 서비스의 컨트롤러
  • 주요 차이점은 HTTP Response Body가 생성되는 방식

@controller

@Controller는 주로 View를 반환하기 위해 사용

  • 컨트롤러는 뷰의 이름(ViewName)을 반환하고, 그 이후에 DispatcherServlet은 ViewResolver를 통해 반환된 ViewName에 해당하는 View를 찾아 사용자에게 반환하는 과정
  • 하지만, 뷰의 이름이 아닌 Data를 반환해야하는 경우도 존재
    • 이때, 컨트롤러에서는 데이터를 반환하기 위해 @ResponseBody를 사용해야 함
    • 이를 통해 컨트롤러도 JSON 형태로 데이터를 반환

@RestController

@RestController@Controller@ResponseBody의 조합

  • 이 애노테이션의 주용도는 JSON 형태로 객체 데이터를 반환하는 것

차이점 정리

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

  • 다음 두…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@seyxxn
Comment options

Answer selected by 6om1n
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2 participants