brunch

You can make anything
by writing

C.S.Lewis

by AJW Feb 28. 2022

오픈 API의 기능과 구조

코드스테이츠 PMB 8기

오픈 API의 기능과 구조



응용 프로그램들이 서로 상호작용할 수 있도록 도와주는 매개체
- API(Application Programming Interface, 어플리케이션 프로그래밍 인터페이스)


▷API

API


API는 Application Programing Interface라는 용어로써, 어떠한 응용프로그램에서 데이터를 주고 받기 위한 방법을 의미한다. 어떤 특정 사이트에서 특정 데이터를 공유할 경우 어떠한 방식으로 정보를 요청해야 하는지, 그리고 어떠한 데이터를 제공 받을 수 있을지에 대한 규격들을 API라고 하는 것이다.


IT 서비스 내에서 정보의 소통이 일어나는 곳은 서버와 클라이언트 사이다. 서버와 클라이언트가 서로 정보를 어떻게 주고 받을지에 대해서 API의 형태로 미리 정의하고 이를 바탕으로 프론트엔드와 백엔드 개발을 진행하는 것이 일반적이다. 웹 기반 서비스의 경우에는 웹 주소 형식을 통해 정보를 요청하고 전달 받는 방식을 주로 사용한다.



▷Open API

Open API


API는 사용하는 방법과 용도에 따라 오픈 API와 비공개 API 정보가 있다. 오픈 API는 누구나 쉽게 접근하여 정보를 공유할 수 있도록 만들어진 규격이며, 비공개 API는 권한이 있는 일부 사용자들에게만 정보를 제공하기 위해 만들어진 규격이다.


오픈 API를 제공하는 이유는, 자사 서비스의 기능을 다양한 서비스에서 활용할 수 있도록 유도해 서비스의 저변을 넓히는 데 목적이 있다. 특히 메타 서비스를 제공하는 대기업은 시장 확대를 목적으로 오픈 API를 운영하는 경우가 많고, 비영리기관에서는 공공의 목적으로 무료로 API를 제공하는 경우가 있다.



Kakao


Kakao Developers


API 개념 자체는 새로운 형태는 아니지만 클라우드 서비스, 모바일 생태계가 급속도로 발전하면서 기업들의 오픈 API 종류는 지난 10년간 약 30배 이상 늘었다. 구글, 마이크로소프트, IBM, 페이스북 등 글로벌 IT 기업은 일찍부터 자사를 기준으로 한 개발자 생태계를 확고히 하기 위해서 꾸준히 오픈소스 정책을 펼쳐왔다.


국내 IT 대기업 카카오의 경우 ‘Kakao Developers’를 통해 다양한 종류의 API를 제공하며 오픈소스 정책을 확대해 왔다.


API 공개하는 기업의 경우 보유한 데이터의 시스템으로 새로운 수익원을 만들고 오픈 이노베이션 효과를 볼 수 있으며, 소규모 기업에서는 공개된 API를 활용하면 유사 기능을 처음부터 개발하는 비용을 줄일 수 있다는 점에서 활용 가치가 높다.



카카오 API 방향성

카카오 API 방향성



카카오는 카카오 API 플랫폼 ‘Kakao Developers’를 통해 개발자들이 각자의 방식으로 카카오 서비스와 연계하여 더 나은 세상을 창조하고, 공유할 수 있도록 다양한 오픈 API와 개발 도구를 지원하고 있다. 카카오 API 방향성은 ‘상생’, ‘생산성’, ‘가치창출’ 세 가지 단어로 요약할 수 있다.


카오 API 방향성에서 ‘상생’은 수많은 ‘개발자와 함께, 개발자에 의해, 개발자를 위해’ 같이 성장하고 싶다는 바람을 말하며, 개발자가 핵심 로직에 좀 더 집중해 보다 가치 있는 앱을 만들 수 있도록 편리한 환경을 제공함으로써 ‘생산성’ 향상이라는 중요 목표를 달성하는 것이다. 마지막으로 새로운 문화를 개척하고 다양한 부가가치를 창출하는 등 보다 의미 있는 사용자 ‘가치창출’을 만들고자 한다.



