본문 바로가기

Programming/TIL

API [Application Programming Interface]

[날씨 API]

 

오늘은 그동안 학습한 개념들을 종합해서 활용해야하는 fetch API를 통한 날씨 앱 만들기를 해봤다.

API = Application Programing Interface

먼저, API 가 무엇인지 위키백과에서 정의는 아래와 같다.

 

API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

 

즉, API는, 특정 데이터를 송수신 하는 방법을 얘기를 하는 것이다.

 

또는, 어떤 특정 사이트에서 특정 데이터를 공유할 경우 어떠한 방식으로 정보를 요청해야 하는지, 그리고 어떠한 데이터를 제공 받을 수 있을지에 대한 규격들을 API라고 한다.

 

그렇다면 특정 정보를 요청하는 사람제공해주는 주체가 있을 것이다.

 

예를 들어 :

  • 여러 도시의 날씨 정보들을 갖고 있는 기상청이 날씨 정보를 제공해주는 서버 주체가 될 것이고,
  • 이 정보들을 제공 받아서 유저들에게 보여줄 날씨 앱이 클라이언트가 되는 것이다.

 

그러나 만약 서버가 어떻게 구성되어있는지 모른다면, 클라이언트는 어떻게 자원을 확인할 수 있을까?

  • 바로 이 API를 통해 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공해줘야 한다.
  • 인터페이스 (Interface) : 

 

인터페이스 (Interface)는 컴퓨터 시스템끼리 정보를 교환하는 공유 경계를 의미한다, 터치 스크린과 같은 일부 컴퓨터 하드웨어 장치들은 인터페이스를 통해 데이터를 송수신 할 수 있으며, 마우스나 마이크론 폰과 같은 장치들은 오직 시스템에 데이터를 전송만 하는 인터페이스를 제공한다.

Open API와 API 키

한번 쯤은 '공공 데이터 포털'이란 말을 들어봤을 것이다.

 

이곳은 정부가 Open API 형태로 공공데이터에 접근할 수 있도록 해주고 있다.

링크에 들어가서 원하는 키워드를 치면 해당 키워드와 관련된 API들을 확인할 수가 있다.

  • 오늘 사용해본 날씨 Open API : OpenWeatherMap
  • 위 Open API 리소스를 사용하는 이유 :
  1. 제한적이지만 무료로 날씨 API를 사용할 수 있다.
  2. 프리 플랜에서는 기본적으로 분당 60번, 달마다 1백 번 호출이 가능하다.
  3. 이미 잘 알고있는 JSON 형태로 응답을 받을 수가 있다.

서버는 데이터를 그냥 제공해주지 않는다.

그리고 서버는 아무에게나 아무런 이유 없이 주지 않는다.

이런 이유로 우리는 API를 이용하기 위해 API Key가 있어야 한다.

 

API Key :

 

  1. 말 그대로 서버의 문을 여는 열쇠를 의미하며,
  2. 회원가입과 같은 방법을 이용해 자원에 접근할 수 있는 권한을 API Key의 형태로 제공해준다.
  • API Key는 API 사용에 대한 특별 권한으로, 암호처럼 취급되어야 한다.

서버에 HTTP 요청하는 방법

  • HTTP 요청은 아래처럼 fetch API로 한다.
fetch('<http://서버주소/weather?q=Seoul>') 
	.then(function(resp) { // 응답 형식에 따라 resp.text() 가 될 수도 있다 
		return resp.json(); })
	.then(function(json) { console.log(json); // { tempature: 27 } });
  • 다양한 API를 더 사용해보고 싶다면 API Store가 있다.

'Programming > TIL' 카테고리의 다른 글

Arrow Function  (0) 2020.12.01
Node.js Related Tools  (0) 2020.11.30
비동기 호출 Asynchronous  (0) 2020.11.17
유효성 검사 [Validation Check]  (0) 2020.11.13
정규표현식 RegExp  (0) 2020.11.11