개념
자원 식별과 조작의 방법론 중 하나이다. REST 방식은 자원을 이름으로 구분한다. HTTP URI에 자원을 명시하고, HTTP Method로 CRUD를 적용하는 방법이다.
즉, URI로 전달한 자원을 HTTP Method로 처리하도록 설계된 아키텍쳐이다.
구성
자원: URI
REST는 ROA(Resources Oriented Architecture)로 자원을 중시한다. HTTP에서 자원은 웹에서 다루는 데이터나 객체를 의미하며, 각 자원은 URL로 식별된다.
행위: HTTP Method
Http 프로토콜의 Method가 행위이다. Http 프로토콜에는 GET, POST, PUT, DELETE가 존재한다. 각각 R, C, U, D로 매칭된다(CRUD).
표현: Representations
사용자가 자원 상태에 대한 조작을 요청하면 서버는 적절한 응답(Representation)을 보낸다. 사용자는 xml, json, text 등의 조작을 요청할 수 있는데, 보통 json이 통용된다.
@RestController
@Controller와 같이 웹 서비스 컨트롤러를 정의할 때 사용되는 어노테이션이다. 단, @RestController는 REST 방식의 컨트롤러임을 정의하는 어노테이션이다.
@RestController = @Controller + @ResponseBody
@ResponseBody
메서드 차원의 어노테이션이다. 메서드의 return이 jsp로 이어지는 것이 아니라, 순수한 데이터를 반환하도록 한다. 메서드의 return 값을 json, xml 등 클라이언트가 요청한 형식에 따라 응답 본문에 포함시킨다.