API, HTTP API, REST API 차이

Chooooo·2023년 1월 7일
0

먼저 인터페이스란, 사물과 인간 사이의 경계에서 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜을 말한다. 예를 들어 TV 리모콘 전원 버튼은 인터페이스다. 사람이 리모콘 버튼을 눌러 TV가 켜지도록 연결하는 매개체이기 때문이다.

API(Application Programming Interface)

애플리케이션(응용 프로그램)에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 즉, 애플리케이션이 어떤 프로그램이 제공하는 긴으을 사용할 수 있게 만든 매개체다.

🎃 컴퓨터와 인간을 연결시키는 사용자 인터페이스(UI)와 반대로 API는 컴퓨터나 소프트웨어를 서로 연결한다.

서버는 프로그램에게 자신이 제공하고자 하는 데이터나 기능을 제어할 수 있는 API로 만들면, 접근 권한이 있는 프로그래머나 프로그램이 API를 통해 서버에서 제공하는 데이터를 요청해서 사용할 수 있게 된다.

예를 들어, 날씨 정보 앱을 만들려면, 기상청(서버)이 제공하는 API에 원하는 날씨 정보를 요청해 데이터를 받은 다음 UI 형태로를 사용자에게 날씨 정보를 제공할 수 있다. 더 자세히는 기상청이 DB서버에 날씨 정보를 보관해놓고, 다른 응용 프로그램들이 DB서버에서 날씨 데이터를 조회하고 조작할 수 있도록 API를 미리 개발해놓는다.

🎈 API의 한 가지 목적은 서버 시스템이 동작하는 방식에 관한 내부의 프로세스를 숨기는 것으로, 내부의 세세한 부분이 나중에 변경되더라도 프로그래머가 유용하게 사용할 수 있고 일정하게 관리할 수 있는 부분들만 노출시킨다.

🎃 우리가 흔히 쓰는 배달의 민족 앱을 통해 API를 생각해보자.
배달의 민족은 다양한 정보를 조회하고 조작할 수 있도록 다양한 API를 미리 개발해놨다.

ex. 가게목록 조회 API, 주문 API, 메뉴목록 API 등등

그럼 휴대폰에서 배달의 민족 어플리케이션을 실행하면, 이 앱이 메뉴목록 API를 호출해 서버에서 데이터를 가져와 사용자에게 메뉴 목록 정보를 보여줄 수 있게 되는 것이다.

HTTP API란?

HTTP를 사용하여 프로그램끼리 소통하는 API를 말한다. 보통 우리가 흔히 보는 OPEN API, facebook API, kakao API 등의 대부분 API는 HTTP라는 통신 규칙으로 소통하는 API이다.

즉, HTTP API는 HTTP를 사용해서 서로 정해둔 스펙으로 데이터를 주고 받으며 통신하는 것으로 이해하자. (상당히 넓은 의미)

REST API란?

사실상 HTTP API와 REST API는 거의 같은 의미로 사용된다.

디테일하게 들어가면 차이가 있는데, REST API는 HTTP API에 여러가지 제약 조건이 추가된다.
🎃 자원의 식별

🎃 메세지를 통한 리소스 조작

🎃 자기서술적 메세지

🎃 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어

그런데 이런 해당 조건을 지키지 않아도 REST API라고 하기 때문에 HTTP API나 REST API를 거의 같은 의미로 사용하고 있다.

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글