API가 뭔가요? (비개발자용)

비개발자를 위한 정보공유

API가 뭔가요? (비개발자용)
Photo by Fahim Muntashir / Unsplash

현재 내가 일하고 있는 '티포트(T PORT)'에서는 숙박 분야의 B2B 사업을 진행하고 있다. 우리의 사업 분야는 크게 2가지로 구분할 수 있는데 하나는 호텔, 펜션, 게스트하우스를 운영하는 숙박업주들을 위한 <예약관리 시스템>을 제공하는 것이고, 다른 하나는 호텔, 모텔, 펜션, 게스트하우스와 같은 숙박 상품을 모아서 네이버, 티켓몬스터와 같은 여러 채널에 판매하는 <중계판매> 사업이다.

오늘 이야기할 내용은 API에 대한 것인데 사업의 중심이 B2B이다 보니 여러 서비스들과 데이터를 교환해야 하는 일이 빈번하게 발생한다. 가령 이런 식이다. 호텔을 100개 보유한 A라는 회사로부터 상품정보를 받아와서 티포트 표준에 맞추어 정보를 가공하고 Z라는 회사에 100개의 상품을 공급한다.

A가 보유한 100개의 상품을 >>> T PORT가 받아서 표준화 >>> Z에게 공급

자 그렇다면 A가 보유한 100개의 상품을 어떠한 방식으로 받아오고, Z에게는 어떻게 공급할 것인가? 대략 3가지 방식이 있다.

1. A로부터 이메일, 웹하드, 외장하드 등의 방식으로 정보를 받아와서 티포트 표준에 맞추어 가공하고 같은 방법으로 Z에게 전달한다.

2. A의 데이터베이스 접근 권한을 얻어서 티포트에서 필요한 정보를 가져 다 쓰고, 티포트의 데이터베이스 접근 권한을 Z에게 열어준다.

3. API를 연동해 필요한 시점에 필요한 정보를 교환한다.

위 3가지 방식 중에 하나를 선택한다면 정확한 개념은 모르더라도 당연히 3번을 선택할 것이다. 1번의 경우 A가 보유한 상품 요금이나 정보가 변경되었을 때 실시간으로 Z에 전달할 방법이 없고, 2번의 경우 보안 이슈가 가장 크다. 우리 집 현관문 비밀번호를 알려준 것과 동일하다.

그렇다면 API란 무엇이고 어떻게 작동하는 것인가?

위키피디아의 사전적 정의를 살펴보면..

API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.

비개발자 입장에서는 아무리 읽어봐도 무슨 소리인지 이해가 안 간다. 이는 프로그래밍의 계층 구조를 알아야 정확히 이해할 수 있는데 자세히 이해하고 싶으신 분은 아래 동영상을 참고하시기 바랍니다.

동영상 강좌 - UI와 API

https://www.youtube.com/watch?v=Z4kH0IZVT-8&t=95s

본론으로 돌아와서 비개발자인 우리들도 API의 개념을 쉽게 이해할 수 있도록 프로그래밍의 계층 구조는 무시하고 단순한 비유를 들어보려고 한다.

우리 집과 부모님 집에는 물건을 순간이동시킬 수 있는 포탈이 설치되어 있다. 이 포탈은 인증된 사람만 이용할 수 있는데, 아빠&엄마는 언제든지 사용하시라고 인증 키를 발급해드렸다. 우리 집에는 책, 의류, 그릇, 반찬, 수저, 젓가락, 설거지 용품, 아기용품 등 100여 가지의 물품이 있는데 이 중 책, 반찬, 설거지 용품은 언제든지 가져가실 수 있도록 포탈과 연결시켜놓았다.

이제 엄마가 포털을 이용한다.

  • 책 중에 <문성실의 요즘요리> 가져와! (포털을 통해 배달된다)
  • 반찬 중에 <열무김치> 가져와! (포털에서 열무김치가 없다고 알림이 온다)

뭐 대략 이러한 개념이다. API 제작자는 자신이 가진 데이터베이스 or 기능을 다른 누군가가 쉽게 사용할 수 있도록 모듈화 해서 가지고 있다. 그리고 인증받은 누군가는 단 한 번의 명령으로 해당 데이터 or 기능을 사용할 수 있다.

티포트에서는 이러한 API 통신이 활발하게 이루어지고 있다. A가 보유한 100개의 호텔정보, 객실정보, 사진, 요금정보, 재고정보를 받아서 표준화하고 Z, Z1, Z2, Z3의 판매사에 정보를 제공한다. Z2에서 상품이 판매되면 A가 보유한 재고가 차감됨과 동시에 Z, Z1, Z3에서 상품을 판매할 수 없는 상태로 변경된다. 이는 모두 API로 실시간 연동된다.


API와 관련하여 누군가 이러한 고민 글을 남겼었는데..

어제 오후에 업체 측과 미팅하는데, 자꾸 api, api 이러시는 거예요.

  • 업체 측 과장님 : "저건 api 받아봐야 알 거 같은데요?"
  • 우리 측 사장님 : "그렇죠 일단, api 받고 나서 논의 다시 하죠 저건 "

이러시면서 넘어갔어요. 근데 저만 못 알아 들었어요 ㅠㅠ

-

여기서 API를 받아봐야 알겠다는 이야기는 업체가 제공하는 API가 있는데 우리가 필요한 기능을 지원하고 있는지 확인이 필요하다는 의미입니다. 예를 들면 업체에서 지도 API를 제공하고 있는데 우리가 필요한 기능이 로드뷰 기능인 경우. 업체의 지도 API에서 로드뷰 기능을 지원하는지 확인해봐야겠다는 이야기겠죠?

오픈 API란?

오픈 API는 말 그대로 누구나 사용할 수 있도록 공개된 API로 대표 서비스 4곳을 소개합니다.

Bonus!

오픈 API는 모두 무료일까요? 대부분 무료로 제공되지만 호출수에 제한을 두고 있고, 초과 사용을 원할 경우 별도 비용을 받기도 합니다. 구글 지도의 경우 API 제공을 통한 수익도 상당하다고 하네요 ^^

---

요즘 육아로 정신이 없네요. 그래도 시간 쪼개서 틈틈이 포스팅하겠습니다 😄