코드에프의 지난 컨텐츠에서는 스크래핑과 API의 개념과 차이점에 대해 알아보았습니다. API(Application Programming Interface)는 서로 다른 프로그램 간에 원하는 데이터를 주고받기 위해 “어떠한 내용을, 어디에, 어떻게 넣어야 하는지"를 정해 놓은 규칙이자, 데이터 중개자라 설명했는데요. 사실 이렇게 들어도 API가 어떤 것인지 비개발자로서는 감이 잘 안오는 것이 사실입니다.

그래서 오늘은, 우리가 사용하는 스마트폰의 앱을 예시로 들어 좀 더 쉽게 API의 역할이 무엇인지, 그리고 API에는 어떤 종류가 있는지까지 탐구해 보겠습니다.

*해당 컨텐츠에서는 이해를 돕기 위해 API의 역할을 애플리케이션과 기기 사이에만 국한하여 설명하였습니다. 그러나 API는 모든 서로 다른 프로그램 간의 데이터 전달 중개자임을 참고 부탁드립니다.


API의 역할

애플리케이션과 기기의 소통 창구 역할

우리는 매일 수많은 애플리케이션을 사용하고 있습니다. 친구와 대화할 때는 메신저 앱, 심심할 때는 게임 앱, 그리고 물건을 구매할 때는 쇼핑 앱 등 거의 생활의 모든 것을 앱을 통해 해결할 정도이죠. 그런데 만약 앱을 사용하기 위해 지금처럼 단순히 버튼을 누르는 것이 아니라, 어려운 개발 명령어를 입력해야 한다면 어떻게 될까요? 아마 제대로 사용할 수 있는 사람은 거의 없을 겁니다.

01

개발자처럼 이런 화면을 봐야한다면? / 이미지 출처:shutter stock

이렇듯 API는 우리가 앱을 사용하면서 버튼을 누르거나 검색어를 입력하는 등 원하는 정보를 얻기 위한 행동을 했을 때, 이를 서버가 알아들을 수 있는 요청 값으로 전달하는 역할을 합니다. 서버는 요청받은 데이터를 찾아서 앱에게 특정 문자열 방식(Json 방식)으로 응답하죠. 그리고 앱은 이러한 데이터를 우리가 보기 편한 이미지 형태로 바꾸어 스마트폰을 통해 보여줍니다. 따라서 우리는 앱을 이용하면서 복잡하고 어려운 명령어나 개발 체계를 이해할 필요 없이 편리하게 원하는 정보를 볼 수 있는 것입니다.

서버와 데이터베이스의 문지기 역할

앱에 사용되는 모든 데이터는 서버에 저장되어 있습니다. 따라서 원하는 정보는 서버를 통해 받아와야 하죠. 그런데 이렇게 중요한 데이터에 모두가 접근할 수 있다면, 해킹 등의 보안 문제가 자주 발생할 것입니다. 따라서 API는 허용된 사용자에게만 특정 키값을 부여하고 데이터에 접근할 수 있도록 권한을 주는 문지기 역할을 수행합니다.

모든 접속을 표준화하는 역할

우리가 특정 앱을 사용하는 상황을 떠올려봅시다. 스마트폰으로 앱을 사용하다가 큰 화면으로 보고 싶어 PC 웹으로 넘어갔을 때, 다른 화면이나 다른 결과가 보이나요? 그렇지 않습니다. 화면의 규격만 다를 뿐, 우리는 똑같은 정보를 얻을 수 있고 로그인만 하면 내가 담아두었던 장바구니 리스트와 같은 정보가 동일하게 유지되어 있는 것을 확인할 수 있습니다. 이렇듯 API는 각기 다른 기기나 운영체계에서 접근하더라도 누구나 동일한 결과를 얻을 수 있도록 접속을 표준화하는 역할을 합니다.

API의 종류

API는 분류 기준에 따라 수많은 종류로 나뉩니다. 오늘은 공개 범위에 따른 세 가지 종류에 대해서만 알아보겠습니다.

