본문 바로가기
카테고리 없음

API(Application Programming Interface) 알아보기

by 계발자jessie 2023. 5. 6.
반응형

인터페이스(Interface) 란?

사람 대 사람, 사람 대 사물, 사물 대 사물 등 두 개 이상의 상호 간에 소통을 위해 만들어진 접점이다. 예시로, 자동차에게 "열려라~~"라고 아무리 말을 해도 잠긴 자동차 문은 열리지 않는다. 스마트키의 열림 버튼을 누르게 되면 잠긴 문이 열린다. 즉, 여기에서 스마트키가 자동차와 사람 사이의 인터페이스가 된다. 또한 컴퓨터에게 아무리 이런저런 명령을 해도 컴퓨터는 아무 반응이 없다. 마우스로 무언가를 클릭하거나 키보드로 내용을 입력하여야 컴퓨터가 실행되고 이런저런 동작이 진행된다. 여기서 키보드나 마우스 등이 사람과 컴퓨터 사이의 인터페이스인 것이다. 배달앱을 켜고 치킨을 주문하는 상황을 가정했을 때 주문 목록이 보이고, 해당 주문 목록에서 하나를 선택해서 주문을 진행할 것이다. 여기서 주문 목록, 주문하기 버튼 등 앱에 있는 모든 화면들이 인터페이스가 된다. 배달앱 시스템이 앱 화면을 통해 사람과 소통하는 방식이기 때문이다. 이렇게 사용자가 사용하는 인터페이스를 User Interface, 즉 UI라고 부른다. 키보드, 스마트키 등의 인터페이스는 물리적이고 하드웨어적인 UI이고 배달앱과 같은 앱이나 웹의 경우에는 소프트웨어적인 UI라고 할 수 있다. 정리해서 interface는 소통을 위한 접점이고 User Interface는 사용자가 소통을 하기 위한 접점이다. 

 

프론트엔드와 백엔드

기상청에서는 DB서버에 날씨에 대한 정보를 가지고 있다. 그리고 DB서버에 있는 정보들을 다른 애플리케이션에서 가지고 갈 수 있도록 API서버를 통해 제공하고 있다. 그렇게 제공된 정보를 바탕으로 날씨앱에서 활용하여 사용자들이 편하게 볼 수 있도록 UI를 개발할 수 있게 된다. 여기서 정보를 제공하는 DB서버와 API서버를 백엔드, 정보를 화면을 통해 보여주는 날씨앱을 프론트엔드라고 한다. 백엔드는 정보를 제공하는 자로, 서버라고도 한다. 프론트엔드는 정보를 요청하는 자로 클라이언트라고도 한다. 배달앱을 예로 들면 백엔드에서는 가게목록 API, 메뉴 목록 웹 전용 / 모바일 전용 API, 주문 API 등 다양한 API를 개발한다. 프론트엔드에서는 이를 바탕으로 사용자들이 보기 편하게 웹 애플리케이션, 모바일 애플리케이션을 만들어 출시한다. 마케팅 팀에서 양념치킨을 가장 많이 먹는 사람들을 대상으로 한 이벤트를 준비한다고 할 경우 백엔드에서는 양념치킨 통계 API를 만든다. 그리고 나면 프론트엔드에서 이를 바탕으로 화면을 통해 사용자에게 정보를 보이게 한다. 

 

API (Application Programming Interface)란?

안드로이드 운영체제, 윈도우 운영체제 등에서 실행되는 소프트웨어인 응용프로그램에서 소통하기 위한 접점이다. 즉, 애플리케이션에서 데이터를 읽고 쓰는 데 사용하는 인터페이스이다. 예를 들어 우리 동네 날씨앱을 만들고 싶을 때 필요한 데이터는 날씨 정보이다. 이때 기상청 API에 날씨 정보를 요청하고, 날씨에 대한 정보를 응답받아서 이를 날씨앱에 활용할 수 있다. API의 경우 사내에서 관리자화면 등을 만들기 위해 개발하는 경우도 있고, 여러 사람들에게 보여주기 위해 만들어지는 경우도 있다. 여기서 사내에서 보기 위해 만들어지는 API를 Private API라고 부르며 기상청 정보와 같이 다른 사람들이 사용할 수 있도록 제공되는 API를 Public API, 또는 Open API라고 한다. 또한 Open API에는 공공 API, 유튜브 API, 페이스북  API, 인스타  API, 네이버  API, 카카오  API 등 다양한 API들이 제공되고 있다. 이때 제공되는 API는 HTTP API이며, http 프로토콜을 사용해서 소통하는 방식이다. 미세먼지 농도를 감지해서 창문을 열어주는 형태의 IoT 애플리케이션을 만든다고 가정하면 미세먼지 농도 전달 API를 만들고, 창문개방 API를 만들어야 한다. 이 때에는 저사양, 저전력의 환경에 맞는 MQTT, CoAP API 형태로 API를 만들어야 한다.    

 

 

 

출처 : https://www.inflearn.com/course/lecture?courseSlug=%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C-%EB%82%A0%EA%B0%9C%EB%8B%AC%EA%B8%B0&unitId=115162&category=questionDetail 

 

반응형

댓글