brunch

You can make anything
by writing

C.S.Lewis

by 프루스트 Aug 10. 2022

카카오톡 간편로그인 가능한 이유, 오픈API 덕분이었어

[코드스테이츠 PMB 13기] 오픈 API 탐색

들어가며

언제부터였을까? 어떤 순간부터 웬만한 서비스에서는 아이디와 패스워드를 직접 입력하는 대신 카카오톡 간편로그인(이하 카카오 로그인)으로 로그인할 수 있게 바뀌었다. 정말 편한 기능이다. 이제 아이디와 패스워드를 까먹을 정도다. 어디에서나 카카오톡 간편로그인이 가능한 이유는 오픈 API라는 것 덕분이었다. 카카오 로그인 오픈 API를 탐색해보고자 한다.




W7D3. 오픈 API 탐색

오픈 API 검색해 기능과 구조 살펴보기


API란


- API애플리케이션 프로그래밍 인터페이스(Application Programming Interface)의 약자로 [앱]을 [프로그래밍] 할 때 쓰이는 [인터페이스]다. 인터페이스는 상호 정보 소통을 돕기 위해 경계에 존재하는 시스템이라고 한다.


- API를 설명한 자료를 찾아보니 은행이나 식당을 예시로 든 경우가 많았다. 예를 들어 식당이라면 손님, 종업원(또는 키오스크), 요리사가 있을 수 있다. 종업원이 손님의 요청 사항을 요리사에게 전달하면 요리사가 음식을 만들고, 종업원은 요리사가 만든 음식을 손님에게 전달하는 역할을 한다. 이때에 종업원이 API의 역할을 한다고 한다.

자료 : 인터넷 자료 토대로 재구성


오픈 API란


- 오픈 API는 말 그대로 공개된, 열린 API를 의미한다. 누구나 볼 수 있게 개방해 놓은 API를 말한다.


API를 오픈하는 이유는? 서비스 저변을 넓히고 시장을 확대하기 위한 목적이 있다고 한다. 특히 구글, 아마존 등 글로벌 기업이 오픈 API의 보편화를 주도했다고 한다.

구글, 아마존 등 글로벌 기업은 자신들의 서비스를 일반 개발자, 타사 등에 개방해 다양한 매시업(Mashup, 별개의 콘텐츠를 조합하여 새로운 콘텐츠를 만들어 내는 것) 서비스가 생겨나게 했고, 이렇게 하는 것이 비즈니스를 더욱 확대하고 수익을 창출하게 되는 계기가 되는 것을 입증했다고 한다.

이외에도 공공의 목적으로 비영리 기관에서 오픈 API를 제공하기도 한다. 대표적으로 날씨 정보, 질병 정보 등이 있다.


- 제목에서 언급한 것처럼 이러한 오픈 API 덕분에 우리는 어떤 사이트를 들어가더라도 카카오 로그인이라는 간단한 과정으로 로그인 할 수 있게 되었다.


1. 오픈 API 서비스


