[API 와 크롤링]

Arin lee·2025년 1월 2일
0

contetns

  • API 통신의 개념
  • API 통신의 원리
  • python 실습

summary

  1. API 통신의 개념
    ☑️ 개념
    API 는 Application Programming Interface 의 약자로, 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 방식(메커니즘)
    즉, API란 프로그램과 프로그램을 연결시켜주는 통신의 방법.

☑️ 역할 및 특징
🎯 권한 관리

  • 많은 데이터가 적재(저장)되는 DB 에는 모든 사람들이 이 DB에 접근하면 보안상의 이슈가 있을 수 있다. API 는 이를 방지하기 위해 접근이 허용된 로컬에게만 권한을 부여하는 ‘중간관리자’ 역할을 수행.

🎯 프로그램 간 (원활한) 통신 지원

  • API는 자칫 어려운 방식으로 데이터를 수집할 수 있는 부분을 키값을 통해 간편한 통신을 지원합. 해당 키값에는 할당량(호출량)이 부여되고, 경우에 따라서는 할당량을 초과하는 경우 과금되는 경우도 있다.

🎯 접속 표준화

  • DB에 접근하는 요청을 표준화 해준다. 즉, 규칙을 지정해 주는 것.

  • 예시.

    • 1번과 2번 서버에서 매출데이터 최근 1년치 가져와줘
    • 1,2 서버 매출 2023-07-15~2024-07-14 가져와
  • 이 두 문장은 같은 데이터를 의미. 하지만 규칙성이 없어 처리에 어려움이 있다.

  • 따라서 데이터 API 접근시 규칙을 두어주는 것이 되고, 이것이 곧 API 표준화.

  • ☑️ 종류

    API 통신의 종류로는 크게 4가지가 존재. 이는 주로 허용 범위와 관련되어 있다.

    🎯 Public API : 누구나 사용가능한 공개 API
    🎯 Private API : 사내에서 사용하는 API
    🎯 Partner API : 미리 정해놓은 사용자들만 쓰는 API
    🎯 Window API : 운영체제 대상 API

  • ☑️ 데이터 포맷

    API 통신 이후 우리가 보게될 데이터의 형식은 주로 아래 두가지.-> 데이터 프레임으로 저장할예정!

    🎯 JSON: JavaScript Object Notation의 약어로 JavaScript에서 객체를 만들 때 사용하는 표현식. JSON은 웹브라우저상에서 작동하면서 데이터를 저장하거나 전송할 목적으로 디자인된 경량의 DATA 교환형식을 의미. 또한, 그 작성구조가 매우 간단하고 타 프로그래밍언어에 서도 용이하게 작성할 수 있다는 범용성 측면에서 그 강점을 가지고 있다.

    🎯 XML: XML은 EXtensible Markup Language의 줄임말로, 데이터베이스상에서 데이터필드값을 어떤 구조로 배치해 저장할 것인가를 정의. XML에서 <>안에 특정 요소를 넣으면 해당 태그 안의 내용은 데이터베이스의 구조상 해당 요소의 데이터필드값으로 정의가 가능하다는 의미를 가지고 있다.

    🎯 차이점: XML은 태그를 기반으로 데이터값의 구조적 위치를 정의. 반면, JSON은 단순히 중괄호({})에 데이터값을 일렬로 나열 후 각 데이터값마다 comma(,)로 구분을 짓는다.

  1. API 통신의 원리
    ☑️ HTTP API 통신
    🎯 프로토콜(Protocal): 메시지를 주고 받는 양식과 규칙의 체계로, 통신 규약

    프로토콜(규칙) 종류

    이러한 약속으로 인터넷에서는 TCP와 IP라는 프로토콜이 표준으로 사용되고 있다.
    🎯 IP 프로토콜: 한 컴퓨터에 다른 컴퓨터까지 데이터를 전송하기 위한 절차와 방법을 정한 프로토콜
    🎯 TCP 프로토콜: 네트워크의 혼잡도 등을 고려해 데이터의 흐름을 제어하고 데이터가 정확히 도착할 수 있게 하는 절차와 방법을 정한 프로토콜
    -> 즉, 인터넷에서 정확한 목적지에 정확한 데이터를 전달하기 위해 가장 기본적인 프로토콜이 TCP와 IP 프로토콜이 된다.