카카오 API Product

카카오 API Product


로그인 : 카카오계정과 앱을 연결하고 토큰을 발급받아 카카오 API를 사용할 수 있도록 하는 기능


소셜 : 카카오톡 소셜 API는 카카오 로그인을 도입한 앱에서 사용할 수 있으며, 서비스에 가입한 사용자의 카카오톡 프로필과 친구 정보 제공


메시지 : 카카오톡이 지원되는 환경에서 사용자가 자신 또는 친구에게 카카오톡 메시지를 보내는 기능 지원 (링크 API, 메시지 API)


지도 : 지도 SDK는 카카오맵의 기능을 웹과 앱 플랫폼에서 구현할 수 있도록 다양한 메서드와 라이브러리를 통해 제공


로컬 : 키워드로 특정 장소 정보 조회, 좌표를 주소 또는 행정구역으로 변환하는 등 장소에 대한 정보 제공


내비 : 목적지를 공유하거나 길 안내 기능을 제공. 예상 소요 시간이나 이동 경로와 같은 데이터가 필요할 때는 REST API를 통해 요청 가능


스토리 : 새로운 게시물을 쓰거나 삭제할 때, 사용자 스토리를 불러올 때 등 카카오스토리와 연계된 서비스를 구현할 때 유용한 기능 지원


싱크 : 카카오 로그인에 서비스 약관 동의 기능을 추가 지원해 회원 가입 시 필요한 정보 및 절차들을 모아 간편 회원 가입을 구현하도록 지원


채널 : 서비스에서 간편하게 카카오톡 채널 친구 추가 페이지로 이동하거나 1:1 채팅을 시작할 수 있도록 연결 페이지를 제공


페이 : 실물 카드나 현금 없이도 PC와 모바일 웹, 모바일 앱에서 손쉽게 결제하는 기능 지원


모먼트 : 카카오모먼트 플랫폼의 광고 계정, 캠페인, 광고 그룹, 소재와 관련된 설정 정보 조회 및 성과 지표 확인 기능 지원


키워드광고 : 카카오 키워드광고 플랫폼의 광고 계정, 캠페인, 광고 그룹, 소재와 관련된 설정 정보 조회 및 성과 지표 확인 기능 지원


푸시 알림 : APNs(Apple Push Notification service)와 FCM(Firebase Cloud Messaging)을 활용해 카카오 플랫폼을 통해 푸시 알림 기능 지원


검색 : 웹 문서, 동영상, 이미지, 블로그, 책, 카페를 검색하는 기능 제공. 검색 결과는 JSON 객체로 전달돼 서비스에서 출력하거나 활용 가능


음성 : 사람의 음성 정보를 인식해 문자로 변환하거나, 문자를 음성 정보로 합성하는 기능 지원


비전 : 빠르고 정확하게 이미지 내부 콘텐츠를 분석해서 얼굴, 상품, 성인물 여부, 문자를 판별하고 콘텐츠 중심의 썸네일이나 태그를 생성


포즈 : 분석 딥러닝 모델을 기반으로 이미지나 동영상 속의 사람들을 탐색해 자세를 분석하는 기능 지원


번역 : 현재 입력된 텍스트를 기반으로 언어의 종류를 감지하거나 문장 단위를 뛰어넘어 문맥을 파악하고 문체를 반영해 다양한 언어로 번역



카카오 지도/로컬 API

키워드로 장소 검색


질의어에 매칭된 장소 검색 결과를 지정된 정렬 기준에 따라 제공한다. 현재 위치 좌표, 반경 제한, 정렬 옵션, 페이징 등의 기능으로 원하는 결과에 대해 앱 REST API 키를 헤더에 담아 GET으로 요청한다. 원하는 검색어와 함께 결과 형식 파라미터 값을 선택적으로 추가할 수 있다.


응답은 JSON과 XML 형식을 지원한다. 각 장소 정보는 이름, 주소, 좌표, 카테고리 등 기본 정보와 다양한 부가 정보, 카카오 맵의 장소 상세 페이지로 연결되는 URL을 제공한다.

작가의 이전글 앱의 유형
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari