새소식

CS

REST란?

  • -

 

REST(Representational State Transfer)자원의 표현을 이용하여 상태를 주고받는 것으로, 자원은 소프트웨어가 관리하는 모든 것, 자원의 표현은 자원을 나타내기 위한 이름을 의미한다. 예를 들어 서버가 관리하는 회원 데이터는 Member라 표현할 수 있고, 최근에는 일반적으로 자원의 상태를 나타내기 위해 JSON을 사용한다.

 

즉, REST는 네트워크 상에서 클라이언트와 서버가 통신하는 방법 중 하나이며 HTTP를 사용한다. 이때 HTTP URI를 사용하여 자원을 명시하고 HTTP METHOD를 통해 CRUD 연산을 적용한다.

 

URI는 Uniform Resource Identifier, 즉 리소스 그 자체를 말하는 것이고, URI는 URL(Uniform Resource Locator)과 URN(Uniform Resource Name)으로 분류할 수 있다. 이때 URL은 리소스가 있는 위치, URN은 리소스에 이름을 부여한 것을 말한다. 그래서 위치를 나타내는 URL은 변할 수 있지만, URN은 변할 수 없다. 하지만 URN 이름 만으로 실제 리소스를 찾을 수 있는 방법이 보편화되어 있지 않기 때문에 위치 기반인 URL을 통해 리소스를 찾는 방법을 사용한다.

REST의 장단점

 

REST는 클라이언트와 서버의 역할을 명확하게 분리해주고 HTTP 프로토콜을 사용할 수 있는 모든 플랫폼에 적용이 가능하다. 또한 CURL 혹은 Postman 등으로 쉽게 테스트도 가능하다. 하지만 요청 + 응답 스타일의 통신만 지원하고 HTTP 메서드로 행위를 표현하기 어려운 경우도 존재하며 한 번의 요청으로 여러 자원을 가져오기 어렵다는 단점이 존재한다.

 

위에서 말했듯이 REST 방식은 자원을 전달하기 위해 JSON 포맷을 사용하는데, 이때 소비자가 자신이 원하는 데이터만 골라서 사용하면 되므로 메시지 구조가 자주 바뀔지라도 하위 호환성을 보장하는 것이 유리하다. 하지만 메시지가 다소 길고, 긴 메시지의 경우 전송 속도가 느릴 수 있으며 이를 해석하는데 오버헤드가 발생할 수 있다는 것이 단점이다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.