Private API

이름에서 알 수 있듯이, 외부에 공유되지 않는 비공개 내부 API를 뜻합니다. Private API는 자체 서비스를 개발하고 개선하기 위해 회사 내부의 개발자가 만든 API로, 사용법이 공개되지 않아 외부 개발자들이 쓸 수 없습니다.

Partner API

Partner API는 데이터 공유 권한을 받은 특정 사람들만 사용할 수 있는 API입니다. 전략적으로 비즈니스 파트너 관계에 적용되는 API이며, 공개적으로 사용할 수 없기에 API 제공 회사로부터 특정 권한을 받아야 합니다.

Public API

누구나 접근 가능하도록 공개되어 있는 API를 의미합니다. 개방되어 있어 원하는 사람은 제한 없이 API를 사용할 수 있습니다.

오픈 API

오픈 API는 Public API와 동일한 개념입니다. 모두에게 열려있는 API인 것이죠. 그리고 더 나아가 이용자가 일방적으로 정보를 받는 것에서 그치지 않고 API를 이용하여 직접 응용프로그램과 서비스 등을 개발할 수 있도록 구축해 놓은 API를 뜻합니다.

예를 들어 여러분이 서울의 맛집을 추천하는 앱 서비스를 만들고 있다고 가정해봅시다. 그동안 열심히 개발하여 맛집 평점 시스템이나 리뷰 등록 등의 기능은 완성하였는데, 정작 중요한 위치 정보를 제공하는데 애를 먹고 있습니다. 지도 기능까지 직접 개발하자니 너무 오랜 시간이 들 것 같아 고민이던 찰나, 구글에서 제공하는 지도API를 활용하여 정확한 맛집의 위치를 사용자들에게 보여줄 수 있게 되었습니다.

이렇듯 오픈 API를 이용하면, 특정 기능을 직접 개발하는 리소스를 줄일 수 있습니다. 그리고 데이터를 전달하는 다리를 놓아, 서비스 구축을 한결 쉽고 빠르게 진행할 수 있죠.

03-2

이미지 출처: 다이닝코드 플레이스토어 앱 설명페이지

이미지 출처 : 다이닝코드 플레이스토어 앱 설명페이지

국내외에는 오픈 API를 제공하는 다양한 플랫폼이 있는데요, 하단 링크를 참고하여 여러분의 서비스 개발에 도움을 얻으시기 바랍니다 : )

  • 공공 데이터 포털 : 공공행정, 과학기술, 교육 등 공공데이터와 API 제공
  • Naver Developers : 네이버 검색, 캡처, 공유하기 등 네이버 기능을 활용할 수 있는 API 제공
  • Daum Developers : 카카오 로그인, 지도, 채널 등 카카오 기능을 활용할 수 있는 API 제공
  • Google Developers : 구글 지도, 드라이브, 유투브 등 구글 기능을 활용할 수 있는 API 제공
  • OpenWeather : 전세계의 날씨 데이터를 연동할 수 있는 API 제공
  • Crunchbase data : 기업의 자금 흐름, 투자 상황 등에 대한 데이터를 연동할 수 있는 API 제공
  • CoinAPI.io : 주요 암호화폐 거래소의 가격 데이터를 연동할 수 있는 API 제공

코드에프는 국내외 여러 기관의 금융 데이터를 API로 제공합니다. 코드에프는 복잡한 절차를 간결하게 바꾸고, 수고로움을 줄여, 서비스 제공 기업이 온전히 서비스에만 집중할 수 있도록 돕습니다. 또한 국내시장에서만 머무르지 않고 전 세계의 데이터를 중계해 주는 것을 목표로 합니다. 코드에프가 궁금하시다면 아래 배너를 눌러 코드에프의 API 개발가이드를 확인해 보세요.

ghost_banner-1

[자료 출처]
・ API 기초 이해하기
・ 개발자가 가지고 놀 만한 ‘똑똑한 API 17종’