기타

REST API 사용의 장단점

ziwookim 2022. 8. 15. 23:57

장점 (Positive Effect)

1. Easy to use (쉬운 사용), 가독성 향상

REST API의 가장 큰 장점이라고 할 수 있다. 단순히 REST API 메시지를 읽는 것 만으로도 메시지가 의도하는 바를 명확하게 파악할 수 있게 된다. 굳이 해당 메시지의 기능이 무엇인지 알기 위해 메뉴얼을 하나씩 읽어 볼 필요가 없게 된다.

또한 HTTP 인프라를 그대로 사용하기 때문에, REST API 사용을 위한 별도의 인프라 구축 과정이 필요 없다. 또한, Stateless한 특성 상 수행 문맥(Execution Context)가 독립적으로 진행됨에 따라 이전에 Server(host)에서 진행된 내용들과 이전까지의 히스토리에 대해서도 Client가 알 필요가 없다. 즉, 해당 URI와 원하는 메소드 자체만 독립적으로 이해하면 된다.

 

2. Complete Seperation between Client and Server

Client는 REST API를 이용하여 서버와 정보를 주고 받는다.  위에서 언급한 Stateless 한 특징에 따라, Server는 Client의 문맥(Context)을 유지할 필요가 없게 된다. -> 각자의 역할이 명확하게 분리되어 있다.

이러한 특성은 단순히 업무량 감소를 넘어, 플랫폼의 독립성 확장이라는 효과를 가져오기도 하는데, HTTP 프로토콜 서비스라는 기본적인 요구만 충족되면 다양한 플랫폼에서 원하는 서비스를 쉽고 빠르게 개발하고 배포할 수 있게 된다. 예로, 리눅스 웹 서버에서 윈도우 플랫폼 기반의 웹 브라우저를 순식간에 동작시킬 수 있게 된다.

 

3. Detail expression for specific data type

REST API는 헤더(header) 부분에 URI 처리 메소드를 명시함으로써, 필요한 실제 데이터를 페이로드(바디)에 표현할 수 있도록 구성할 수 있는 기능을 제공한다. 이는, 특정 메소드의 세부적인 표현 문구를 JSON, XML 등 다양한 언어를 이용하여 작성할 수 있다는 장점 뿐만 아니라, 간결한 헤더 표현을 통한 가독성 향상 역시 가져다 준다.

 

단점 (Negative Effect)

1. Restriction of HTTP Method

REST API는 HTTP 메소드를 사용하여 URI를 표현한다. 이러한 표현 방법은 다양한 인프라에서도 편리하게 사용할 수 있다는 장점을 주지만, 한편으로는 메소드 형태가 제한적 이라는 문제점을 야기하기도 한다.

내부 Context를 이용할 수는 있으나, 이 방법이 모든 부분에서 해결책을 제공하지는 못한다. 예를 들어, 메일을 보내는 기능을 작성한다고 할 때, 단순히 보내는 기능 외에도 누구한테, 얼마나 많이, 시간을 예약해서 등 다양한 세부 기능들 또한 작성이 필요한 경우, 이러한 여러 기능들을 구현하는데 제약이 발생할 수 있다.

 

2. Absence of Standard (표준의 부재)

REST API의 가장 큰 단점은 표준이 존재하지 않는다는 것이다. 이것은 '관리의 어려움' 혹은 '좋은(공식화 된) API 디자인 가이드가 존재하지 않음'을 뜻하고, 결국 REST API는 많은 사람들이 하나씩 쌓아올리는 ‘정당화 된 약속들’ 로 구성되고 움직이게 된다.

출처: https://wallees.wordpress.com/2018/04/19/rest-api-%EC%9E%A5%EB%8B%A8%EC%A0%90/