본문 바로가기
Backend

API(Application Programming Interface)

by hyeok1235 2022. 11. 12.

▶ 정의

API(Application Programming Interface)는 두 응용 프로그램이 서로 통신할 수 있도록 하는 정의와 규칙들의 집합입니다. 즉, 다른 프로그램과 통신하면서 서로의 정보를 활용하기 위해서는 API를 지켜야 하는 것입니다.
이러한 API를 기반으로 구현된 라이브러리를 통해서 ① 프로그램은 호환성이 높아지고, ② 다른 서비스를 활용할 수 있어서 개발이 편리해지는 것입니다. 고레벨 프로그래밍 언어만으로 낮은 레벨의 메모리나 하드웨어 조작을 할 수 있는 것, 이미 완성된 프로그램의 기능을 추가하는 것, 모두 API로부터 가능하다는 것입니다!

 

▶ 간략한 역사

초기의 API는 컴퓨터 내부, 로컬 환경 안에서만 사용되었습니다. 운영체제가 라이브러리처럼 활용하는게 대부분의 경우였는데, 로컬 환경을 벗어나 웹으로 확장되면서 원격으로 데이터를 전송하는 기술로 발전하였습니다.

▶ API의 장점

사용하는 입장에서는 앞서 언급한 바와 같이 개발 과정이 압도적으로 편해지게 됩니다. 만약 모든 라이브러리들의 기능을 사용하기 위하여 직접 코드를 작성해야 된다고 한다면, 많은 노력과 시간이 필요할 것입니다. 하지만 API를 통해서 우리는 다양한 기능이 어떠한 방식으로 작동하는지 모른 채로 쉽게 사용할 수 있습니다. 여러 기업들이 제공하는 오픈 API를 통해서, 원하는 기능과 정보를 받아와 자신의 프로그램에 활용할 수도 있습니다. (ex 구글, 카카오, 기상청)
API를 제공하는 입장에서는 오픈 API를 통해 사용자를 늘릴 수 있습니다. 이는 사업을 확장하고 수익을 창출하는 효과를 가짐과 더불어, 기술과 정보를 공유하는 공익적인 효과도 가집니다. 공유하는 과정도 지정한 규격으로만 진행되기 때문에 보안적인 측면에서도 긍정적인 결과를 가지게 됩니다.

▶ API 유형

API는 총 네 가지 유형으로 구분됩니다.
1) SOAP API : “Simple Object Access Protocol”의 약어로, XML을 사용하여 메시지를 HTTP, HTTPS, SMTP에서 교환하는 API입니다. 과거에 많이 사용되었으며, 현재는 유연성이 조금 떨어진다고 평가하고 있습니다.

2) RPC API : “Remote Procedure Call”의 약어로, 클라이언트가 프로시저를 서버에서 실행하면 서버에서 그 결과를 클라이언트로 보내는 형태의 API입니다.

3) Websocket API : 최신 웹 API 중 하나로, JSON 객체를 통해 메시지를 전달합니다. 쌍방향 통신을 지원하고, 서버는 클라이언트에 콜백 메시지를 전달할 수 있어서 REST API보다 더 효율적입니다.

4) REST API : “Representational State Transfer”의 약어로, 현재 가장 인기가 많고 유연한 API 중 하나입니다.
명확한 기준이 있는 SOAP와 달리, REST는 추상적인 원칙을 가지고 있어 “개발 스타일”에 가깝다고 볼 수 있습니다. REST를 처음 소개한 로이 필딩(Roy Fielding)에 따르면, 아래의 6가지 제약 조건을 준수하는 웹 API를 RESTful API라고 지칭합니다.
① 클라이언트-서버 구조
② 서버에 정보 저장 X (클라이언트 정보는 클라이언트에만 저장한다)
③ 캐시 사용 (캐시를 통해 클라이언트-서버 간의 부하를 줄일 수 있다)
④ 계층 구조
⑤ 코드 확장성 (서버에 실행 가능한 코드를 추가하여 클라이언트의 기능을 확장한다)
⑥ 균일한 인터페이스

▶ API 키

API 키는 API를 호출한 프로그램을 식별합니다. 프로그램이 API를 사용하는데 적절한 액세스 권한이 있는지 확인하는 것입니다. 인증 토큰만큼 보안성이 높지는 않지만, API 모니터링을 가능하게 합니다.

728x90
반응형