API 란?

gwjeon·2020년 3월 13일
4
post-custom-banner


API란 도대체 무엇인가? API에 대한 나의 생각을 문서화 해보려한다.
API에 대해 알아 보기 전에 우선 UI에 대해 알아보자!


✅ UI(User Interface)

사용자 인터페이스 또는 유저 인터페이스는 사람과 사물 또는 시스템, 특히 기계, 컴퓨터 프로그램 등 사이에서 의사소통을 할 수 있도록 일시적 또는 영구적인 접근을 목적으로 만들어진 물리적, 가상적 매개체를 뜻한다. 사용자 인터페이스는 사람들이 컴퓨터와 상호 작용하는 시스템이다. [위키백과]

UI는 User Interface의 약자이다. 여기서 Interface란 무엇일까? 서로 다른 두 물체간의 접점, 상호작용을 말한다. 즉 UI란 사용자와 시스템간의 인터페이스를 말한다. 예를 들어 우리가 핸드폰을 사용할때 홈 버튼을 눌러 잠금을 풀고 화면을 터치하여 작동을 한다. 여기서 홈 버튼도 UI가 되고 화면 자체도 UI가 될 수 있다. 우리가 컴퓨터를 사용할 때 무엇을 가지고 컴퓨터와 상호작용 하는가? 키보드가 될 수도 있고, 마우스가 될 수도 있다. 이것 역시 UI이다.


✅ API(Application Programming Interface)

API(Application Programming Interface 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. [위키백과]

응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어 할 수 있게 만든 인터페이스를 뜻한다.. 말이 어렵다. 쉽게 풀어보자. API란 Application Programming Interface의 약자이다. 위에서 Interface란 서로 다른 두물체간의 접점, 상호작용을 말한다고 했다. 그렇다면 Application Programming은 뭘까? 응용프로그램을 뜻한다. 즉 API란 내가 만들 응용프로그램에서 사용 할 수 있도록 기타 다른 응용프로그램들을 제어 할 수 있게 하는 것을 말한다.


✔ API의 용도

그렇다면 우리는 왜 API를 사용하는가? API를 사용하면 우리가 제어 하고자 하는 시스템의 환경을 정확히 알지 못하더라도 손 쉽게 제어가 가능하다. UI가 사용자와 시스템의 인터페이스 였다면 API는 시스템과 시스템간의 인터페이스라고 할 수 있다. 여기서 시스템이란 간단한 프로그램이 될 수도 있고 웹브라우저가 될 수도, 운영체제가 될 수도, 하드웨어가 될 수도 있다.


✅ 사용 예시

✔ 브라우저를 제어하는 API

우리가 자바스크립트를 통하여 브라우저를 제어 할때 가장 간단한 예로 alert이 있다. alert은 웹 브라우저에 경고창을 발생시키는 역할을 한다. 이 역시 API이다. 자바스크립트를 통해 브라우저를 제어 할 수 있게 한다. 여기서 한가지 의문이 들지 않나? 그렇다면 어떻게 alert라는 간단한 것 하나 만으로 브라우저에서 경고창을 발생 시킬 수 있을까? 우리가 이 alert 을 이용하여 브라우저에 경고창을 발생 시켰을때 이 브라우저에서 경고창을 어떻게 생성했는지 구성환경은 어떤지 아는가? 경고창의 크기는 얼마인지, 글씨체는 사이즈는 어떻게 되는지, 구성 버튼은 어떻게 만들었는지.. 아마 모를것이다. 또한 브라우저 종류마다 구성 환경이 다 다를 것이다.

이제 위에서 말한 문장을 한번 더 보자!

"API를 사용하면 우리가 제어 하고자 하는 시스템의 환경을 정확히 알지 못하더라도 손 쉽게 제어가 가능하다." 우리는 우리가 제어 하고자하는 경고창의 구성환경을 정확히 알지 못하더라도 손쉽게 제어가 가능하다. 즉 이 역시 시스템(JS)과 시스템(Browser)간 의 인터페이스 인 것이다.


✔ 수에 대한 연산 처리 API

또 이번엔 자바스크립트에서만 생각 해보자. 예를 들어 자바스크립트에서 랜덤한 수를 구하려한다. 이를 위해서는 Math객체를 이용해야 하는데이 역시 API다. 이해가 되는가? JS와 Math객체 간의 인터페이스가 이루어 지는 것이다. (물론 Math 그자체는 JS.) 즉 Math객체를 이용하여 수에 대한 연산을 제어 할수 있게끔 하는 것이다. 이 와 같은 경우를 JavaScript API라고 할 수 있겠다.


✔ Google Font API

더 쉽게 우리가 일반적으로 말하는 API에 대해 생각 해보자. 대표적인 API로 Google Font API가 있다. Google Font API는 구글에서 제공해주는 폰트들을 우리의 HTML 문서에서 제어 할 수 있게끔 해준다. 위에서 말한 내용이 기억이 나는가? "즉 API란 내가 만들 응용프로그램에서 사용 할 수 있도록 기타 다른 응용프로그램들을 제어 할 수 있게 하는 것을 말한다."

위 말을 바꿔보자. "Google Font API란 내가 만들 응용프로그램에서 사용 할 수 있도록 Google 에서 제공하는 Font들을 제어 할 수 있게 하는 것을 말한다." 라고 해석 할 수 있다.

profile
ansuzh
post-custom-banner

4개의 댓글

comment-user-thumbnail
2020년 10월 6일

API를 이해하는데 도움이 되었습니다. 감사합니다!

1개의 답글
comment-user-thumbnail
2021년 5월 21일

멋진 설명입니다.

1개의 답글