( 참고 : “FastCampus, 데이터 엔지니어링 올인원” )

[ Data Engineering ]

API (Application Programming Interface)


1. What is API?

API ( Application Programming Interface )

  • “2개의 시스템이 서로 상호 작용하기 위한 Interface”
  • API라고하면 일반적으로 REST API를 의미함

  • ex) 컴퓨터의 “계산기”
    • 과정 1) “5+5”를 입력
    • 과정 2) 해당 데이터는 시스템으로 전송됨
    • 과정 3) 전송된 값을 계산함
    • 과정 4) 나에게 해당 값(=10)을 반환
  • 단지 내 컴퓨터 내에서의 정보 전송말고도, 다른 컴퓨터 간에서의 교환도 가능

    figure2

  • ex) 웹사이트

    • 네이버에 접속하고 싶음. https://naver.com를 입력함

      $\rightarrow$ 웹사이트는 http(s) 프로토콜을 사용하는 API를 기반으로 구축된 것


2. API 접근 권한

그렇다면, 아무나 해당 정보를 받을 수 있나? NO!


Authentication vs Authorization

  • Authentication : Identity가 맞다는 것을 확인
    • ex) 이 사람이 “이승한”이 맞는지 확인
  • Authorization : API를통한 특정 action을 허용
    • ex) “이승한”이 데이터를 불러오기/변경하기 가 가능한지 확인


데이터 보안을 위해, 위와 같이 접근 권한을 제한/부여해야한다.


API Key

데이터를 요청하는 방법? **API Key를 통해 **

  • (일반적으로) request url, 혹은 request 헤더에 포함되는 긴 스트링

  • ex) Google Map

    https://maps.googleapis.com/maps/api/directions/json?origin=Disneyland&destination=Universal+Studios+Hollywood&key=YOUR_API_KEY 에서,

    key=YOUR API KEY에, 발급받은 API KEY를 입력

  • 유효하지 않은 KEY일 경우, 접근 불가!


Basic Auth

위의 Google Map의 경우에는, request url에 해당 key값을 입력했다. 그외의 방법으로도, haader에 넣는 방법이 있다.

Base64라는 인코딩 방식을 사용하여, header에 입력을 해주면 됨!

figure2