본문 바로가기
프로덕트 매니저 부트캠프/PMB Daily 과제

카카오톡 API의 기능과 구조 살짝 살펴보기 코드스테이츠 PMB 10기

by 티나_daily 2022. 3. 8.
오픈 API 검색해 기능과 구조 살펴보기

1) 인터넷에서 오픈 API로 공개되어 있는 서비스를 탐색해 봅니다.

주요 국내 대기업 - 네이버, 카카오 등
주요 해외 대기업 - 구글, 마이크로소프트 등
공공 기관 - 공공 데이터 포털 등

아래 링크는 단순 예시이며, 오픈되어 있는 어떤 API를 사용해도 무관합니다.

2) 1에서 살펴 본 오픈 API 중 하나(이상) 를(을) 선정해서 제공하는 기능과 구조를 살펴보고, 간단하게 요약해 정리해 봅니다.

 

API란?

 

 API는 Application Programming Interface의 줄임말로 어플리케이션프로그래밍하는데 필요한 인터페이스이다. 여기서 인터페이스란, 상호 정보 소통을 돕기 위해 경계에 존재하는 시스템을 의미한다.

 

 에를 들어 돈을 인출하기 위해 은행에 갔다고 떠올려보자. 이때 나를 도와주는 것은 은행 창구의 직원이다. 이 직원은 고객과 은행의 경계에서 해당 업무를 처리하는 역할을 하는데, 이와 API는 유사한 역할을 한다.

 

 IT에서는 정보의 소통이 일어나는 곳은 서버와 클라이언트가 될 것이다. API는 클라이언트, 서버와 같이 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계를 뜻한다.

 

 


카카오 오픈 API 만나보기

 

 카카오의 오픈 API를 살펴보기 위해 kakao developers 에 접속하였으며, 오픈 API는 [제품] 카테고리에서 확인할 수 있다. API는 소셜통합, 비즈니스, 인공지능 세 가지로 나뉘어져 있으며 아래와 같이 17개의 API 제품으로 이루어져 있다.

 

소셜통합 API : 카카오 로그인, 카카오톡 소셜, 메시지, 지도/로컬, 카카오내비, 카카오스토리
비즈니스 API : 카카오싱크, 카카오톡 채널, 카카오페이, 카카오모먼트, 카카오리워드, 푸시 알림
인공지능 API : 검색, 음성, 비전, 포즈, 번역

 

 그중 평소에 많이 사용하는 기능인 메시지의 API는 어떻게 제공되고 있는지 파악하고자 한다.

 

 

 카카오톡의 메시지 API는 사용자가 자신 또는 친구에게 카카오톡 메시지를 보내는 기능을 제공한다. 메시지 API는 두 종류가 있는데, 서비스 정보를 간편하게 메시지로 공유하는 데 사용하는 카카오링크 API와 서비스에서 사용자간 메시지를 보낼 수 있게 해 주는 카카오톡 메시지 API가 있다.

 

카카오링크 API의 구조

 

 먼저 카카오링크 API의 구조를 살펴보자. 유저가 [공유] 버튼을 클릭하면, 사용하고 있던 어플리케이션에서 [카카오링크 API]를 호출한다. 그러면 카카오톡 앱이 실행되고, [카카오톡 친구 목록 화면]이 나타난다. 유저가 친구 목록 중 원하는 친구를 선택하면 선택한 친구에게 [메시지 보내기]를 카카오톡에 요청하게 된다.

 

 

 

 이 구조를 읽어보니 평소에 내가 자주 하던 공유 방식이었는데, 실제로 이 방식을 진행해보자면 위와 같다. 네이버 블로그에서 어떤 글을 읽고 [공유하기] 버튼을 클릭하면 카카오톡으로 공유를 할 수 있다. 카카오톡 버튼을 클릭하면 [공유 대상 선택]을 위한 친구 목록이 펼쳐지고, 친구를 선택하면 친구에게 메시지 보내기가 완료된다. 사용하는 입장인 나는 몰랐지만, 이 과정에서 네이버 블로그앱에서 카카오톡에 카카오링크 API를 호출했다는 점을 추측해볼 수 있다.

 

