두 컴퓨터 사이의 서로 통신하는 방법이자 그들의 중간에 위치한 중계계층
프로토콜(HTTP, HTTPS), 메서드(GET, POST), 데이터 타입(JSON, XML)이 정의된 중계계층이다.
API는 과거부터 발전되어온 용어로 라이브러리 및 프레임워크를 설명하는 명세서, 웹상에서 WEB API, Web Socket API 등을 가리키는데 현재는 보통 WEB API를 기준으로 설명한다.
인터페이스
서로 다른 두 시스템, 장치 사이에서 정보나 신호를 주고받는 접점 또는 경계면이다. 컴퓨터의 내부 서버가 어떻게 구현되어있는지는 상관없이 인터페이스를 통해 통신이 가능하다.
사용자 인터페이스는 컴퓨터와 사람을 연결한다. 서로 어떤 시스템인지 내부적으로 몰라도 상호작용이 가능하다.
i.e. 웹툰의 서버와 데이터베이스가 어떻게 구성되어있는지 몰라도 웹툰 서비스를 이용할 수 있다.
내부적으로 사용된다. 주로 해시키를 하드코딩 해놓고 이를 공유하며 통신한다.
모든 사람이 사용할 수 있다. 많은 트래픽을 방지하기 위해 하루 요청수의 제한 등이 되어있다.
API v1, v2 버전 나뉘어있는 이유?
업데이트를 하다보면 필연적으로 API를 변경해야 하는 순간이 옴. 이전 API가 엮여있는 서비스가 너무 많기 때문에 곧바로 새로운 API 주소를 변경해서 적용할 수 없음. 이 때 새로 변경된 API를 v2라고 하고 앞으로는 v2를 사용하도록 하고, 기존 서비스는 이전 버전의 v1의 사용 기한을 정해놓음.
JavaScript 비동기적 이벤트 주도 방식, 논블로킹 I/O 모델을 사용하는 구글의 V8엔진을 장착한 JavaScript 런타임이다. Node.js를 사용해서 게임, 알고리즘, 서버 등을 만들 수 있다.
Node.js에서 동작하는 웹 프레임워크이다. 라우팅 설정, 미들웨어 설정, 정적자원서버 설정 등이 쉽다.
라우팅
URI 및 HTTP 메서드를 가진 엔드포인트에 대한 클라이언트 요청에 앱이 응답하는 방법을 결정하는 것