본문 바로가기

Daily JennPM

[W7D3] 카카오의 Open API 살펴보기 - 코드스테이츠 PMB 11기

 

API란 무엇인가요?

API는 Application Programming Interface의 줄임말로

어플리케이션을 프로그래밍하는데 필요한 인터페이스입니다.

 

이를 제 나름대로 해석해보자면 API란

서비스 개발에 있어 API를 주로 사용하는 서버와 클라이언트 사이의

상호 정보 소통을 돕기 위해 존재하는 시스템을 의미한다고 할 수 있습니다.

 

PM으로서 직접 API를 설계할 필요는 없지만

API의 구조를 파악하고 분석할 수준의 역량이 필요합니다.

 

더 나아가 Open API

하나의 웹 사이트에서 자신이 가진 기능을 이용할 수 있도록 공개한

프로그래밍 인터페이스입니다.

출처: 코드스테이츠

Open API를 공개하고 있는 국내 대기업으로는 네이버, 카카오 등이 있으며

해외 대기업으로는 구글, 마이크로소프트 등이 있고

공공기관인 공공 데이터 포털 역시 Open API를 제공하고 있습니다.

 

Naver Developers

 

네이버의 경우, 검색창에 '네이버 Open API'를 입력하면

쉽게 제공하고 있는 Open API 목록을 확인할 수 있었습니다.

 

 

네이버 오픈 API 목록 - INTRO

네이버 오픈 API 목록 NAVER Developers - API 소개 네이버 오픈API 목록 및 안내입니다. 네이버 오픈 API 목록 API명 설명 호출제한 검색 네이버 블로그, 이미지, 웹, 뉴스, 백과사전, 책, 카페, 지식iN 등 검

developers.naver.com

 

그렇다면 기업이 이렇게 Open API를 제공하는 이유는 무엇일까요?

기업 입장에서는 Open API 제공을 통해 자사의 서비스 기능을

다양한 프로덕트에서 활용할 수 있도록 하여 서비스의 저변을 넓히기 위함입니다.

 

 

 

 

Open API를 하나 선정하여 더 자세히 살펴보자

 

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

Kakao Developers 사이트로 들어가

카카오가 제공하고 있는 Open API를 확인해보았습니다.

 

Kakao Developers

카카오의 경우,

간편 가입 기능을 제공하는 카카오싱크 API,

카카오 계정으로 쉽게 로그인하는 카카오 로그인 API,

앱 전환 없이 카카오톡으로 콘텐츠를 공유하는 메시지 API 등이 있습니다.

 

이중 지도/로컬API의 제품 소개를 살펴보겠습니다.

 

지도/로컬 API 활용 예시 화면

해당 제품은 지도 SDK와 로컬 API로 나눌 수 있습니다.

 

SDK는 Software Development Kit의 줄임말로

소프트웨어 개발에 있어 사용 가능한 소스와 도구 패키지를 의미합니다.

 

지도SDK는 카카오의 서비스인 카카오맵의 기능을

웹과 앱 플랫폼에 구현할 수 있도록 매서드와 라이브러리를 통해 제공합니다.

로컬 API는 REST API 방식으로 카카오맵의 콘텐츠 및 데이터를 제공하며

이 둘을 이용하여 다양한 위치 기반 서비스를 개발할 수 있습니다.

 

이 둘 중 로컬API에 조금 더 집중해보겠습니다.

로컬 API 활용 예시 화면

 

로컬 API는 키둬드로 특정 장소 정보를 조회하거나,

좌표를 주소 또는 행정구역으로 변환하는 등

장소에 대한 정보를 제공합니다.

또한 특정 카테고리로 장소를 검색하고

지번 주소와 도로명 주소 체계 모두를 지원합니다.

 

카카오 로컬API가 지원하는 기능

위 이미지는 카카오 로컬API가 지원하는 기능이며

개발 가이드를 살펴보면 더욱 자세한 설명을 보실 수 있습니다.

 

