데이터 분석을 위해선 자료 수집이 우선 되어야 분석진행이 가능하다.
모든 자료를 수기로 만들 수는 없기 때문에 원하는 자료를 불러올 수 있는 기술적 역량이 필요하다.
API는 컴퓨터 프로그램들이 서로 상호작용을 할 수 있도록 하는 인터페이스이다.
여러 유튜브와 코칭 프로그램에서도 '키보드'와 같은 입력장치에 비유하는 것을 볼 수 있다. 우리가 키보드의 esc를 누르면 취소를 하고, 엔터를 누르면 다음으로 진행되는 것처럼, 프로그램 간 소통을 위한 방법을 제시하여 이를 통해 소통하고, 정보를 교환한다고 생각하면 된다.
Instagram API / Facebook API 등은 Instagram과 Facebook 각각의 서버와 소통할 수 있는 인터페이스 역할을 하는 키보드라고 볼 수 있다.
위 이미지와 같이, 클라이언트에서 API를 통해 정보를 요청하고, 서버에서 API를 통해 데이터 정보를 JSON 데이터로 반환해주는 방식이다. 위에서 언급한 키보드와 같이, API를 통해 원하는 정보를 선택해 요청하면 서버에서 반환해주는 프로그램 상에서의 입력과 출력을 생각하면 된다.
누구나 오가면서 사용할 수 있는 자판기로 예를 들었을 때, API는 자판기의 음료수 종류가 보이는 창으로 볼 수 있고, 원하는 음료를 선택하여 버튼을 누르면 자판기(서버)에서 음료수(정보)를 제공하는 방식의 웹 데이터 수집방법이다.
API의 특징은 자판기의 원리와 같이 클라이언트에서는 내부 서버에서 어떤 동작원리로 정보를 제공하는지 볼 수 없다는 점이다.
이는 고객의 편의성, 기업의 기술보안 등 여러가지 이유를 들 수 있다.
Web Browser의 서버에 요청하기 위해 사용되는 API로, 가장 많이 사용된다.
kakao 지도 web API, 네이버 open API, Google API 등 많은 곳에서 API를 통해 서버에 접근 및 요청할 수 있도록 서비스 해놓았다.
WEB의 장점을 가능한 활용하도록 하는 아키텍처의 제약조건을 준수하는 인터페이스이다.
HTTP 단일 프로토콜의 CRUD 메소드만으로 데이터를 요청하며, 그에 대한 표현들을 통일되게 하여 URI의 직관성을 높여 리소스를 한눈에 파악할 수 있도록 한다.
WEB API를 사용하는 클라이언트의 요청부터 REST API로 요청하게 되면 그에 맞는 정보를 서버로부터 받게 된다
위에서 언급해봤던 수많은 WEB API 중 하나이며, 공급자인 Tweeter 측의 허가를 받아 해당 app에서 가진 정보를 사용 가능하다.
python을 이용해 Tweeter API를 이용하기 위해선 Tweeter API 전용 라이브러리인 tweepy를 설치해야 한다.
pip install tweepy
위와 같은 코드를 통해 가상환경 및 로컬환경에 python tweepy package를 설치하면 된다.
import tweepy
import json
api_key = 'API KEY는 공개할 수 없다.'
api_key_secret = 'API KEY는 공개할 수 없다.'
access_token = 'API TOKEN은 공개할 수 없다.'
access_token_secret = 'API TOKEN은 공개할 수 없다.'
auth = tweepy.OAuthHandler(api_key, api_key_secret) # API 키, 비밀키에 연결
auth.set_access_token(access_token, access_token_secret) # 키를 연결한 변수에 토큰 연결
api = tweepy.API(auth) # 최종 API 연결 Method
tweepy와 json을 import 한 뒤, 각 주어진 키와 토큰을 통해 연결을 진행한다.
username = 'kim'
api.user_timeline(username)
위에서 Tweeter API를 연결한 api 변수에 user_timeline을 진행 하면 'kim'이름을 가진 사용자의 무수히 많은 tweet 정보들을 확일 할 수 있다.
절차에 따라 Tweeter API 이용에 대한 허가를 받은 뒤, Tweet 정보를 python을 이용해 불러봤다.
이러듯 API는 허가에 의해 정보 공급자의 데이터를 수집가능한 web data 수집 방법이다.