점원 = API
사용자마다 다양한 방식으로 요청을 할 때, API 가 중간에 끼어들어 대화 규칙을 정해주는 메뉴얼 역할을 하게 됨
다른 기업/개발자/기관이 만든 외부 프로그램들의 기능을
내가 만든 어플리케이션에 사용할 수 있도록 도와주는 중간 매개체(=API)
(중간 매개체 예시 : 지도 API, 결재 API, 서버 API ...)
어떤 응용 프로그램에서 데이터를 주고 받기 위한 방법
어떤 특정 사이트에서 특정 데이터를 공유할 경우, 어떠한 방식으로 정보를 요청해야 하는지, 어떠한 데이터를 제공 받을 수 있을지에 대한 규격들
응용 프로그램에서 사용할 수 있도록
운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
결국 API 또한 인터페이스
접근 방식에 따라 3가지로 구분한다.
내부 API
기업이나 연구 단체 등에서 자체 제품과 운영 개선을 위해 단체 내부에서만 사용
제3자에게 노출되지 않는다.
개방형 API
모두에게 공개된다.
OpenAPI (Open Application Programming Interface)
특정 비즈니스 파트너 간의 데이터 공유
동의하는 특정인들만 사용 가능
기상청 오픈 API (기상청에서 수집하고 있는 정보들) 를 사용자에게 쉽게 제공하기 위한 목적으로 기상청 오픈 API 제공 사이트를 만들었다.
이렇게 대형 플랫폼들이 오픈 API 를 제공하는 이유는?
대형 플랫폼(페이스북, 네이버, 카카오톡 ...)에서는 대부분 간편 로그인 API 정보를 제공한다.
우리는 이런 대형 플랫폼의 가입 정보가 또 다른 사이트들에도 공유가 되어, 간편 회원가입이 가능해진다.
만약, 대형 플랫폼(페이스북, 네이버, 카카오톡 ...)에서 탈퇴를 하고자 할 경우
해당 대형 플랫폼에 가입한 정보를 바탕으로 가입한 다른 모든 사이트들 또한 포기해야하는 상황이 발생하게 된다.
즉, 간편 로그인 기능을 제공함으로써 플랫폼 이탈율을 현저히 줄일 수 있기 때문에 대형 플랫폼들은 간편 로그인 기능을 제공하고 있다는 것이다.
데이터 접속의 표준화와 편의성
1) API 는 모든 접속을 표준화하므로, 디바이스/운영체제 등... 과 상관없이 조건만 맞다면 누구나 동일한 액세스가 가능하다.
2) 조직(기업)에서 어플리케이션 개발 시에 기능적 API 를 사용할 경우,
필요한 기본 기능들(인증, 통신, 지불 처리 등...)을 매번 개발/업데이트 할 필요없이 이용 가능하다.
자동화와 확장성
1) API 를 통한 CRUD 처리에 따라, 관련 데이터와 콘텐츠가 자동 생성
2) 사용자의 환경에 맞춰서 정보가 전달되어 개발 워크 플로우가 간소화되고, 애플리케이션 확장이 다소 용이
적용력
1) 변화 예측에도 API 가 도움이 되기 때문에, API를 통해 데이터를 수집하고 전달하는 데 있어 유연한 서비스 환경을 구축
2) 소프트웨어를 통합하고자 할 때, 그리고 개발자들 간의 협업이 필요할 때 더욱 용이하다.
보안성과 HTTP 방식의 제한
평범한 HTTP 메서드를 사용하여 액세스 할 수 있다는 점은 API 게이트 웨이(API의 단일 진입점)가 해커의 타겟 대상이 될 수 있다는 것을 뜻한다.
→ 보안성 ↓
표준의 부재와 개발 비용
1) REST API의 설계에는 공식화된 표준이 없다.
2) 기존 API의 기능을 확장하려고 할 때, 광범위한 프로그래밍 지식이 필요
참고: [IT용어] API란 무엇인가?
참고: API란? API의 정의와 종류 그리고 장단점
참고: 문과생도 쉽게 이해하는 API와 REST API