Doby's Lab

[자바스크립트/JavaScript #2] API는 무엇인가? 본문

카테고리 없음

[자바스크립트/JavaScript #2] API는 무엇인가?

도비(Doby) 2021. 7. 27. 18:34

API라는 개념은 어느 정도 알고 있었지만 API를 사용하여 프로젝트를 해본 경험도 없었다.
차후에 프로젝트를 할 때 짚고 넘어가야 할 문제라고 생각하고 JavaScript를 공부하다가
API가 등장한 것이다.
내가 알고있던 API의 개념과는 달라서 크게 혼동이 와서
간단하게 API를 짚고 넘어가고자 한다.


API(Application Programming Interface)란?

Interface의 뜻은 어떠한 것을 조작하기 위한 물건이라고 생각을 하면 된다.
우리가 사용하는 키보드, 마우스 등 이러한 것들은 human interface라고 불린다.
즉, 사람들을 위한 것이다.

또 하나의 예시로 오디오 인터페이스가 있다.
음악을 작업하는 사람이나 작업을 함에 있어서 오디오가 중요시 되는 사람들은
오디오 인터페이스의 존재를 한 번쯤 들어보았을 것이다.
이 또한 말 그대로 오디오를 조작하기 위한 것으로 해석할 수 있다.
(오디오 인터페이스로 악기의 입출력이나 스피커의 마스터 볼륨 등 여러가지를 조절할 수 있다.)

그렇다면 Programming Interface란 프로그래밍을 하기 위해 조작하는 것이라 생각하며
이는 Application을 위함인 것을 알 수 있다.

API를 단어의 해석 관점에서 바라보았다.

API가 하는 일은 무엇일까?

예를 들어 자판기가 있고, 자판기에 있는 음료를 마시고 싶다고 가정하자.
우리는 자판기에 돈을 넣고 해당하는 음료의 버튼을 눌러 음료를 마실 수 있다.
여기서 우리는 자판기에서 음료가 나올 수 있는 과정과 원리를 몰라도 음료를 마실 수 있다.
API의 원리도 이와 같다.

각 지역의 미세먼지의 농도를 제공하는 프로그램을 만들고 싶다고 하자.
1. 사람들이 볼 수 있게끔 프로그램을 만들고
2. 미세먼지에 관한 데이터를 제공하는 사이트(프로그램)에서 API를 가져온다.
(해당하는 사이트에서 api를 제공하고 있어야 한다.)

여기서 알 수 있는 것은 미세먼지의 농도를 알려주는 프로그램을 만들면서
미세먼지를 측정하는 프로그램을 작성할 필요 없이
단순히 API를 가져와 사용하는 것으로 편리하게 작성할 수 있다.
여기서 궁금한 게 하나 생긴다.


API를 왜 제공해주는 걸까? (API의 종류)

API는 크게 2가지로 나뉜다고 볼 수 있다.

  • Public API

publilc API란 모든 사람들에게 공개되어 있는 API로 누구나 사용 할 수 있음을 의미한다.
API를 제공함으로써 그 기업에 대한 브랜드 인지도를 높이고,
API를 가져와 작성하는 프로그램에 해당하는 기업은 편리하게 작업을 하여
서로 윈윈하는 구조를 지니게 된다.

  • Private API

private API란 회사 내부 자체 서비스를 개발하기 위해 사용되어 외부로 노출되지 않는다.
내부 개발자들 간의 코드를 작성하는 방법이 표준화되어 있어서 간단한 프로세스를 지닌다.


Array API???

API의 기본 개념에 대해 설명을 해보았다.
하지만 이 글을 작성하게 된 건 자바스크립트를 공부하다가
Array에 관한 API가 나오길래 내가 알던 API의 개념과는 달라서 글을 작성하게 되었다.
서버의 개념이 들어가야만 API가 성립이 되는 것인 줄 알았다.
(서버의 개념이 들어가 있는 것일 수도 있다. 아시는 분은 댓글 부탁드립니다😂)

API의 개념을 위에서 정리한 것과 같이 생각해보면
Array라는 object를 사용함에 있어서 편리함을 주는 Interface
programming을 위한 것이기도 하기에 API라고 볼 수 있는 거 같다.
array의 API를 사용하여 해당 API에 마우스를 대고 ctrl을 눌러 클릭하면
다음과 같이 array에 관한 Interface 사용법이 나와있는 것을 볼 수 있다.

interface Array<T> {
    /**
     * Gets or sets the length of the array. This is a number one higher than the highest index in the array.
     */
    length: number;
    /**
     * Returns a string representation of an array.
     */
    toString(): string;
    /**
     * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.
     */
    toLocaleString(): string;
.
.
.

너무 길어 일부분 생략했지만 처음엔 이걸 어떻게 사용하지가 막막했다.
Interface 읽는 방법도 공부해봐야 할 거 같다😂😂
그래도 알아두면 편한 것이기에 꼭 공부해봐야 한다..


정리

API란 코드를 작성하기에도 프로그램을 만들기에도 도움을 주는 것이라 생각을 하는 것이 편한 거 같다.
(서버와 데이터베이스의 출입구이기도 하고, 여튼 도움이 되는 거라고 생각하면 편하다..)

단어의 의미 관점에서 보는 게 해석에 도움이 된다.
Application Programming Interface

+
차후에 Web API에 대해서도 다루어보겠다.
(REST API나 기타 등등 API에 대해 세부적으로)