많이 들어 본 API. 대충 뭐의 약자인지도 안다. Application Programming Interface ! 근데 ‘구체적으로 이 개념에 대해서 설명해봐’ 하면 우물쭈물할 게 뻔하다. 심지어 내가 코드 짤 때 카카오맵 API를 써봤으면서도..! 그래서 이번 기회에 정리하고자 한다.
API의 정의
Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스
는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다.
일종의 소프트웨어 인터페이스*이며 다른 종류의 소프트웨어에 서비스를 제공한다.
* 인터페이스(interface)는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미.
다른 사이트에서도 많이 드는 비유이다. API는 레스토랑에서 ‘점원’과 비슷한 포지션이다. 손님이 메뉴판을 보며 메뉴를 고르면, 점원이 주문을 받아 주방에 요청을 한다. 그 요청을 받은 셰프는 요리를 해서 음식을 점원에게 전달하고, 점원은 손님에게 음식을 가져다 주는 서비스를 한다.
API도 같다. 프로그램이 주문할 수 있게 명령목록을 정리하고, 명령을 받으면 응용프로그램과 상호작용하여 명령에 대한 값을 전달한다. 즉, 프로그래밍에서 프로그램을 작성하기 위한 일련의 서브 프로그램, 프로토콜 등을 정의하여 상호 작용을 하기 위한 인터페이스 사양을 말한다.
API와 다른 개념 비교
API | 라이브러리 |
API가 단순히 컴퓨터공학 분야의 추상적인 개념 API의 핵심은 정의된 프로토콜을 기반으로 상호 작용을 할 수 있도록 일종의 약속된 시스템 |
이러한 API들을 기반으로 개발자에게 기능을 제공할 수 있도록 실제 구현된 구현체 라이브러리는 다시 쓰기 위해 미리 짜놓은 코드 뭉치들을 의미하는 것이고, API를 기반으로 구현한 것 |
프레임워크 | |
프레임워크는 명확하게 정의된 대량의 라이브러리가 있다는 점에서 API와 비슷하지만 일반적인 API는 전체 제어 구조를 호출하는 쪽에서 원하는대로 진행할 수 있지만, 프레임워크에서는 그럴 수 없는 경우가 많다는 점이 다르다. |
API는 사양(specification)만을 정의하기 때문에 구현(Implementation)과는 독립적이다. 말한 것처럼 이를 실제로 구현한 것은 라이브러리라고 부르며, 잘 설계된 API는 프로그램 개발을 보다 쉽게 해준다. API가 실제 기능 구현체인 라이브러리와 함께 제공되는 경우도 있는데, 이는 SDK(Software Development Kit)라고 한다. SDK는 일반적으로 API, 라이브러리와 함께 프로그램을 개발하는데 필요한 여러 보조 프로그램을 포함한다.
API 사용 이유
복잡한 프로그램일수록 단독으로 돌아가는 경우 보다 이미 개발되어 있는 무수한 여러 애플리케이션들과 소통하는 경우가 많다. (이건 우리도 느끼잖아요? SNS로그인, 지도 앱 연동 등등) 하지만 소통한답시고 기업들이 애플리케이션의 기반 코드와 자체 보유 데이터에 누구나 접근 가능하도록 개방할 수 없으니 상호작용이 가능하도록 자체 API를 만들어 배포하는 것이다.
개발자들은 배포된 API를 받고 자신의 코드에 추가해 원하는 기능을 구현할 수 있다. 운용 중인 애플리케이션에 합법적으로 구현물을 받아오거나 새로운 요소를 삽입, 수정할 수 있게 된다. 그래서 구글, 네이버, 카카오 등 많은 IT 기업들이 사내 제품군의 API를 제공하여 다른 애플리케이션 개발에 편의를 제공하고 있고 자사 제품 사용을 유도한다. APP KEY 발급도 매우 쉽고, 가이드도 잘 나와 있다.
카카오지도 API https://apis.map.kakao.com/
아래 그림은 내가 직접 프로젝트 했을 때, 카카오지도 API를 이용해서 지정된 위치를 웹에 띄울 수 있도록 한 것이다.
API의 장점
- 구현방식을 알지 못하는 제품 또는 서비스와도 통신 가능
- 애플리케이션 개발 간소화하여 시간과 비용 절약
- 새로운 툴과 제품 설계 / 기존 툴과 제품 관리 시 API 사용하면 유연성을 높이고 설계, 관리, 사용방법을 간소화하며 혁신의 기회 얻을 수 있음
- 개발자가 새로운 애플리케이션 구성 요소를 기존 아키텍처에 통합하는 방식을 간소화하므로 비즈니스 팀과 IT 팀의 협업에 도움
- 퍼블릭 API의 경우, 파트너와의 연결 방식을 간소화하고 확대할 수 있으며, 보유한 데이터를 활용해 수익 창출이 가능해지기 때문에 고유의 비즈니스 가치를 지님 (ex. Google Maps API)
예시) 도서 유통 회사
도서 유통업체에서 고객에게 클라우드 애플리케이션을 제공하여 서점 직원이 유통업체의 도서 재고를 확인하도록 할 수 있지만, 애플리케이션 개발에 많은 비용과 시간이 들고 플랫폼의 제약을 받을 수 있으며, 지속적인 유지관리가 필요하게 된다. 이런 상황에서 대안이 '재고 확인용 API 제공'이다. 이 API를 사용하게 되면
- 고객이 API를 통해 데이터에 Access 할 수 있으므로 한 곳에서 재고 정보 통합이 가능해짐
- API 작동에 변화가 없는 한, 도서 유통업체는 고객에게 영향을 미치지 않고 내부 시스템 변경할 수 있음
- 도서 유통업체의 개발자, 도서 판매자 또는 제3자가 공개적으로 제공되는 API를 이용하여 고객이 원하는 도서를 찾도록 도와주는 애플리케이션을 개발할 수 있으며, 이는 매출 증대나 타 비즈니스 기회 창출과 연계됨
과 같은 이점이 발생한다.
'IT' 카테고리의 다른 글
[3월 4주차] 4차 산업혁명 훑어보기(2) (0) | 2022.03.24 |
---|---|
[3월 3주차] 4차 산업혁명 훑어보기(1) (0) | 2022.03.18 |
[2월 4주차] 마이데이터, 핫하다며? (feat. SKT, KT, LGU+) (0) | 2022.03.03 |
[2월 3주차] 바스로 블록체인 서비스를 만들어 보세요. (0) | 2022.03.02 |
[2월 2주차] 현실세계와 쌍둥이, 디지털 트윈 (0) | 2022.03.02 |