이 중 키워드로 장소 검색하기 서비스를 개발하고 싶을 때의

로컬 API 개발 가이드를 확인해보겠습니다.

 

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

가이드에 따르면

질의어에 매칭된 장소 검색 결과를 지정된 정렬 기준에 따라 제공하며

현재 위치 좌표, 반경 제한, 정렬 옵션, 페이징 등의 기능을 통해

원하는 결과를 요청 할 수 있다고 합니다.

 

Kakao Developers

상단은 앱 REST API 키를 헤더에 담아 GET으로 요청하는 URL 입니다.

또한 Parameter 값을 선택적으로 추가하여 원하는 검색어와 함께 사용할 수 있습니다.

 

* 파라미터 값이란 무엇인가?

 

파라미터를 설명하기 전에 알고 있어야 하는 것은

바로 메소드 (method)입니다.요청을 보내면 결과가 나오는 API의 모습이x라는 입력값에 따라서 y라는 결과가 나오는 함수와 같다고 하여이를 메소드라고 부릅니다.

 

함수에서는 x를 '변수; 혹은 '파라미터'라고 부릅니다.예를 들어, 로그인 요청에서 필요한 ID와 PW를'로그인 요청에 필요한 요청 변수' 혹은 '파라미터'라고 표협합니다.

 

- 책 <비전공자를 위한 이해할 수 있는 IT 지식> 참고

 

Kakao Developers

해당 Request 코드를 확인해보겠습니다.

(개발 언어는 아직도 익숙치 않아 틀릴 수 있지만..!)

 

위의 파라미터를 이용해 해석해보자면

Request는 json 형식으로 작성되었으며

위도 혹은 y 좌표 37, 경도 혹은 x 좌표 127인 곳에서

radius 반경 20000 미터를 검색하며

사용자가 입력한 질의어는 query로 보아 '카카오프렌즈'인 것 같습니다.

 

홈페이지의 설명에 따르면 위 코드는

서울 강남구 삼성동 20km 반경에서 카카오프렌즈 매장을 검색한 것이라고 합니다.

 

 

Kakao Developers

위 요청에 대한 서버의 응답은 위의 이미지와 같습니다.

해당 응답을 카카오 홈페이지에 있는 자료를 통해 나름대로 해석해보겠습니다.

 

[응답 pt. 1]

same_name 아래는 질의어의 지역 및 키워드 분석 정보입니다. 하지만 요청 코드에 따르면 사용자는 별도의 위치 정보를 포함하지 않은 '카카오프렌즈'라는 단어만을 입력하였기 때문에 질의어에서 인식된 지역의 리스트를 나타내는 region 뒤에 아무 것도 오지 않습니다. 질의어에서 지역 정보를 제외한 키워드를 나타내틑 keyword 뒤에는 '카카오프렌즈' 가 인식되었으며 'selected_region' 뒤에 아무 코드가 없는 것으로 보아 인식된 지역 리스트가 별도로 존재하지 않는 것 같습니다.

 

pageable_count와 total_count 코드를 보어 검색어에 검색된 문서 수는 14개이며 그 중 노출 가능 문서 수도 14개인 것으로 보여집니다. 또한 is_end가 true로 나타난 것을 보아 현재 페이지가 마지막 페이지라고 생각됩니다.

 

 

[응답 pt. 2]

documents는 인식한 질의어 분석 정보에 따라 알맞는 document 정보를 가져오는 코드 같습니다.

코드를 살펴보면 결과로 나타난 장소는 '카카오프렌즈 코엑스점'이며 요청이 보낸 좌표와 418m 떨어져있습니다. 해당 장소에 대한 상세페이지 URL을 제공하고 있으며 '카카오프렌즈'의 대분류는 '가정, 생활' 인 것으로 보여집니다.

그 아래는 차례대로 '전체 지번 주소', '전체 도로명 주소', '장소 ID', '전화번호'를 의미하며 마지막에는 '카카오프렌즈 코엑스점'의 x와 y좌표가 뜹니다.