brunch

You can make anything
by writing

C.S.Lewis

by 서경 Sep 08. 2022

카카오가 오픈한 API, 카카오 로그인

[코드스테이츠 PMB 12] 오픈 API에 대하여 알아보자


인턴 과제로 '로그인 페이지 기획'을 한 적이 있다. 당시 나는 유저가 겪는 pain point가 회원가입/로그인 자체에 대한 허들이 높다는 것을 문제로 삼았고, 소셜 로그인 선호 비율과 많이 사용되는 소셜 로그인을 근거로 로그인 페이지를 제안했었다.


그때는 하나의 페이지에 불과했으나, 최근 사이드 프로젝트로 진짜(그렇다고 기존에 했던 게 가짜란 말은 아니고 내 손으로 결과물을 만들어 낸다는 의미) 로그인 페이지를 만들어야 할 상황이 오니 생각보다 공부해야 할 부분이 많았다. 팀원들과 네이버와 카카오 소셜 로그인을 두고 어떤 게 더 편할지에 대한 토론도 했었다. 결국 우리는 모종의 이유로 카카오 소셜 로그인을 선택했는데, 카카오가 제공하는 '소셜 로그인' 과연 무엇일까? 오픈 API의 개념부터 함께 살펴보자.




1. API, Open API 개념 알아보기


비전공자를 위한 IT 지식 표지에 이런 말이 있다. 'API가 뭔가요?' 수업을 듣기 전의 나는 API에 대해서 굉장히 모호한 지식을 가지고 있었다. 뜬구름 비슷한 느낌. 그러니 우선 정의하고 지나가자.


API란?
- Application Programming Interface (애플리케이션 프로그램 인터페이스)
- 상호 정보 소통을 돕기 위해 그 경계에 존재하는 시스템을 의미
- 서버와 클라이언트가 정보를 주고받는 방법에 대해 API의 형태로 미리 정의 (API문서)
- 이를 토대로 프론트엔드와 백엔드 개발을 진행하는 것이 일반적임


우리 개발자님의 말을 빌리자면 'API 스펙을 정하고 갑시다.'로 회의에서 개발자분들 간의 의견 조율이 있었다. 백엔드에서 서버를 띄우고 API스펙을 정해서 모두가 함께 이야기할 수 있는 '공용어'를 만드는 과정이라고 생각된다.


Open API란?
- 하나의 웹 사이트에서 자신이 가진 기능을 이용할 수 있도록 공개한 것
- 자사의 서비스를 다양한 분야에서 활용할 수 있도록 만들어 저변을 넓힐 목적
- 공공 목적으로 비영리기관에서 무료로 API를 제공하기도 함


우리 회사가 만든 API를 모두가 사용할 수 있도록 공개한다면? Open API인 것. 대기업 및 공공 기관에서 서비스를 찾아볼 수 있다. 별도의 개발자 홈페이지를 만들어 자세한 안내를 하고 있는 점을 알 수 있다. 오늘은 그중에서 소셜 로그인 기능을 위한 카카오의 Open API를 알아보고자 한다.




2. 카카오 소셜 로그인 Open API 알아보기



현재 카카오는 3가지 분류의 Open API를 제공하고 있다.


1) 소셜 통합 API

- 카카오 로그인

- 카카오톡 소셜

- 메시지

- 지도/로컬

- 카카오 내비

- 카카오스토리


2) 비즈니스 API

- 카카오 싱크 (가입부터 카카오톡 채널 추가까지 다루는 간편 가입 기능)

- 카카오톡 채널

- 카카오 페이

- 카카오 모먼트 (카카오 모먼트 집행 광고 관리)

- 카카오 키워드 광고 (카카오 키워드 광고에서 집행되는 광고 정보 관리)

- 푸시 알림 (별도 푸시 서버 없이 유저에게 알림 전달 가능)


3) 인공지능 API

- 검색

- 음성

- 비전 (이미지 정보를 분석하여 이미지 활용 도움)

- 포즈 (이미지와 영상에서 사람들을 탐색 및 자세 분석 기능)

- 번역


이 중에서 나에게 필요한 건 카카오 로그인 Open API!


[주요 특징]
- 카카오톡 사용자는 카카오 로그인을 통해 서비스에 쉽고 빠르게 로그인 가능
- 카카오톡 닉네임, 프로필 사진, 이메일, 성별, 연령대 등 사용자 정보 기반 개인화 가능
(개인 동의 하에 얻는 사용자 정보)


[제공 기능]

- 로그인: 카카오계정을 통한 빠르고 간편한 사용자 로그인 기능
- 로그아웃: 사용자 토큰을 만료시켜 로그인 상태를 해제
- 연결 끊기: 카카오 플랫폼에서 사용자와 앱의 연결을 해제
- 토큰 정보 보기: 액세스 토큰(Access token)의 정보와 토큰의 유효기간을 제공
- 사용자 정보 가져오기: 사용자 카카오계정에 등록된 정보를 제공
- 사용자 정보 저장하기: 사용자 카카오계정에 사용자 정의(Custom)한 서비스 데이터를 저장
- 동의 내역 확인하기: 서비스에서 현재 사용 중이거나 사용자가 동의한 동의 항목을 확인
- 동의 철회하기: 불필요한 동의 항목에 대해 사용자 동의를 철회

 


내용이 참 복잡하다. 그래서 카카오도 그림을 그려서 설명해주고 있다. 요지는 사용자가 서비스(우리의 사이드 프로젝트)에 카카오 로그인을 요청할 경우 우리 서비스와 카카오 플랫폼 사이에서 코드와 토큰을 통해 사용자를 구별하고 확인해주는 과정을 거친다는 것이다. 별도의 로그인 페이지/회원가입 서비스를 제공할 필요 없이 비교적 간단하게 서비스에 대한 허들을 낮출 수 있다는 점에서 큰 장점이라고 생각한다.






#코드스테이츠 #PM부트캠프


[출처]

https://developers.kakao.com/

https://aws.amazon.com/ko/what-is/api/

https://www.sejong.go.kr/stat/content.do?key=1911210372903


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari