T.I.L #33 @Controller와 @RestController

개발자지망생·2023년 11월 15일
0

@Controller와 @RestController

1. @Controller

  • @Controller 어노테이션은 주로 전통적인 웹 어플리케이션에서 사용된다.
  • 이 어노테이션을 사용하는 클래스는 주로 뷰 템플릿을 반환한다. 예를 들어, JSP나 Thymeleaf 같은 HTML 페이지를 반환하는 데 사용된다.
  • @Controller를 사용하면, 메서드가 데이터 모델을 반환하거나 뷰 이름을 반환한다. 스프링은 이 정보를 바탕으로 HTTP 응답을 생성한다.

2. @RestController

  • @RestController는 RESTful 웹 서비스를 개발할 때 사용된다.
  • 이 어노테이션을 사용하는 클래스는 HTTP 응답 본문에 직접 데이터를 반환한다. 주로 JSON이나 XML형태의 데이터를 반환하는 데 사용된다.
  • @RestController는 사실상 @Controller와 @ResponseBody를 합친 것으로 생각할 수 있다. 이는 메서드가 반환하는 데이터가 HTTP 응답 본문에 직접 기록된다는 것을 의미한다.

언제 무엇을 쓰면 될까?

  • 웹 페이지 반환
    - 만약 웹 페이지를 반환하는 전통적인 웹 어플리케이션을 개발하고 있다면 @Controller를 사용하는 것이 좋다. 이는 뷰 템플릿을 이용하여 사용자에게 HTML 페이지를 제공한다.

  • RESTfulAPI 개발
    - 반면에, 클라이언트에게 JSON이나 XML같은 데이터 포멧의 RESTfulAPI를 제공하는 경우 @RestController가 더 적합하다. 이는 데이터 중심의 서비스에 적합하며, 웹 서비스나 모바일 어플리케이션과 같은 클라이언트에 데이터를 제공하는 데 사용된다.

결론

웹 페이지를 반환하는 경우 @Controller를, API를 통해 데이터를 반환하는 경우 @RestController를 사용하는 것이 일반적이다.

0개의 댓글