Application Programming Interface
위키백과 사전적 정의
- 응용프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스.
Interface
- 상호간의 소통을 위해 만들어진 접점.
- 사람과 사람 뿐 아니라 사물과 사물도 포함.
- 자동차와 사람을 연결하는 차키, 컴퓨터와 사람을 연결하는 키보드, 모니터 같이
User Interface (사용자 인터페이스)
- 보통 앱, 웹의 화면에서 사용자가 사용하는 인터페이스를 UI 이라고 칭한다.
- 일반적으로 IT 업계에서 UI이라고 함은 소프트웨어적 UI 를 말한다.(웹,앱)
그렇다면 API는?
- API는 UI처럼 사용자가 아닌 응용 프로그램에서 소통하기 위한 접점 이다.
- 응용 프로그램은 운영체제에서 실행되는 모든 소프트웨어, 애플리케이션(메신저 앱, 배달앱, 캘린더앱, 엑셀 등)
- API는 애플리케이션에서 데이터를 읽거나 쓰기 위해 사용하는 인터페이스
- 예를 들어 기상청의 API를 가져와서 우리 동네 날씨안내 어플리케이션을 만든다.
- 이런 형식의 API를 HTTP API(미팅 할때 Open API를 말하는 것)
예시문장 ) 클라이 언트가 연령대 별 양념치킨 판매 수량 웹페이지를 요청한다 ->
그럼 백엔드에서 쌓인 데이터에서 통계를 추출하여 프론트 애플리케이션에서 호출 할 수 있도록 API를 개발한다.
그리고 프론트에서 web UI를 만든다.
Private API, Public API
- Private는 사내전용
- Public API는 공개 (Open API)
- Open Api는 공공, 유튜브, 인스타, 네이버, 카카오등 다양하다. 많은 플랫폼에서 자사의 기능이나 데이터를 사용하도록 제공한다.
HTTP API(Open API)
- 이러한 API는 보통 HTTP API라고 말한다.
HTTP?
- 주로 인터넷상에서 데이터를 주고받을 때 사용하는 프로토콜, 소통방법, 통신방법. 통신규약
HTTP 말고는 뭐가 있을까?
- 미세먼지를 측정하고 농도에 따라 창문을 개방하는 IOT를 개발한다?
- 이런 경우에는 소통할수 있는 API를 사용하는데 여기서는 저사양 저전력에 맞는 프로토콜, MQTT, CoAP를 사용한다.
'백엔드' 카테고리의 다른 글
[Backend] Spring boot project DB연결 application.yml (0) | 2024.04.30 |
---|---|
[Backend] Spring boot project -1 (0) | 2024.04.30 |