
API는 Application Programming Interface의 약자로, 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스이다.
인터페이스는 상호간에 소통을 위해 만들어진 접점이다. 다시말해, 인터페이스는 상호간의 소통의 매개체이다.
예를 들어, 사람이 자동차 문을 열기 위해서는 스마트키가 필요하다. 이때, 스마트키는 사람과 자동차 간에 소통의 접점인 인터페이스라고 할 수 있다.
키보드는 사람과 컴퓨터 상호간의 소통을 위해 만들어진 인터페이스이다.
배달앱의 화면을 통해서 사용자는 주문을 할 수 있다. 이처럼 메뉴 목록, 주문하기 버튼을 비롯해서 앱에 있는 모든 화면을 인터페이스라고 할 수 있다. 왜냐하면 배달앱의 시스템은 이러한 화면을 통해서 사용자와 소통하고 있기 때문이다. 이때, 사용자가 사용하는 인터페이스를 User Interface 즉, UI라고 한다.
앞서 말했던 스마트키와 키보드 등은 물리적인 하드웨어 UI이다. 앱이나 웹 등은 소프트웨어적인 UI라고 볼 수 있다. 일반적으로 IT 업계에서 UI라고 한다면 소프트웨어적인 UI를 말한다. 이러한 UI가 웹을 통해 보여지면 웹 UI, 모바일을 통해 보여지면 모바일 UI라고 한다.
- Interface: 상호간의 소통의 매개체
- User Interface: 사용자의 소통의 매개체
API는 사용자가 아닌 응용프로그램에서 소통하기 위한 접점(매개체)이다.
📝 응용프로그램은 운영체제에서 실행되는 모든 소프트웨어를 말하며, 애플리케이션을 말한다.
- API: 애플리케이션에서 데이터를 읽거나 쓰기 위해 사용하는 인터페이스
즉, API는 애플리케이션에서 외부 대상과 데이터를 주고 받을 수 있도록 매개체 역할을 한다.
우리동네 날씨 정보를 알려주는 앱을 생각해보자.
앱이 날씨 정보를 알려주기 위해서는 날씨 정보를 받아와야 한다.
기상청에서는 날씨 정보를 가지고 있는데, 기상청은 외부 애플리케이션에서 날씨 정보 데이터를 가져올 수 있도록 매개체 역할을 하는 API를 제공한다.
API의 모양을 예로 들면, http://api.data.go.kr/weather/list와도 같다.
따라서, 애플리케이션에서 해당 API로 curl http://api.data.go.kr/weather/list 데이터 요청을 하여, 응답으로 데이터를 전달받는다.
이러한 형식의 API를 HTTP API라고 한다.
API, OPEN API를 엄밀히 말하면 HTTP API를 말하는 것이다.
기상청은 동네 날씨의 정보를 DB서버에 저장한다. 기상청에서는 날씨와 관련된 정보를 다른 애플리케이션에서 가져갈 수 있도록 서버에 다양한 API를 개발한다.
애플리케이션에서는 날씨 정보를 제공하는 API를 사용하여 사용자에게 보여질 UI를 개발한다.
- 데이터를 요청하는 앞단을 프론트엔드, 넓은 의미로 클라이언트라고 힌디.
- 데이터를 제공하는 뒷단을 백엔드, 넓은 의미로 서버라고 한다.
배달앱을 개발하는 백엔드 개발팀은 데이터를 조회하고 저장할 수 있도록 다양한 API를 개발해뒀을 것이다. 목록을 조회하는 API, 주문을 하는 API 등 수십, 수백 개의 API가 있을 것이다.
프론트엔드 개발팀은 이러한 API를 사용하여 사용자에게 보여질 UI를 개발한다.
- 사용자는 UI를 사용해서 소통한다.
- 애플리케이션은 API를 통해 소통한다.
사용자는 UI를 사용해서 앱이나 웹, 컴퓨터 등 다양한 대상과 소통한다.
애플리케이션은 API를 사용해서 데이터를 가지고 있는 대상과 소통한다.
Private API: 회사 자체 서비스를 만들기 위해 사내에서 개발하고 사용하는 API를 Private API라 하며, 제 3자에게 공개되지 않는다.
Public API: 기상청 API와 같이 누구나 사용할 수 있도록 개방한 API를 Public API 혹은 Open API라고 한다. Open API는 공공API, 유튜브, 인스타, 페이스북, 네이버, 카카오 등 많은 플랫폼에서 자사 데이터나 기능을 활용할 수 있도록 다양한 API를 제공한다.
일반적으로 Open API와 같은 용어를 사용할 때는 인터넷 상에서 데이터를 주고받는 HTTP API를 말한다. HTTP는 인터넷 상에서 데이터를 주고 받을 때 사용하는 프로토콜 즉, 소통방법(통신방법, 통신규약)이다.
공공데이터포털
https://www.data.go.kr/
카카오 개발자 사이트
https://developers.kakao.com/tool
네이버 개발자 사이트
https://developers.naver.com/products/intro/plan/plan.md
API란 무엇인가? 강의 자료: https://youtu.be/Jg3FFBLyhK0?si=jXcpOoxF4hEEdO4M
국내 오픈API 사이트 관련 게시글: https://harrys4th.tistory.com/41