NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

서비스와 데이터 이해하기, API란?

개발 환경에서는 여러 데이터들이 오고 갑니다. 이때 API는 복잡한 서비스의 데이터를 묶어 필요한 부분만 전달해주는 역할을 합니다. 개발 환경에 익숙하지 않은 사람이라면, 자판기를 생각하시면 이해가 쉽습니다. 

 

우리 눈 앞에 자판기가 하나 있다고 해봅시다. 이 자판기 안에는 여러 물건들이 들어있습니다. 이때, 안에 있는 물건을 꺼내려면 어떻게 해야 할까요?

  • 동전을 넣고, 원하는 물건을 뽑는다 (이용자의 경우)
  • 열쇠로 자판기를 열고, 물건을 꺼낸다 (관리자의 경우)

 

API도 자판기와 마찬가지입니다. 안 쪽에 들어있는 데이터를 아무나 가져갈 수는 없지만. 인증과정을 거친 사람이라면 필요한 데이터를 가져갈 수 있습니다. 이때 필요한 것이 바로 인증 토큰(동전: token)입니다. 내가 이 자판기를 이용할 수 있도록 돕는 역할을 하죠.

자판기가 물건을 판다면, API는 서비스와 데이터를 제공합니다. 사고 싶은 서비스가 있다면, 자판기처럼 골라서, 돈을 내고 사용할 수 있죠. 동전 (토큰)을 넣고 뽑아낸 데이터는 자신의 서비스에 연결할 수 있습니다. 그렇다면 API는 왜 이런 과정을 거쳐, 서비스나 데이터를 판매하게 된 것일까요?

 

 

API의 필요성: 모든 걸 새로 만들 필요가 없다.

API로 사용하는 대표적인 사례는 바로 지도 서비스입니다. 세상에는 지도를 사용하는 여러 서비스들이 있죠. 하지만 모든 회사가 지도 서비스를 처음부터 만들어야 하는 상황이라면 어떻게 될까요? 작은 앱 서비스를 만든다 하더라도, 위치 데이터부터, 지역 정보까지. 엄청나게 많은 내용을 모아야 할 겁니다. 이런 불편함을 해소할 방법이 있습니다. 다른 사람이 만든 지도 서비스를 일부만 사 오는 겁니다.

 

API는 직접 만들 수는 없어도, 그 데이터나 서비스가 필요할 때 물건을 사 오듯 가져올 수 있는 방법입니다. 서비스의 일부를 가져오는 개념이기 때문에, 가격도 저렴하고. 사용한 만큼 돈을 내게 됩니다. 

세상에는 굉장히 많은 서비스들이 있고, 그런 서비스를 API 형태로 판매하고 있는 여러 기업들이 있습니다. 요즘은 클라우드를 기반으로 서비스를 판매하지만. 과거에는 서비스 하나를 가져오기 위해. 직접 만나거나, 인증과정도 거쳐야 했습니다. 

 

심지어는 데이터를 아무에게나 판매하지 않아서. 기업에 연락을 하고, 많은 돈을 주며 서비스를 사 와야 하는 경우도 있었죠. 하지만 요즘에는 클릭 몇 번만 해도 웬만한 정보들을 순식간에 연결할 수 있게 되었습니다.

 

 

오픈 API: 모든 API가 유료인 건 아니다

API들 중에는 국가나, 공공기관 등에서 만든 오픈 API라는 개념이 있습니다. 이 데이터들은 누구나 자유롭게 접속하고, 데이터를 다룰 수 있도록. 대중에게 공개되어 있는 API입니다. 대표적인 오픈 API로는 서울시의 열린 데이터 광장이 있습니다. 

이런 오픈 API를 이용하면, 다양한 통계자료나, 교통정보, 인구 정보 등. 서비스에 유용하게 사용할 수 있는 정보들을 무료로 얻을 수 있습니다. 또한 데이터를 다시 가공하거나, 변형해서 배포하더라도, 문제가 없죠. 이런 정보들은 시민단체나, 기업 등에서 유용하게 쓸 수 있습니다. 또한 이런 오픈 API는 거대 IT 기업이 주도해, 자신들의 서비스를 홍보하기도 합니다. 국내의 대표적인 오픈 API 사례를 소개하자면 다음과 같습니다.

 

  • 대한민국 공공데이터 포털 (https://www.data.go.kr/)
  • 서울시 열린 데이터 광장 (https://data.seoul.go.kr/)
  • 네이버 오픈 API (https://developers.naver.com/products/intro/plan/plan.md)
  • 카카오 오픈 API (https://developers.kakao.com/)

 

이외에도 해외의 구글이나, 아마존 같은 거대 서비스들도, 자신들의 서비스로 연결할 수 있는 API 서비스를 제공하고 있습니다.

 

 

API의 한계: 제한된 정보만 확인할 수 있다

모든 서비스를 처음부터 만들 필요가 없다는 게 API의 장점이지만. 여기에도 한계가 있습니다. 내부의 자세한 정보나, 데이터 변형 등, 자유로운 작업이 불가능하다는 것입니다. 남에게서 빌려온 서비스니, 자세한 내용까지는 다룰 수가 없죠. 마치 우리가 자판기 안쪽을 맘대로 건드릴 수 없는 것처럼 말입니다. 

 

실제 사례를 하나 들어볼까요? 한국의 경찰청에서는 운전면허 정보를 판단해 확인 메시지를 보내주는 API 서비스를 운영하고 있습니다. 그러나 여기에서 확인할 수 있는 내용은 ‘정상 ’과 ‘비정상’ 단 두 가지뿐입니다. 운전면허증을 딴 사람이 문제가 있는 사람인지. 언제 운전면허가 만료되는지. 여러 가지 정보를 알고 싶어도 API를 통해서는 제한된 정보만 받아볼 수 있다는 것이죠.

 

 

남이 만든 API, 내가 만든 API 

API는 자판기처럼 필요한 정보만 보여주는 역할을 합니다. 하지만 이런 API는 ‘남이 만든 것’이 아니라. 직접 만들어 사용할 수도 있습니다. 다음 사례를 확인해보죠.

  • A라는 개발자는 지도 서비스를 직접 만들어서 운영하고 있었다
  • 그러다가 새로운 아이디어가 떠올랐고, 배달 앱을 만들기로 했다.
  • 배달 서비스에, 지도 화면 일부를 뜯어와 사용하고 싶다
  • 이때, 지도 서비스를 통째로 배달 서비스 안에 넣어야 할까? 

 

위의 개발자의 상황처럼 이미 만들어진 서비스를 본인이 갖고 있을 때, 지도 서비스를 통째로 가져와, 배달 앱에 넣으려고 한다면 앱 하나가 매우 무거워지고 말 겁니다. 그러니 필요한 부분만 가져와서, 새로운 배달 서비스를 만들 때 사용하면 되겠죠. 이런 경우 스스로 서비스의 API를 만들어, 필요한 지점만 불러와 사용할 수 있습니다.

 

이처럼 API는 원본 데이터/서비스를 내가 갖고 있느냐, 아니면 남이 갖고 있느냐의 차이가 있을 뿐. 필요한 부분만 뜯어 가져오는 것은 똑같습니다. 그것이 남의 것이라면 돈을 내야 할 수도 있고, 내가 그 데이터를 가져다 쓸 자격이 있는지 없는지 인증하는 과정이 필요해질 뿐이죠. 

 

 

지금까지 알아본 내용을 정리해보면 다음과 같습니다.

 

  1. API는 자판기처럼, 원하는 정보나 서비스를 가져다 사용할 수 있다
  2. 세상에는 많은 서비스들이 있고, API라는 형태로 가져다 사용할 수 있다
  3. API를 사용하면, 다른 사람이 만든 서비스의 일부를 쓸 수 있다. 하지만 돈을 내야 할 수도 있고, 기능이나 범위가 제한적이다.
  4. 모든 API가 유료인 건 아니다. 오픈 API는 국가나, 공공기관, 거대 IT 기업이 만들기도 한다.
  5. 내가 만든 API와, 다른 사람이 만든 API의 차이는. 데이터의 소유권이 누구에게 있느냐의 차이다.

 

지금까지 API에 대해서 알아보았습니다. API에 대해 좀 더 자세한 정보가 알고 싶다면, 다음 참고자료를 확인해보세요! 

 

<참고자료>

https://geonlee.tistory.com/187

댓글 0

리플러스

웹개발과 UI를 연구하는 리플러스입니다. 현재 UD LAB이라는 채널을 운영하고있고, 디자이너를 위한 개발 공부법을 만들고 있습니다.

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.