회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
개발 환경에서는 여러 데이터들이 오고 갑니다. 이때 API는 복잡한 서비스의 데이터를 묶어 필요한 부분만 전달해주는 역할을 합니다. 개발 환경에 익숙하지 않은 사람이라면, 자판기를 생각하시면 이해가 쉽습니다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
개발 환경에서는 여러 데이터들이 오고 갑니다. 이때 API는 복잡한 서비스의 데이터를 묶어 필요한 부분만 전달해주는 역할을 합니다. 개발 환경에 익숙하지 않은 사람이라면, 자판기를 생각하시면 이해가 쉽습니다.
우리 눈 앞에 자판기가 하나 있다고 해봅시다. 이 자판기 안에는 여러 물건들이 들어있습니다. 이때, 안에 있는 물건을 꺼내려면 어떻게 해야 할까요?
API도 자판기와 마찬가지입니다. 안 쪽에 들어있는 데이터를 아무나 가져갈 수는 없지만. 인증과정을 거친 사람이라면 필요한 데이터를 가져갈 수 있습니다. 이때 필요한 것이 바로 인증 토큰(동전: token)입니다. 내가 이 자판기를 이용할 수 있도록 돕는 역할을 하죠.
자판기가 물건을 판다면, API는 서비스와 데이터를 제공합니다. 사고 싶은 서비스가 있다면, 자판기처럼 골라서, 돈을 내고 사용할 수 있죠. 동전 (토큰)을 넣고 뽑아낸 데이터는 자신의 서비스에 연결할 수 있습니다. 그렇다면 API는 왜 이런 과정을 거쳐, 서비스나 데이터를 판매하게 된 것일까요?
API로 사용하는 대표적인 사례는 바로 지도 서비스입니다. 세상에는 지도를 사용하는 여러 서비스들이 있죠. 하지만 모든 회사가 지도 서비스를 처음부터 만들어야 하는 상황이라면 어떻게 될까요? 작은 앱 서비스를 만든다 하더라도, 위치 데이터부터, 지역 정보까지. 엄청나게 많은 내용을 모아야 할 겁니다. 이런 불편함을 해소할 방법이 있습니다. 다른 사람이 만든 지도 서비스를 일부만 사 오는 겁니다.
API는 직접 만들 수는 없어도, 그 데이터나 서비스가 필요할 때 물건을 사 오듯 가져올 수 있는 방법입니다. 서비스의 일부를 가져오는 개념이기 때문에, 가격도 저렴하고. 사용한 만큼 돈을 내게 됩니다.
세상에는 굉장히 많은 서비스들이 있고, 그런 서비스를 API 형태로 판매하고 있는 여러 기업들이 있습니다. 요즘은 클라우드를 기반으로 서비스를 판매하지만. 과거에는 서비스 하나를 가져오기 위해. 직접 만나거나, 인증과정도 거쳐야 했습니다.
심지어는 데이터를 아무에게나 판매하지 않아서. 기업에 연락을 하고, 많은 돈을 주며 서비스를 사 와야 하는 경우도 있었죠. 하지만 요즘에는 클릭 몇 번만 해도 웬만한 정보들을 순식간에 연결할 수 있게 되었습니다.
API들 중에는 국가나, 공공기관 등에서 만든 오픈 API라는 개념이 있습니다. 이 데이터들은 누구나 자유롭게 접속하고, 데이터를 다룰 수 있도록. 대중에게 공개되어 있는 API입니다. 대표적인 오픈 API로는 서울시의 열린 데이터 광장이 있습니다.
이런 오픈 API를 이용하면, 다양한 통계자료나, 교통정보, 인구 정보 등. 서비스에 유용하게 사용할 수 있는 정보들을 무료로 얻을 수 있습니다. 또한 데이터를 다시 가공하거나, 변형해서 배포하더라도, 문제가 없죠. 이런 정보들은 시민단체나, 기업 등에서 유용하게 쓸 수 있습니다. 또한 이런 오픈 API는 거대 IT 기업이 주도해, 자신들의 서비스를 홍보하기도 합니다. 국내의 대표적인 오픈 API 사례를 소개하자면 다음과 같습니다.
이외에도 해외의 구글이나, 아마존 같은 거대 서비스들도, 자신들의 서비스로 연결할 수 있는 API 서비스를 제공하고 있습니다.
모든 서비스를 처음부터 만들 필요가 없다는 게 API의 장점이지만. 여기에도 한계가 있습니다. 내부의 자세한 정보나, 데이터 변형 등, 자유로운 작업이 불가능하다는 것입니다. 남에게서 빌려온 서비스니, 자세한 내용까지는 다룰 수가 없죠. 마치 우리가 자판기 안쪽을 맘대로 건드릴 수 없는 것처럼 말입니다.
실제 사례를 하나 들어볼까요? 한국의 경찰청에서는 운전면허 정보를 판단해 확인 메시지를 보내주는 API 서비스를 운영하고 있습니다. 그러나 여기에서 확인할 수 있는 내용은 ‘정상 ’과 ‘비정상’ 단 두 가지뿐입니다. 운전면허증을 딴 사람이 문제가 있는 사람인지. 언제 운전면허가 만료되는지. 여러 가지 정보를 알고 싶어도 API를 통해서는 제한된 정보만 받아볼 수 있다는 것이죠.
API는 자판기처럼 필요한 정보만 보여주는 역할을 합니다. 하지만 이런 API는 ‘남이 만든 것’이 아니라. 직접 만들어 사용할 수도 있습니다. 다음 사례를 확인해보죠.
위의 개발자의 상황처럼 이미 만들어진 서비스를 본인이 갖고 있을 때, 지도 서비스를 통째로 가져와, 배달 앱에 넣으려고 한다면 앱 하나가 매우 무거워지고 말 겁니다. 그러니 필요한 부분만 가져와서, 새로운 배달 서비스를 만들 때 사용하면 되겠죠. 이런 경우 스스로 서비스의 API를 만들어, 필요한 지점만 불러와 사용할 수 있습니다.
이처럼 API는 원본 데이터/서비스를 내가 갖고 있느냐, 아니면 남이 갖고 있느냐의 차이가 있을 뿐. 필요한 부분만 뜯어 가져오는 것은 똑같습니다. 그것이 남의 것이라면 돈을 내야 할 수도 있고, 내가 그 데이터를 가져다 쓸 자격이 있는지 없는지 인증하는 과정이 필요해질 뿐이죠.
지금까지 알아본 내용을 정리해보면 다음과 같습니다.
지금까지 API에 대해서 알아보았습니다. API에 대해 좀 더 자세한 정보가 알고 싶다면, 다음 참고자료를 확인해보세요!
<참고자료>