카카오링크 API의 제공 기능

 

 카카오링크 API가 제공하는 기능은 위와 같으며 이 기능들은 Kakao SDK for JavaScript, Android, iOS로만 제공되며, REST API로는 제공되지 않는다.

 


 

카카오톡 메시지 API

 

 다음으로 카카오톡 메시지 API를 살펴보자. 유저가 사용하던 어플의 [메시지 보내기] 버튼을 클릭하면 어플에서 카카오 서버에 [카카오톡 친구 가져오기 API]를 호출한다. 그 다음 카카오 서버에서는 카카오톡 친구 데이터를 어플에 제공하고, 어플은 유저에게 서비스 자체에서 [친구 목록 화면]을 노출한다. 유저는 어플에서 친구를 선택하여 [메시지 보내기]를 요청하게 된다. 마지막으로 어플은 카카오 서버에 [카카오톡 메시지 API]를 호출하게 된다.

 

 이 구조에서는 [카카오톡 친구 가져오기 API]와 [카카오톡 메시지 API] 라는 API가 총 두 번 호출된다. 어플 자체에서 친구 목록 화면을 보여줘야 한다는 점에서 하나의 API가 추가된 것이다. 카카오링크 API보다 어플 내에서 진행해야 하는 과정이 많은 점에서 어플 입장에서는 조금 복잡해진 듯 싶다. 다만 카카오톡 친구 정보를 데이터로 제공 받기 때문에 정책 상 문제가 되지 않는 선에서 이를 활용할 수 있다는 장점이 있다.

 

카카오톡 메시지 API의 제공 기능

 

 카카오톡 메시지 API가 제공하는 기능은 위와 같으며, 이 기능들은 Kakao SDK for JavaScript, Android, iOS 뿐만 아니라 REST API로도 제공된다.

 


카카오링크 API vs 카카오톡 메시지 API

 

 

 두 가지의 API를 비교해보면 위와 같다. 친구 목록 페이지는 [카카오링크 API]의 경우 직접 카카오톡 앱으로 이동하기 때문에 따로 구현할 필요가 없으나, [카카오톡 메시지 API]의 경우 [친구 목록 가져오기 API]를 사용해서 자체 구현해야 하는 필요가 있다. 이에 따라 정보 제공 조건에 맞는 친구만 불러올 수 있다는 단점이 존재한다.

 

 그리고 [카카오링크 API]는 카카오톡에 메시지 전송 요청을 실행하고, [카카오톡 메시지 API]는 카카오 서버 또는 서비스 클라이언트에 API를 호출한다는 점에서 차이가 있다. 그렇기에 사용 신청 및 검수와 REST API 지원, 메시지 전송 성공 여부에서도 차이가 있는 것을 확인할 수 있다.

 


[짧은 회고]

 

 사실 API에 대해 거의 이해를 하지 못했다. 카카오톡 API도 설명된 내용을 정리하는 수준이다. 데이터..개발.. 아직 나에겐 너무나 어렵다. 읽어도 읽어도 휘발되는 용어들에 둘러 쌓여 있는 느낌이랄까? 이해를 한 것 같았는데 뒤돌아 보고 다시 읽으면 모르곘다^_^... Q&A세션에서 개념에 대해 깊은 질문을 하는 동기분들을 보면 내가 아직 많이 부족하다는 것을 느낀다. (그래서 자꾸 딴 생각하게 되는.. 악순환의 반복) 그래도 따라잡을 수 있도록, 이 시간이 헛되지 않도록 더 노력해야 겠다는 생각이 든다. 아, 그리고 오늘 멘토&멘티 MEET UP이 마음가짐을 다잡는 시간이어서 정말 좋았음! 나도 므찐 사람이 되어야지😎👊🏼


[참고 자료]

 

Kakao Developers

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

developers.kakao.com