코드스테이츠PMB12기W7D3
며칠 전 코드스테이츠에서 마련한 게더타운 커뮤니티에서 AI, 프론트엔드, 백엔드 등 다양한 분야에서 온 개발자분들을 만날 수 있었다. 한가지 대화 주제가 정해져 있었지만, 개발자분들의 비율이 높아 회사 이야기, 취준한 이야기, 사용하는 프로그램 등으로 대화가 이어졌다. (나는 주로 경청했다) 개발자분들과 대화를 나누면서 손으로는 부지런하게 모르는 단어들을 받아적었다. 개발자분들과 대화를 나눌 때 많이 언급된 단어가 있었다. 바로 'API'다.
위기피디아에 따르면 '응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스'를 의미한다. 음.. 그래서 구체적으로 어떤 기능을 하는 것일까? API에 대한 문서를 찾아보면 API를 은행 창구로 비유하는 것을 볼 수 있다.
은행에서 돈을 인출하기 위해 은행 창구에 갈 때, 신분증 및 관련 문서를 준비하고 기다려야 한다. 창구 직원은 고객의 요청을 받고 신분증 및 문서를 확인한 다음 금고에서 돈을 인출한다. 여기서 창구를 API라고 할 수 있다.
오픈 API는 자신이 가진 기능을 이용할 수 있도록 공개한 프로그래밍 인터페이스이다. 자사의 서비스 기능을 다양한 서비스에서 활용할 수 있도록 하여 서비스의 저변을 넓히려는 목적이 있다. 대기업들이 시장 확대를 목적으로 오픈API를 운영하거나 공공의 목적으로 비영리기관에서 무료로 API를 제공하는 경우가 있다.
'카카오'로 보는 오픈 API
구글에 '카카오API'로 검색하면 kakao developers사이트를 들어갈 수 있다. 카카오API는 크게 소셜/비즈니스/인공지는 세가지 종류가 있다. 예로 들어 카카오 로그인 API의 기능을 살펴보면 다음과 같다.
제공기능
로그인: 카카오계정을 통한 빠르고 간편한 사용자 로그인 기능입니다.
로그아웃: 사용자 토큰을 만료시켜 로그인 상태를 해제합니다.
연결 끊기: 카카오 플랫폼에서 사용자와 앱의 연결을 해제합니다.
토큰 정보 보기: 액세스 토큰(Access token)의 정보와 토큰의 유효기간을 제공합니다.
사용자 정보 가져오기: 사용자 카카오계정에 등록된 정보를 제공합니다.
사용자 정보 저장하기: 사용자 카카오계정에 사용자 정의(Custom)한 서비스 데이터를 저장합니다.
동의 내역 확인하기: 서비스에서 현재 사용 중이거나 사용자가 동의한 동의 항목을 확인합니다.
동의 철회하기: 불필요한 동의 항목에 대해 사용자 동의를 철회합니다.
https://developers.kakao.com/docs/latest/ko/kakaologin/common
자세한 기능 소개는 위 링크에서 확인할 수 있다.
카카오 로그인은 평소 웹사이트를 가입할 때, 아무 생각없이 사용하던 기능이었다. 개발자의 입장에서 정의된 기능으로 다시 바라보니 새롭게 느껴졌다. API는 효율적인 요청-데이터 전달을 가능하게 만든 프로그래밍 인터페이스다. 프로덕트가 돌아가는 원리인 만큼, API와 많이 친해져야겠다는 생각이 든다.