🎯HTTP 프로토콜: 웹 브라우저로 웹 사이트에 접속할 경우 따르는 규약에 대한 프로토콜

  • 프로토콜 주요 기능
    • 단편화 : 송신 측에서 긴 데이터 블록을 손쉽게 전송할 수 있도록 크기가 똑같은 작은 블록으로 나누어 전송
    • 재합성 : 수신 측에서 쪼개진 작은 데이터 블록을 재합성하여 원래의 메시지로 복원하는 기능
    • 캡슐화: 각 프로토콜에 적합한 데이터 블록을 만들려고 데이터에 정보를 추가하는 기능

🎯 HTTP : Hyper Text Transfer Protocol 의 약자로 웹 환경에서 정보를 주고받기 위한 프로토콜
🎯 HTTP API: HTTP를 이용해 프로그램끼리 소통하는 API로, 우리가 흔히 보는 OPEN API, facebook API, kakao API 등의 대부분 API는 HTTP라는 통신 규칙으로 소통하는 API.
즉, HTTP를 사용해서 서로 정해둔 스펙으로 데이터를 주고 받으며 통신하는 것을 말함.

  • ☑️ REST API 통신 🎯 REST = HTTP를 잘 활용하기 위한 원칙
    🎯 REST API = 이 원칙을 준수해 만든 API

🎯 역사: 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었다. HTTP의 주요 저자 중 한 사람으로 웹(HTTP) 설계의 우수성 대비 활용도가 낮은 점에 기반하여
HTTP의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표.
REST API는 이 원칙을 준수해 만든 API.
네트워크 아키텍처 스타일 = 네트워크 자원을 정의하고 처리하는 방법

🎯 특징: HTTP 통신 프로토콜을 따르면서, 아래 4가지 추가 규약을 따른다. (참고)

  1. 자원의 식별
  2. 메세지를 통한 리소스 조작
  3. 자기서술적 메세지
  4. 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어(HATEOAS)

☑️ API 통신 제반사항
다양한 기업에서 API 통신을 통해 데이터를 제공. 기업은 일부 데이터를 제공함으로써 서비스의 영향력을 키울 수 있어 다소 민감한 정보(고객, 매출)를 제외한 데이터를 제공하는 추이를 보이고 있다.

☑️ python 준비 - Request Library
REST API를 사용하기 위해서는 파이썬에서 requests 라이브러리를 사용.
requests는 python 으로 HTTP 호출시 가장 많이 사용되는 라이브러리.
주요 함수는 아래 4가지가 존재.

  • GET : 요청, 값 가져오기
  • POST : 생성, 액션
  • PUT : 수정, 덮어씌우기
  • DELETE : 삭제
  1. python 실습

key point

  1. API 통신의 개념
    정의: API (Application Programming Interface)는 소프트웨어 간의 통신을 가능하게 하는 메커니즘.

역할:

  • 권한 관리: 데이터 접근을 제한하여 보안 강화.
  • 통신 지원: 키값을 통해 간편한 데이터 통신.
  • 표준화: 데이터 요청을 일관된 방식으로 처리.

종류:

  • Public API: 공개 API
  • Private API: 사내 API
  • Partner API: 특정 사용자 API
  • Window API: 운영체제 API

데이터 포맷:

  • JSON: 경량 데이터 형식, 구조 간단.
  • XML: 태그 기반 데이터 구조 정의.
  1. API 통신의 원리
  • HTTP API: HTTP를 통해 프로그램 간 소통.
  • REST API: HTTP 원칙을 준수하여 만든 API.
  • 특징: 자원 식별, 메시지 조작, 자기서술적 메시지, 하이퍼미디어 사용 (HATEOAS).
  1. API 통신 제반사항
    다양한 기업이 API를 통해 데이터 제공.
    주요 API 제공처: 공공데이터포털, 카카오, 네이버, 구글, Riot, 한국은행.

  2. Python 준비 - Requests Library
    주요 함수:

  • GET: 데이터 요청
  • POST: 데이터 생성
  • PUT: 데이터 수정
  • DELETE: 데이터 삭제
profile
Be DBA

0개의 댓글