API의 의미 및 실습

HS K·2023년 2월 7일
0
post-custom-banner

API

둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계 계층을 의미한다.

예를 들자면, A라는 컴퓨터가 요청을 하고 B라는 컴퓨터가 응답을 한다고 했을 때의 어떻게 통신할 것인지, 어떠한 데이터를 주고 받을 건지 등에 대한 방법(HTTP, HTTPS 프로토콜을 사용할 것인지, GET, POST 등의 방식 등..)이 정의된 중계계층. 보통 WEB API를 기준으로 설명된다.

ex) UI

API의 장점

  1. 제공자는 서비스의 중요한 부분을 드러내지 않아도 된다.
    예를 들어 DB 설계 구조나 드러내고 싶지 않은 데이터베이스의 테이블 정보, 서버의 상수값 등을 드러내지 않고 드러내고 싶은 부분만을 드러낼 수 있다.
  1. 사용자는 해당 서비스가 어떻게 구현되는지 알 필요없이 필요한 정보만을 받을 수 있다.

  2. OPEN API의 경우 앱 개발 프로세스를 단순화 시키고 시간과 비용을 절약할 수 있다.

  3. 제공자의 경우 API를 만들게 되면 내부 프로세스가 수정되었을 때 매번 수정하는 것이 아니라, API가 수정이 안되게끔 만들 수 있다.
    또한 내부가 변경이되어도 사용자에게 영향을 주지 않고 변경이 가능하다.

  4. 제공자는 데이터를 한곳에 모을 수 있다.

예를 들어 큰돌예스24라는 책을 파는 쇼핑몰을 만들었다고 하면 해당 사이트에 방문하는 방문자, 어떤 특정한 것을 클릭하는 사용자에 대한 이벤트를 집계하고 싶을 때 해당 API를 만들고 해당 이벤트가 발생하면 해당 API를 호출하게 만들면 해당 데이터를 한 곳에 모을 수 있다.

  1. 제공자의 경우, API를 이용해 제3자가 만들어낸 앱을 통해 데이터를 수집할 수도 있고, 해당 서비스를 확장해 나갈 수 있으며 홍보에도 도움이 된다.

ex) 파파고 :

API의 종류

(1) private : 내부적으로 사용된다. 주로 해시키를 하드코딩해놓고 이를 기반으로 서버와 서버간의 통신한다.
이는 비즈니스 파트너와도 사용될 수 있다. private하게도 해당 파트너와 해시키를 공유해 통신합니다.

  • 데이터를 주고받을때, 해시키가 있어야 데이터를 주고받을 수 있다.

(2) public : 모든 사람이 사용할 수 있다.
많은 트래픽을 방지하기 위해 하루 요청수의 제한, 계정당 몇개 등으로 관리한다.


API실습#1 OPEN API를 이용해 날씨 예측사이트 만들기

  1. fetch를 통해서 open api를 요청한다.

  1. draw
    필요한 데이터는 hourly time과 hourly temperature만 필요하므로 이 두개만 받아온다.
  • 차트를 그려주는 함수

  1. 완성

결론 : html 파일에서 open API를 요청하면 예측값을 가져오고, 그걸 기반으로 차트를 만드는 것이다.


API실습#2 Node.js로 간단한 API만들기 : Nodejs위에 Express를 올려 라우팅 해보기

API의 장점을 구현

제공자의 경우 API를 만들게 되면 내부 프로세스가 수정되었을 때 매번 수정하는 것이 아닌 API가 수정이 안되게끔 만들 수 있다. 또한 내부가 변경이 되어도 사용자에게 영향을 주지 않고 변경이 가능하다.

node.js 설치

Node.js는 비동기적 이벤트 주도 방식, 논블로킹 I/O 모델을 사용하는 구글의 V8 엔진을 장착한 자바스크립트 런타임이다.
※ 런타임이란 프로그램이 실행될 때 그 프로그램이 머무는 공간을 의미한다. 브라우저는 자바스크립트 런타임이기도 하다. (브라우저라는 공간 안에서 자바스크립트로 만든 프로그램을 실행할 수 있기 때문)
따라서 서버뿐만 아니라 게임, 알고리즘 등 여러가지를 실행할 수 있다.

express 모듈 설치

라우팅

URI(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말함.


URI

http:127.0.0.1:3000

프로토콜 : http
IP : 127.0.0.1 (루프백 IP)
포트 : 3000

cf) https는 443이 기본 포트이다.


  1. a.json 파일을 읽고, json.parse를 통해서 object로 변환
  1. json 파일에서 데이터를 꺼내서 데이터를 할당하고 꺼내기
  1. 파일
  1. 결과

  • listen은 서버생성을 의미한다.
profile
주의사항 : 최대한 정확하게 작성하려고 하지만, 틀릴내용이 있을 수도 있으니 유의!
post-custom-banner

0개의 댓글