API ?

qoqo_mi·2022년 5월 16일
0

TIL

목록 보기
2/8

API 개념(Application Programming Interface)

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.


인터페이스는 뭘까 (GUI,CLI)

인터페이스(Interface) 는 서로 다른 두 개의 시스템, 장치 사이에 정보나 신호를 주고받는 경우의 접점이나 경계면을 뜻한다. 즉, 사용자 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다.

GUI (그래픽 사용자 인터페이스,Graphic User Interface) 는 사용자와 기계나 시스템 같은 사물을 소통하는데 도움을 주는 매개체이다. 가장 많이 드는 예시로 스마트폰의 홈 버튼이나 전원 버튼이다. (홈 버튼을 누르면 바탕화면으로 한 번에 이동하고 기기에 따라 두 번 누르면 열린 앱들을 볼 수 있게 되어 있기도 하다. 이 경우 홈 버튼은 UI 이다. 물론 홈 버튼도 기기의 일부이긴 하지만 어쨌든 스마트폰과 사용자를 이어주는 매개체이다.)

CLI(명령줄 인터페이스,Command Line Interface) 도 역시 인터페이스이다. 말 그대로 명령줄을 이용하여 컴퓨터와 상호작용할 수 있다. 예시로 맥북에 터미널로 작업하는 경우와 같다. 원래 CLI에서 GUI로 발전시켜진 것이니 GUI는 CUI로 구현할 수 있다.

그럼 GUI만 사용하면 되는거 아닐까 ?

하지만 일상에 GUI를 많이 사용하지만 CLI는 없어지지 않는다 . 그 이유는 AWS의 클라우드 컴퓨팅처럼 대량의 서버 컴퓨터를 설치해야 하는 경우가 대표적이다. 즉, 서버배포가 목적인 경우 GUI는 필요하지 않다. (하나의 데이터센터에는 최소 5만개 이상의 서버 컴퓨터가 설치되는데 이 많은 컴퓨터를 GUI에 적용하기란 불가능하기때문에 CLI를 사용할 수 밖에 없다. )

두 경우의 공통점은 어떤 사물(스마트폰,컴퓨터,인터넷 등) 사용자 사이를 이어주는 은행창구 같다는 점 이다.


그래서 결국 API는 뭐야 ?

이렇듯 API 는 은행 창구라고 생각해보면 된다. 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만드는 체계이다. 즉, 프로그램과 프로그램을 이어주는 매개체 그 자체의 의미이다.


API 예시

어떻게 사용하는지 예를 들어봅시다. 아래는 OpenAP이며 ‘구’별로 실시간 미세먼지의 농도를 알 수 있다.

(처음 틀었을때는 뭐라는지 모르겠는 코드가 나오는데 ‘Json view’라는 개발자도구를 받아보면 좀 더 정리된 코드를 볼 수 있다.)

서울시 미세먼지 농도를 나타내는 OpenAPI

http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99

Jsonview-openAPI를 좀 더 보기쉽게 만들어주는 개발도구

https://chrome.google.com/webstore/detail/jsonview/gmegofmjomhknnokphhckolhcffdaihd?hl=ko
Open API를 사용하면 이러한 화면을 가지게 된다. 개발자들은 이 API를 불러서 사용할 때(코드로 API를 가져다 쓸 때) 호출(call)한다고 한다.

이 모든것을 다 사용하는 것이 아니라 결국 목적은 사용하고 싶은 부분만 활용하는 것이며 내부의 세세한 부분이 나중에 변경되더라도 프로그래머가 유용하게 사용할 수 있고 관리하는 일정부분만 노출시킨다.

API는 특정 시스템용으로 커스텀하게 빌드될 수 있고, 수많은 시스템 간 공유가 되는 표준일 수 있다.

아래는 서울시 openApi를 call해서 실시간 미세먼지 상태를 나타내는 연습을 한 것이다.

참고

https://dev-dain.tistory.com/50

https://ko.wikipedia.org/wiki/API

0개의 댓글