인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

DispatcherServlet과 프로젝트 동작의 이해

강사님 @RestController에 대해서 질문이 있습니다.

작성

·

464

0

  • @RestController = @Controller + @ResponseBody
  • Spring Boot Rest API Service는 사용자에게 보여지는 Service가 아니라(즉 View를 갖고 있는 서비스가 아니라) XML, JSON 형태로 값을 전달
  • 사용자에게 전달하는 View 형태를 가지지 않는 Controller를 @RestController를 사용합니다.

이렇게 제가 정리를 했는데요 @RestController를 사용하는 것이 기존의 @Controller를 달고 반환하는 것이 JSON과 같은 데이터 타입일 때 @ResponseBody를 붙여주는 것이 번거로움 작업이라 그것을 대신한다! 이런식으로 알고 있었습니다.

그럼 여기서 의문점이 든게 @RestController를 통해 만든 컨트롤러는 데이터만을 만들고 view만을 반환하는 controller를 따로 만드는 것일까요?

답변 1

2

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

말씀하신 것처럼, RestController와 Controller는 사용 용도를 달리 합니다. RESTful API에 의해 값을 반환하려는 작업에서는 RestController를 사용하시고, Spring MVC에서 View를 같이 생성하여 반환하려고 할때 Controller를 사용하시면 될 것 같습니다. 추가로, Frontend에 역할을 하는 View를 굳이 Spring MVC에서 처리하지 않고, 별도의 Frontend framework를 사용하기도 합니다. React.js, Vue.js와 같은 언어로 Frontend를 개발하고 서버에서 처리해야 할 비즈니스 로직이나 영속성 데이터를 처리하고자 할 때 RestController로 구현하면 보다 효율적일 수 있습니다. 유지 보수 및 배포에서도 Frontend와 Backend를 분리하여 개발하는 것이 유리합니다. 

감사합니다. 

아!! 이해가 됬어요! 정말 감사합니다!!

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기