내일배움캠프

@RestController와 @Controller 차이

지니♥︎ 2024. 5. 22. 10:01

🚩 20240521 TIL 내일배움캠프 #36일차

 

🟢 요약

 

@RestController
    
     = @Controller + @ResponseBody
    
@RestController를 사용하면 해당 클래스의 모든 메서드에 @ResponseBody 애너테이션이 추가되는 효과를 부여

 


🟡 @Controller

 

  • 주로 뷰를 반환하기 위해 사용
  • JSP, Thymeleaf, Freemarker와 같은 템플릿 엔진을 사용해 HTML을 생성하는 경우에 사용
  • 메서드에서 반환된 문자열은 뷰의 이름으로 해석되며, 해당 뷰를 렌더링하여 클라이언트에게 반환

 

 


🟡 @RestController

 

 

  • RESTful 웹 서비스를 구축하기 위해 사용
  • 주로 JSON 또는 XML 형식의 데이터를 반환
  • @RestController는 @Controller와 @ResponseBody를 결합한 형태
  • 메서드에서 반환된 객체는 JSON 또는 XML 형식으로 직렬화되어 HTTP 응답 본문에 직접 사용

 

 


🟢 정리

 

 

두 애너테이션은 사용 목적에 따라 선택적으로 사용
@RestController는 데이터 중심의 API를,

@Controller는 뷰 중심의 웹 애플리케이션을 구축할 때 적합