API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받으면 요리사(응용프로그램)와 상호 작용하여 요청된 메뉴(명령에 대한 값)를 전달합니다. 쉽게말해 API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체.
API의 역할
1. API는 서버와 데이터베이스에 대한 출입구 역할을 한다.
데이터베이스에 저장된 정보들이 모든 사람들에게 접근되지 않기 위해 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해준다.
2. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
여기서 애플리케이션은 우리가 흔히 아는 스마트폰 어플, 프로그램을 말한다. API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 한다.
3. API는 모든 접속을 표준화한다.
API는 모든 접속을 표준화하기 때문에 기계/운영체제 등과 상관없이 누구나 동일한 엑세스를 얻을 수 있다. 쉽게 말해, API는 범용 플러그처럼 작동한다.
API의 유형
1) private API
: private API 는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행한다. 따라서 제 3자에게 노출되지 않음.
2) public API
: public API는 개방형 API로, 모두에게 공개된다. 누구나 제한없이 API를 사용 할 수 있다.
3) partner API
: partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있다. 비즈니스 관계에서 사용되는 편이고 종종 파트너 회사간에 소프트웨어를 통합하기 위해 사용된다.
API를 사용하면 좋은점
private API를 사용하면 개발자들이 애플리케이션 코드를 작성하는 방법을 표준화함으로써, 간소화되고 빠른 프로세스 처리를 가능하게 한다. 또한, 소프트웨어를 통합하고자 할 때 개발자들 간의 협업을 용이하게 할 수 있다.
public API와 partner API를 사용하면, 기업은 타사 데이터를 활용해 브랜드 인지도를 높일 수 있다. 뿐만 아니라 고객 데이터베이스를 확장하여 전환율까지 높일 수 있다.
REST API는?
REST(Representational State Transfer)는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍쳐 스타일이다. REST API는 인터넷 식별자(URI)와 HTTP프로토콜을 기반으로 한다. REST는 HTTP프로토콜 덕분에 '단순함'이 핵심이고 데이터 포맷으로는 브라우저 간 호환성이 좋은 제이슨(JSON)을 사용한다.
REST API는 구축, 확장이 간단하지만 크고 복잡하게 만들 수도 있다. 이는 API를 어떻게 만들고, 무엇을 추가하고, 어떤 목적으로 설계되었는지에 따라 달려있다. REST API는 클라이언트와 서버 사이에서 통신할 수 있게 하고, 아키텍처를 만들 수 있게 한다. REST방식의 API라면, 클라이언트-서버 모델로 구축되었다는 것을 의미하며, 정보의 페이로드(실제 전달하는 내용)가 두 지점 사이를 왕복하게 된다.
REST API는 단일한 인터페이스를 사용한다. 이 때문에 해당 API를 사용하는 애플리케이션들이 동일한 경로를 통해 접속해야하고, 그 방식이 단순하게 된다.
REST는 웹에 최적화 되어있고, 데이터 포맷이 JSON이기 때문에 브라우저들 간에 호환성이 좋다. 또한, 그 성능과 확장성이 뛰어난 것으로도 알려져있다. 하지만 다른 기술들과 마찬가지로 그 자체의 기능이 정지되거나 여러분의 앱을 먹통으로 만들 수 있다. 그래서 REST로 풀지 못하는 문제를 해결하기 위해 그래프 QL같은 언어가 생겨났다.
SOAP API
SOAP(Simple Object Access Protocol)는 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있어 조금 더 복잡하다. 이 표준들로 인해 오버헤드가 많기는 하나, 보안 트랜잭션, ACID(원자성, 일관성, 고립성, 지속성)을 준수해야 하는 보다 종합적인 기능이 필요한 조직에게는 적합한 방식이 될 수 있다.
SOAP API는 보안 수준이 엄격하다. SOAP는 SSL도 지원하고 WS-Security라는 자체 표준의 보안 기능도 가지고 있다. 따라서 은행용 모바일 앱처럼 보안 수준이 높아야 하거나, 신뢰할 수 있는 메시징 앱, 또는 ACID를 준수해야 하는 경우라면 SOAP방식이 더욱 선호됨.
SOAP 표준에서는 성공/반복 실행 로직이 규정되어 있기 때문에, SOAP API를 통해 통신을 할 때 처음부터 끝까지 신뢰성을 제공한다.
SOAP 표준에는 ACID 준수에 관한 사항이 있다. ACID를 준수하기 때문에 데이터의 변형을 줄여주고, 데이터베이스와의 상호작용에 대해 사전에 정확하게 정하기 때문에 데이터의 무결성을 지켜줌. ACID는 데이터 일관성을 위한 다른 방식들보다도 더 보수적이라 금융정보등의 민감한 데이터를 주고받을 때 일반적으로 많이 사용된다.
SOAP REST 차이, 어떤게 더 좋을까?
웹서비스에서는 SOAP가 확실하게 좋은 방법이 아니라면 개발자들이 REST 방식의 API를 택하는 경우가 많으며, 기업용 애플리케이션인 경우에는 보다 많은 리소스와 아주 엄격한 보안 그리고 여러 다양한 요구 사항들을 만족해야 하기 때문에 SOAP 방식을 택하는 경우가 많다.
References
'Sparta x 이노베이션 캠프 > React' 카테고리의 다른 글
TIL: 리액트 컴포넌트 캡슐화 (0) | 2022.09.17 |
---|---|
WIL: Axios (0) | 2022.09.04 |
TIL)React 키워드 (0) | 2022.09.01 |
TIL) async & await (0) | 2022.08.26 |
TIL) Promise (0) | 2022.08.26 |