- 국내 포털사이트 : 네이버 디벨로퍼스(https://developers.naver.com/main/), 카카오 디벨로퍼스(https://developers.kakao.com/)

(순서대로) 네이버 디벨로퍼스, 카카오 디벨로퍼스 사이트 캡처


- 해외 대기업 : 구글 클라우드(https://cloud.google.com/apis/docs/overview?hl=ko), 마이크로소프트(https://docs.microsoft.com/ko-kr/rest/api/)

(순서대로) 구글 클라우드, 마이크로소프트 사이트 캡처


공공기관 : 공공데이터포털(https://www.data.go.kr/index.do), 경기데이터드림(https://data.gg.go.kr/portal/intro/apply/selectApplyPage.do)

(순서대로) 공공데이터포털, 경기데이터드림 사이트 캡처

- 이외에도 문화체육관광부 문화데이터광장, 국토교통부 공간정보 오픈플랫폼, 금융감독원 금융감독정보 오픈 API, 한국은행 오픈 API, 대신증권 등이 있다.


자료 : 금융감독원 금융감독정보 오픈 API 페이지 캡처

2. 카카오 로그인 오픈 API 기능 및 구조


- 위에서 언급한 오픈 API 사이트 중에서 특히 카카오 디벨로퍼스가 REST API 구현 방법을 자세히 안내해서 해당 오픈 API 기능 및 구조를 정리하고자 한다.


RESTful API란


- 정리에 앞서 REST API에 대해 설명하고자 한다. 레스트풀(RESTful) API는 자원을 이름으로 구분해서 해당 자원의 상태를 주고받는 방식으로, 자원 자체를 정의하고 자원에 대한 정보 주소를 지정하는 API 대표 방식이다.


- RESTful API의 요청 종류로는 생성(Create), 읽어오기(Read), 변경(Update), 삭제(Delete)가 있으며, 각 요청은 명령을 실행한다.

자료 : 코드스테이츠 자료 토대로 재구성


카카오 로그인 오픈 API


 아래는 REST API를 사용한 카카오 로그인 과정을 나타낸 시퀀스 다이어그램이다. 크게 3개 스텝으로 구성돼 있다.


- 시퀀스 다이어그램은 특정 행동이 어떠한 순서로 어떤 객체(Object)와 어떻게 상호작용하는지를 표현한 다이어그램이다. 각 동작에 참여하는 시스템이나 객체의 수행기간을 확인할 수 있다.


- 카카오 로그인 전체 과정이 복잡해 해당 글에서는 각 스텝의 대표 과정을 중심으로 살펴보고자 한다.


STEP 1. 인가 코드 받기

- URL을 살펴보면 읽어오기 기능을 하는 명령 종류 GET을 확인할 수 있다.


STEP 2. 토큰 받기

- URL을 살펴보면 생성 기능을 하는 명령 종류 POST를 확인할 수 있다.


STEP 3. 사용자 로그인 처리_사용자 정보 가져오기

- 현재 로그인한 사용자의 정보를 불러온다. 이 API는 카카오계정의 기본적인 사용자 정보만 제공한다고 한다. 아래는 요청과 응답, 성공 페이지다.


마치며

앱 다운로드할 때 APK는 들어봤는데 API는 처음 들어봤다. 애플리케이션, 프로그래밍, 인터페이스라는 단어로 이뤄져 있는 API는 전혀 무슨 말인지 유추할 수가 없었다. 애플리케이션? 오 알지! 프로그래밍? 음 세모? 인터페이스? 음...? 사용자 인터페이스(UI)는 들어봤는데요 네.

필수 자료로 제공된 '엄마에게 API를 가르쳐보았다'라는 영상을 보니 API는 쉽게 이해하려면 TV와 시청자 사이를 이어주는 리모컨이라고도 이해할 수 있었다.(코드스테이츠에서 스파르타코딩클럽이 만든 영상을 필수 자료로 제공한 것이 신기했음)

PM은 직접 API를 만들거나 설계하는 경우는 많지 않지만 제품 기능을 이해하고 관리하는 목적에서 자사 제품의 API를 파악하고 분석할 수준을 갖추는 것은 중요하다고 한다. 멘토님께서도 개발 지식은 꾸준히 익혀야 한다고 말한 것을 보면 PM은 정진, 또 정진이다!


참고자료

- <백엔드의 시작 ui & API>, velog minsu8834님, https://velog.io/@minsu8834/%EB%B0%B1%EC%97%94%EB%93%9C%EC%9D%98-%EC%8B%9C%EC%9E%91-ui-API

- 카카오톡 로그인 API 사용하기, TriplexLab, https://triplexlab.tistory.com/55

- [IT 기본 지식] API / 오픈소스는 어떻게 활용하지?, 인천일보아카데미, https://www.icia.co.kr/community/board/view/2/2/74

- 국내 오픈API 사이트 모음입니다., 폴리매쓰인더하우스, https://harrys4th.tistory.com/41

- 엄마에게 API를 가르쳐보았다, 스파르타코딩클럽, https://www.youtube.com/watch?v=uawQC2b0Pqg

매거진의 이전글 앱에는 네 가지 형태가 있다! 앱 개발 시 고려사항
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari