API

vvo_ter·2022년 9월 7일
0

API

: Application Programming Interface

어떤 응용 프로그램이 자신이 가지고 있는 정보를 제공하기 위해 어떤 방식으로 통신할 것인지에 대한 규격을 만들게 되고, 이러한 규격을 API라고 표현합니다.

API는 정보를 가진 주체에서 만들다보니, 사용하는 개발자 입장으로는 어떻게 요청해야하는지 알 수 없습니다. 제공하는 입장에서 어떤 방식으로 요청해야하는지에 대한 문서를 만들게 되고, 이를 API 규격서라고 표현합니다.

Interface

: 인터페이스는 말 그대로 어떤 기계간의 장치끼리 정보를 교환하기 위한 수단이나, 방법

API 유형

Public API(Open API)

: 누구나 쉽게 접근하여 정보를 공유하기 위해 만들어진 규격

모두에게 공개됩니다. 누구나 제한 없이 API를 사용할 수 있는 게 특징입니다.

Private API

: 권한이 있는 일부 사용자들에게만 정보를 제공하기 위해 만들어진 규격

내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행합니다. 따라서 제 3자에게 노출되지 않습니다.

REST API VS. SOAP API

REST API

REST(Representational State Transfer)는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일입니다.

REST API는 인터넷 식별자(URI)와 HTTP 프로토콜을 기반으로 합니다. 데이터 포맷으로는 브라우저 간 호환성이 좋은 제이슨(JSON)을 사용합니다.

클라이언트와 서버 사이에서 통신할 수 있게 하고, 아키텍처를 만들 수 있게 해줍니다.

REST는 웹에 최적화되어 있고, 데이터 포맷이 JSON이기 때문에 브라우저들 간에 호환성이 좋습니다.

SOAP API

SOAP(Simple Object Access Protocol)는 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있기 때문에 조금 더 복잡합니다.

보안 수준이 엄격해서, 은행용 모바일 앱처럼 보안 수준이 높아야 하거나, 신뢰할 수 있는 메시징 앱, 또는 ACID를 준수해야 하는 경우라면 SOAP 방식이 더욱 선호됩니다.
ACID를 준수하기 때문에 데이터의 변형을 줄여주고, 데이터베이스와의 상호작용에 대해서 사전에 정확하게 정하기 때문에 데이터의 무결성을 지켜줍니다.

차이

(유형)
SOAP는 프로토콜이고, REST는 아키텍처 스타일입니다.

(기능)
API는 애플리케이션이 서버에 접속할 수 있도록 설계된 일종의 도구이며, SOAP는 서비스 인터페이스를 이용해서 서버에 접근하고, REST는 URI를 이용해서 접근합니다.

(데이터 포멧)
REST는 HTTP와 JSON을 사용하기 때문에 페이로드의 무게를 가볍게 할 수 있습니다. 하지만 SOAP에서는 XML에만 의존합니다. 페이로드는 인터넷을 통해서 전송되는 데이터입니다.

(보안)
REST는 SSL과 HTTPS 프로토콜을 이용할 수 있습니다. SOAP은 WS-Security와 SSl을 지원하는데, WS-Security는 전송 레벨에서 아주 뛰어나며 SSL보다도 조금 더 복잡하기 때문에 기업용 보안 도구에 통합하는데 보다 이상적입니다.

(ACID 준수)

(데이터 캐시)
SOAP은 캐시를 사용할 수 없지만, REST는 캐시를 사용할 수 있습니다.


출처

profile
's Coding Memory

0개의 댓글