• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

21.05.11 21:22 작성 조회수 389

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

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

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

감사합니다. 

김진성님의 프로필

김진성

2021.05.12

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