<Spring 구현방안 검토>

Rest API는 http 프로토콜 위에서 Client가 Server를 호출해서 데이터를 받는 방식을 사용하기 쉽게 정리한 표준화된 방식으로 정리할 수 있을거 같습니다. (html문서가 아닌 다른 데이터도 조회,수정,삭제가 가능하도록 표준화한 방식)

이런방식으로 구현가능한게 @Controller + @ResponseBody로 하면 REST형태로 개발이 가능할 수 있는데, 이걸 하나로 합친것이 @RestController이다. (즉, @Controller + @ResponseBoy = @RestController)

  • 둘간의 차이(REST vs Controller)를 정리하면..... 위의 @Controller+@ResponseBody형태의 컨트롤러를 제외하고, 기존 Spring MVC구조의 @Controller에 국한해서 생각한다면, 컨트롤러의 리턴값이 ViewResolver에 의해서 해석되어서 특정뷰가 html응답으로 전송된다.

반면 @RestController에 의한 호출은 뷰를 리턴하는 것이 목적이 아닌, 데이터를 전송하는 목적으로 응답이 전송되어 진다.

화면을 전환하는 용도라면 Spring MVC구조를 사용하고, 데이터 전송용이라면 Rest로 구현해서 섞어서 쓰면 될것으로 보입니다. 단, 모니터링화면이나 채팅 같이 데이터전송이 자주 많이 되는 구조의 Web어플리케이션은, 데이터를 좀더 효율적으로 전송하려면, Rest API가 아닌 WebSocket을 이용하여 해당 부분의 데이터 송수신을 구현하는 것이 맞을 것 같습니다.

 

 

웹 애플리케이션과 REST API의 근본적인 차이점은 웹 애플리케이션의 응답은 일반적으로 사람이 보기위한 용도이기 때문에 (HTML + CSS + JavaScript) 를 응답으로 전송합니다. 
반면, REST API는 REST 대부분의 클라이언트가 프로그램이기 때문에 JSON 또는 XML 형식으로 데이터를 반환합니다.

The fundamental difference between a web application and a REST API is that the response from a web application 

is generally view (HTML + CSS + JavaScript)  because they are intended for human viewers while REST API just 

return data in form of JSON or XML because most of the REST clients are programs

'IT이야기' 카테고리의 다른 글

무료 비밀번호 관리앱 소개  (0) 2021.10.24
Eclipse Intellij 단축키  (0) 2016.08.26
/lib/ld-linux.so.2: bad ELF interpreter 에러 발생시  (0) 2016.08.24
VI 에디터 명령어  (0) 2016.08.17
AWS에서 Docker 설치  (0) 2016.07.14

+ Recent posts