Controller VS RestController

parkrootseok·2025년 4월 20일

스프링

목록 보기
11/12
post-thumbnail

@Controller란?

@Controller는 전통적인 MVC 패턴에서 View를 반환할 때 사용하는 어노테이션 입니다. 반환 값이 View 이름으로 해석되어 JSP, Thymeleaf 등 템플릿 엔진을 통해 HTML 응답을 생섭합니다. 만약, Json과 같은 형식으로 반환하기 위해선 @ResponseBody를 추가해야 합니다.

@RestController란?

@RestController@ResponseBody@Controller의 조합 어노테이션입니다. View를 반환하지 않고 Json 형식을 반환하며 주로 REST API 구현에 사용됩니다.

@ResponseBody의 역할은?

@ResponseBody는 HttpMessageConverter를 통해 객체를 Json으로 변환하는 역할을 수행합니다. SpirngBoot의 경우 기본으로 MappingJackson2HttpMessageConverter를 등록하여 JSON을 변환하고 있습니다.

예상 질문

@Controller와 @RestController의 차이는?

  • 두 차이는 반환하는 데이터의 형태
    • Controller는 ModelAndView 객체
      • 이를 통해, JSP, Thymeleaf 등을 통해 HTML 렌더링 수행
    • RestController는 Json과 같은 형식의 순수 데이터
      • @ResponseBody를 통해 객체를 Json 형태의 데이터로 직렬화를 수행
profile
동료들의 시간과 노력을 더욱 빛내줄 수 있는 개발자가 되고자 노력합니다.

0개의 댓글