모바일 기기는 네트워크 전송량이 유선기기보다 떨어지므로 PC에서 동작하는 것과 달리 화면을 그대로 유지하면서 필요한 데이터만 전송받아 빠르게 결과를 표시한다.
스프링에서도 모바일 기기와 연동하는 경우가 많아지면서 데이터만 전송하는 기능을 지원하게 되었고, 자연히 표준화의 필요성이 생겼다.
그 결과 REST라는 방식이 등장했다.
REST란 Representational State Transfer의 약자로 하나의 URI가 고유한 리소스를 처리하는 공통 방식이다.
REST방식으로 제공되는 API를 REST API (또는 RESTful API) 라고 하며 이는 트위터 같은 Open API에서 많이 사용하고 있다.
스프링 3버전에서는 @ResponseBody 애너테이션을 지원하면서 REST 방식의 데이터 처리를 지원 했습니다.
하지만 스프링 4버전에서는 @RestController 애너테이션을 이용해 REST 방식의 데이터 처리를 지원합니다.
전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용
@RestController는 Spring MVC Controller에 @ResponseBody가 추가된 것입니다. (Controller+ResponseBody)
그래서 RestController의 주용도는 Json 형태로 객체 데이터를 반환하는 용도로 사용한다.
@RestController가 아닌 @Controller로 선언했을때는 메소드 들은 기본적으로 jsp를 표시한다.
여기에 필요한 메소드에 @ResponsBody를 추가해주면 jsp가 아닌 데이터만을 요청한 곳으로 보내줬었다.
@RestController는 별도의 View를 제공하지 않은 채 데이터를 전달하므로 전달 과정에서 예외가 발생할 수 있다.
예외에 대해 좀더 세밀한 제어가 필요할 경우 ResponseEntity 클래스를 사용하면된다.
서버에 데이터를 조회하는 것 뿐만 아니라 추가, 수정, 삭제 기능도 REST방식으로 요청해야 한다.
이떄 서버에 어떤 행위를 요청할 것인가는 HTTP 메서드를 이용해 처리해야 한다.
'개념정리' 카테고리의 다른 글
카멜케이스, 파스칼케이스, 스네이크케이스 (0) | 2021.04.07 |
---|---|
Get ,Post (0) | 2021.04.07 |
[java] 접근 제한자 (0) | 2021.04.04 |
관점 지향 프로그래민(Aspect Oriented Programming , AOP) (0) | 2021.04.04 |
트랜젝션 (0) | 2021.04.02 |