본문 바로가기

코드스테이츠 PMB 12기

[코드스테이츠 PMB 12기] W7D3 카카오지도의 오픈 API알아보기

728x90

API와 오픈 API

PM은 개발자가 아니기에 직접 프로그래밍 언어를 이용하여 프로덕트를 개발하거나 하지 않는다. 하지만 초기 기획이 프로덕트로 잘 구현되려면 PM과 개발자 간에 긴밀한 소통은 필수적이다. 때문에 PM이 개발을 직접 할 수 있는 높은 수준의 개발 지식을 쌓을 필요는 없지만, 자사 API를 파악할 수 있는 정도의 능력을 갖추면 좋다.

그렇다면 API는 뭘까?

API란 Application Programming Interface로, 애플리케이션을 프로그래밍하는데 필요한 인터페이스이다. 그리고 인터페이스란 상호 정보 소통을 돕기 위해서 경계에 존재하는 시스템이다. IT 서비스에서는 서버와 클라이언트 사이에서 정보의 소통이 일어나는데, 서버와 클라이언트가 어떻게 정보를 주고 받을지에 대해서 API의 형태로 미리 정의하여 프론트엔드와 백엔드 개발을 진행한다.

오픈 API는 하나의 웹 사이트에서 가진 기능을 이용할 수 있도록 공개한 프로그래밍 인터페이스이다. 열심히 설계한 API를 공개하는 이유는 회사입장에서 자사의 서비스 기능을 다양한 서비스에서 활용할 수 있도록 제공하여 서비스의 저변을 넓히는데 목적이 있다. 때문에 메타 서비스를 제공하는 대기업이 시장 확대를 목적으로 API를 오픈하여 운영하거나 비영리기관에서 공공의 목적을 위해 무료로 API를 제공하곤 한다.

오늘은 강의로 배운 API, 특히 오픈 API를 직접 찾아보며 복습을 해보겠다.

카카오 개발자 도구

위에서 짧게 설명했듯이 대기업의 경우 축적한 메타데이터를 개발자에게 제공하여 개발자들이 다양한 서비스를 개발하여 기업의 서비스 저변을 넓히고자 한다. 카카오의 경우 Kakao Developers라는 페이지를 따로 운영하여 개발자에게 오픈 API를 제공한다. 오늘은 그 중에서도 지도/로컬 오픈 API를 살펴보자.

특징부터 보자. 카카오 지도는 친절하게도 지도 SDK를 제공한다.

「지도 SDK는 카카오맵의 기능을 웹과 앱 플랫폼에 구현할 수 있도록 다양한 메서드라이브러리를 통해 제공합니다. 로컬 API는 REST API 방식으로 카카오맵의 콘텐츠 및 데이터를 제공합니다. 지도 SDK와 로컬 API를 통해 다양한 위치 기반 서비스를 만들어보세요.」

갑자기 새로운 용어가 많이 등장하여 어질어질하지만, 자세한 내용을 한 번 살펴보자.

SDK는 API와 상당히 비슷한 용어이지만 다른 점을 가지고 있다.

SDK는 Software Development Kit로 소프트웨어 개발 도구 모음이다.

SDK에는 API, IDE, 문서, 라이브러리, 코드 샘플, 기타 유틸리티 등이 포함 될 수 있다.

즉 API보다 SDK가 더 넓은 개념이고, SDK를 활용하면 프로그램 및 응용 프로그램 개발의 복잡성이 줄어들기 때문에 강력한 기능 집합으로 볼 수 있다.

이 점에서 카카오가 개발자에게 꽤 친절하단 것을 알 수 있으며, 많은 개발자가 카카오 지도의 SDK를 사용하여 연계 서비스를 개발을 유도한 다는 것을 알 수 있다.

메소드는 특정 자료에 대해 특정 기능을 하는 코드이고, 라이브러리는 패키지 파일의 묶음으로 표준 라이브러리와 외부 라이브러리가 존재한다.

REST API는 자원 자체를 정의하고 자원에 대한 주소를 지정하는 방식이다. 간단하게 말해서 API의 체계라고 생각하면 된다.

다음으로 카카오 지도 SDK의 제공 기능을 보면 iOS, Android, Javascript 플랫폼 서비스에서 카카오맵을 활용할 수 있는 커스텀 기능을 제공한다.

주소 검색, 좌표 변환, 키워드 장소 검색, 카테고리 장소 검색 등의 기능이 있다.

그런데.. 카카오지도의 SDK에 접근하려면 어플리케이션을 소유하고 있는 개발자 신분이어야 한다.

아쉽지만 카카오지도의 API를 확인해보도록 하자.

카카오지도 API

카카오는 카카오지도의 API를 안드로이드, 웹, iOS에 따라 제공한다.

오늘은 하단에 위치한 로컬 API를 살펴보겠다.

 

개발 가이드를 보면, 로컬 API 구현 방법을 소개한다고 쓰여있다.

REST API가 API의 체계라고 하였는데, 카카오지도는 API를 어떻게 정의하였는지 알아보자.

먼저 '주소 검색하기' 행동을 위한 API이다.

검색한 주소의 좌표 정보를 제공하는 API로 지번주소, 도로명 주소를 모두 지원한다.

방식은 앱 REST API키를 헤어에 담아서 GET으로 요청한다. 검색어와 함께 결과 형식 파라미터 값은 선택적으로 추가할 수 있다고 한다.

응답은 JSON과 XML 형식을 지원한다고 한다.

 
 
 
 
 

카카오지도는 이런식으로 API를 약속했다.

카카오지도에서 제공하는 샘플 코드를 보면, Request는 '전북 삼성동 100'이라는 주소를 검색하는 코드이다.

클라이언트에서 서버로 넘어가는 코드로 사용자가 주소를 검색했다고 해석할 수 있다.

Response는 서버에서 클라이언트로 넘어오는 데이터로 검색한 주소에 대한 좌표 정보를 담고있다.

Response에 따르면 '전북 익산시 부송동 100'의 y좌표는 35.97664845766847이고 x좌표는 126.99597295767953이다.

 
 

카카오맵에서 샘플 주소를 검색해보았다.

사용자가 최종적으로 만나보게 되는 위 화면은 오늘 알아본 샘플 코드를 포함한 수많은 코드가 적용된 결과물이다.