API(Application Programming Interface)의 사전적 정의는 “응용 프로그램에서 사용할 수 있도록, 운영 체제 혹은 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스”를 말한다. 쉽게 말하자면 “응용 프로그램(Application)들이 서로 소통하기 위한 접점”으로 요약할 수 있다.
인터페이스(Interface)란 서로 다른 두 개의 물체가 상호간에 정보나 신호를 주고받기 위해서 필요한 접점이나 경계면을 말한다. 쉽게 말해, 상호간에 소통을 위해 만들어진 접점이다.
인터페이스는 상호간에 소통을 위해 만들어진 접점이라는 점에서 실생활에서도 흔히 찾아볼 수 있다. 예를 들어, 식당에서 음식을 주문하는 과정에서도 인터페이스를 찾아볼 수 있다.
사용자 인터페이스(User Interface, UI)는 인간과 컴퓨터 사이에서 의사소통을 목적으로 만들어진 물리적, 가상적 접점(매개체)이다. 사용자 인터페이스는 인간과 컴퓨터 사이에서 상호간에 소통할 수 있도록 입력, 출력 역할을 수행한다.
컴퓨터에 원하는 작업을 입력하기 위해서 키보드라는 인터페이스를 통해 명령한다. 처리한 결과를 다시 사용자에게 보여주는 역할은 모니터가 수행한다.
GUI는 사용자가 그래픽 아이콘을 통해서 컴퓨터와 정보 교환을 가능하게 해주는 인터페이스다. 마우스 포인터, 프로그램 아이콘, 드래그앤 드랍 등이 있다.
웹 브라우저 상에서의 인터페이스로 화면의 디자인, 그 안을 이루는 배너, 아이콘, 검색 버튼, 결제 버튼 등 시각적인 요소를 말한다.
앞에서 Interface는 소통하기 위한 접점, UI는 사용자가 소통하기 위한 접점이었다. 그리고 API는 Application Programming Interface의 약자로, 응용 프로그램(Application)들이 서로 소통하기 위한 접점이다.
여기서, 응용 프로그램(Application)이란 운영체제(MacOS, Linux, Window 등)에서 실행되는 모든 소프트웨어를 말한다. 크롬(Chrome) 브라우저, Slack, KakaoTalk, 메모장, Keynote, Excel 등이 있다.
그렇다면, API는 응용 프로그램과 응용 프로그램(Application) 사이에서 소통을 위한 인터페이스(Interface) 즉 접점 혹은 경계면이라 할 수 있다. 여기서 접점 혹은 경계면은 다른 응용 프로그램이 될 수도 있고, 애플리케이션 내에 어떤 함수가 될 수도 있다.
API는 애플리케이션 사이에서 소통 역할을 하는 접점이었다. 그렇다면 웹/앱 서비스에 있어서 API란 무엇을 말할까.
인스타그램 서비스를 만들고 운영한다고 가정했을 때, 사용자가 서비스를 원활하게 이용하기 위해서 필요한 운영체제 혹은 서버에서 실행되고 있어야하는 애플리케이션은 크게 3가지를 들 수 있다.
여기서 브라우저는 여러가지 이유로 데이터베이스에서 서비스에 필요한 정보들을 직접 요청해서 받아올 수 없다. 그렇기 때문에 중간에서 소통해줄 수 있는 인터페이스가 필요한 것이다. 바로 이러한 소통의 역할을 해주는 응용 프로그램(애플리케이션)이 API다.