-
[Spring Boot] @RestController와 @ContollerSpring/Study 2023. 5. 26. 21:20
서론
Spring Boot에서 중요한 컨트롤러를 구현할 때 사용되는
두 가지 어노테이션 @RestController와 @Controller에 대하여 간략히 정리하겠다.
@Controller
@Controller 어노테이션은 해당 클래스가 컨트롤러의 역할을 하도록 스프링에게 알려주는 역할을 한다. 이를 통해 프런트컨트롤러 (Dispatcher Servlet)가 해당 클래스를 사용하여 요청을 처리하며, 일반적으로 뷰에 대한 정보를 전달하는 용도로 사용된다. 메소드에 @ResponseBody 어노테이션이 없다면, 값을 리턴할 때 문자열로 리턴되어 View의 이름으로 매칭되어 실행된다.
@RestController
@RestController는 @Controller와 @ResponseBody 어노테이션의 조합버전이다. 자바 객체를 JSON 또는 XML 형식으로 직렬화하여 HTTP 응답 본문으로 리턴할 때 사용된다. REST 방식의 웹 서비스를 구현할 때 자주 사용되며, 주로 JSON 형식의 데이터를 반환하기 원하는 메소드에 사용된다.
@RestController와 @Controller의 차이
@RestController와 @Controller의 가장 큰 차이는 응답값에 대한 용도이다. @RestController는 주로 JSON 형태의 데이터를 반환하여 RESTful 웹 서비스를 만들 때 사용되고, @Controller는 클라이언트가 서버로 요청을 보낼 때 뷰에 대한 정보를 전달하는 쪽에 집중된다.
정리
Spring Boot의 EndPoint로 사용되는 Contoller 어노테이션이다.
@RestController는 RESTful한 API로 프론트와 통신할 때 사용되며
@Controller는 MVC 모델로 동작할 때 사용된다.