소프트웨어 개발에서 API의 의미

API 개발, API 문서, API 연동… IT 직종에서 많이 보게되는 용어입니다만, 정확히 API가 무엇인지 꽤 많은 사람들이 헷갈려하는 거 같습니다. 물론 저도 마찬가지고요. 그래서 공부한 내용을 공유합니다. 제가 이해한 바로 API를 한 마디로 정의하면 '아무 관계 없는 두 어플리케이션을 연결하는 통로'입니다.

API

API는 Application Programming Interface의 약자입니다. 단어를 하나씩 살펴보겠습니다. 애플리케이션은 고유한 기능을 가진 소프트웨어를 말합니다. 인터페이스는 두 애플리케이션 간의 일종의 서비스 계약입니다. 인터페이스에 따라 두 애플리케이션이 어떻게 통신할 것인지 정해집니다.

통신이란 요청과 응답을 하는 걸 의미합니다. 두 애플리케이션이 어떻게 요청과 응답을 할지를 기록한 게 API 문서입니다. API를 개발하는 걸 (당연하지만)API 개발이라고 부르고요. 만들어진 API를 통해 두 애플리케이션이 통신할 수 있도록 만드는 걸 API 연동이라고 말합니다.

API 예시

사람들은 스마트폰의 날씨 앱으로 실시간 날씨를 확인합니다. 날씨 데이터를 제공하는 건 기상청이지만, 우리는 기상청이 아닌 날씨 앱으로 날씨를 확인합니다. 날씨 앱에 기상청이 제공하는 API를 연동했기에 가능한 일입니다. 공공적인 성격의 데이터는 대부분 API를 제공하고 있습니다. 개발자는 공공 데이터를 이용해서 앱을 만들 수 있습니다.

 

네이버는 항공권 예매 서비스를 제공합니다. 네이버에서 모든 항공사의 운항 정보, 티켓 가격을 모두 확인할 수 있습니다. 네이버는 항공사들이 제공하는 API를 연동했을 것입니다. 네이버가 항공사의 데이터베이스를 직접 가지고 있지 않지만, 요청을 통해 항공사로부터 데이터를 받아와 사용자에게 전달하는 것입니다.

 

위의 예시는 모두 날씨 데이터나 항공 데이터처럼 데이터베이스를 가져오는 것에 초점이 맞춰져 있죠. 기능적인 측면에서도 API 연동은 가능합니다. B2B 시장의 설치형 소프트웨어를 예로 들어, 네이버에 사내 그룹웨어 시스템을 제공하는 A사가 있고, 사내 메신저 시스템을 제공하는 B사가 있다고 해보겠습니다. A사와 B사는 아무런 관련이 없습니다. 만약 A사의 그룹웨어 시스템에 B사의 메신저 기능을 붙이고 싶다면 가능할까요? 업체에 API가 개발되어 있다면 가능합니다.

두 애플리케이션 간의 통신

위에서 언급했듯 두 애플리케이션이 통신한다는 건 요청과 응답을 주고받는다는 말과 같습니다. 요청을 보내는 쪽을 클라이언트, 응답을 하는 쪽을 서버라고 부릅니다. 클라이언트-서버 구조죠. 예시로 치면 사용자의 요청을 전달하는 날씨 앱은 클라이언트고 날씨 정보를 제공하는 기상청은 서버입니다.

API 트렌드

몇 가지 활용 예시만 보더라도 API라는 건 매우 자주, 유용하게 사용된다는 걸 알 수 있습니다. 때문에 API는 점점 개발자 친화적으로, 개발하기 쉽고, 이해하기 쉽게 만들어져 왔고 앞으로도 그럴 것입니다. 

 

API는 단순히 애플리케이션 연동을 위한 코드가 아닌 하나의 제품으로 인식되고 있습니다. 애당초 소비자를 겨냥해서 설계되고 문서화되며, 버전이 꾸준하게 업그레이드됩니다.

 

API 방식은 여러 가지가 있는데, 그중 REST API 방식이 표준으로 인정받는 듯 보입니다. 이 방식에서 클라이언트와 서버는 HTTP를 이용해 데이터를 주고받습니다.

 

 

[JavaScript] 카카오 우편번호 API 간단하게 적용하기

다음 카카오는 국내 우편번호 및 주소 DB를 서비스에 쉽게 적용할 수 있도록 API를 제공하고 있다. 행정안전부에서 제공하는 최신 DB를 업데이트해 사용하므로 정확하고 별도로 키를 발급받을 필

change-words.tistory.com

 

 

[WEB] HTTP란 | GET·POST 차이 | 프로토콜 구조

HTTP(Hypertext Transfer Protocol)는 HTML 같은 문서를 전송하기 위한 응용 프로그램 계층 프로토콜이다. 웹 브라우저와 서버 간 통신을 위해 만들어졌다. 클라이언트가 요청(request) 하면 서버는 응답(respon

change-words.tistory.com

 

반응형

댓글

Designed by JB FACTORY