개발자 페이지
- 많은 기업들의 경우 이와 같이 개발자들이 쉽게 API를 가져다 사용할 수 있도록 개발자 페이지들이 존재합니다.
- 카카오 : https://developers.kakao.com/
네이버 : https://developers.naver.com/main/
구글 : https://developers.google.com/
페이스북 : https://developers.facebook.com/
안드로이드 : https://developer.android.com/?hl=ko
애플 : https://developer.apple.com/kr/
- 이 외에도 개발자 페이지를 제공하는 곳이 있으며, 페이지에 들어가 보시면 사용 방법에 대한 개발 문서를 참고할 수 있습니다.
API란?
- 이제 카카오 API를 활용하여 카카오 사용자 계정 정보를 가져올 일만 남았습니다.
- 그 전에 API가 무엇인지에 대해 간략하게 설명하도록 하겠습니다.
- API : Application Programming Interface
- 즉, 응용 프로그램을 사용할 수 있도록 인터페이스를 제공한다 정도로 생각하시면 될 것 같습니다.
- 우리가 어떠한 기능을 구현하기 위해 혼자 처음부터 작업을 하는 것은 굉장히 어려운 작업일 수 있습니다.
시간과 노력, 지식이 필요한 작업일 수 있으며, 이는 혼자 개발하는 데에 큰 난관으로 다가옵니다.
- 그래서 누군가가 미리 개발해 놓은 기능들을 개발 문서를 보고 가져와서 사용할 수 있게 만들어 놓은 것입니다.
또한 기업 측에서 제공하는 서비스를 이용하여 개발을 하는 경우 당연히 일반 개발자가 기업 서비스에 접근할 수 있는 권한도 없으며 방법도 모를 것입니다.
따라서 기업 측에서도 개발자들이 자사의 서비스를 활용하여 개발할 수 있도록 방법을 마련해주는 것입니다.
- 참고)
API란? https://ko.wikipedia.org/wiki/API
Kakao Developers
- 우리는 카카오 계정을 이용할 것이므로 카카오 개발자 페이지에 들어가보도록 합시다.
- [개발가이드]에 들어갑니다.
- 여러가지 API를 제공하고 있는 것을 볼 수 있습니다.
- [REST API 개발가이드]에 들어갑니다.
REST API란?
- 여기서 잠깐 REST API에 대해 간단히 보고 넘어가도록 합니다.
- REST : Representational State Transfer
- API : Application Programming Interface
- API에 대해서는 위에서 살펴보았으니 REST 영어를 해석하여 봅시다.
Representational : 대표적인
State : 상태
Transfer : 전달
정도로 해석될 수 있을 것 같습니다.
- 해석한 것을 조금 더 풀어써서 '자원(resource)의 대표의 상태를 전달'이라고 말하도록 하겠습니다.
- 먼저, '자원'은 우리가 앞으로 다룰 데이터 또는 그것을 포함하는 시스템 전체를 의미할 수도 있습니다.
여기서는 일단 우리가 앞으로 가져와야할 사용자 계정 이름, 프로필 이미지라고 생각하도록 합시다.
그 자원들은 카카오 서버 어딘가 데이터베이스에 저장을 해놓고 있을 것입니다.
그 서버 데이터베이스를 아무나 접근해서 데이터를 수정할 수 있으면 안 될 것입니다.
그래서 서버는 그 데이터베이스 내부의 자료를 직접 전송하는 것이 아니라 HTML, XML, JSON와 같은 데이터 형태를 통해 제공하게 되고, 사용자들이 접근할 수 있게 되는 것입니다.
참고)
JSON이란? https://ko.wikipedia.org/wiki/JSON
XML이란? https://ko.wikipedia.org/wiki/XML
- '전달'은 방금 말했듯이 사용자가 접근할 수 있도록 전달하는 것입니다.
- '상태'란 만약 우리가 자원을 프로필 이미지를 요청을 했다고 가정했을 때, 그 요청한 시점에서의 프로필 이미지 데이터 상태 정보를 의미하게 됩니다.
- [REST API 개발가이드]에 들어갔을 때, 카카오에서는 다음과 같이 설명하고 있습니다.
본 문서는 카카오 플랫폼 서비스의 다양한 기능을 HTTP 요청으로 활용할 수 있는 REST API에 대해 설명하며
- 따라서 REST를 정리해본다면 우리가 어떠한 자원에 직접 접근하는 것이 아닌 이러한 자원의 대표라고 부를 수 있는 JSON, XML, HTML과 같은 데이터 자원의 위치를 명시해두면(URI: Uniform Resource Identifier) HTTP 상에서의 요청을 통해 접근할 수 있도록 한다는 의미가 되겠습니다.
- 참고)
REST란?
https://ko.wikipedia.org/wiki/REST
REST와 RESTful API :
https://www.a-mean-blog.com/ko/blog/토막글/_/REST와-RESTful-API
REST의 representation이란 무엇인가 :
https://blog.npcode.com/2017/04/03/rest의-representation이란-무엇인가/
URI란?
https://ko.wikipedia.org/wiki/통합_자원_식별자
CRUD란?
https://www.a-mean-blog.com/ko/blog/Node-JS-첫걸음/주소록-만들기/CRUD와-7-Standard-Actions