API란?

jae_s_a·2022년 9월 25일
0

WEB

목록 보기
3/3
post-thumbnail

API란?

  • "API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다." - 위키백과

    *인터페이스는 말 그대로 어떤 기계간의 장치끼리 정보를 교환하기 위한 수단이나, 방법을 의미한다.
    예를 들어, TV를 켜기 위해서 리모콘 전원 버튼을 누름으로써 TV가 켜지게 된다. 즉, 사전에 TV와 통신을 하기 위해 리모콘에서는 TV에 정의된 규격에 의해 어떤 신호를 보낼 수 있도록 만들어진 장치이며, 이러한 신호를 서로 주고 받기 위한 방법을 인터페이스라고 한다.

API의 예시와 개념

  • API를 레스토랑에 빗대어 표현하기도 한다.

    1. 손님(내가 만드는 프로그램)이 자리에 앉아 웨이터(API)에게 주문을 한다.
    2. 웨이터는 내 주문 내역을 주방(API 제공자. 기상청, 공공포탈 등)에 갖다준다.
    3. 주방에서 요리를 해 웨이터에게 주면 웨이터가 다시 나에게 음식을 가져다준다.

    즉, 웨이터가 손님의 주문을 주방으로 전달하는 매개체 역할을 하는 것이다.

여기서 손님은 주방에서 무슨 일이 일어나는지 잘 모른다. 대개는 관심도 없으며 관심을 가질 필요도 딱히 없다. 이것이 API의 장점이다.

내가 가져다쓰려는 API의 기능을 어떻게 구현하는지 몰라도 되고 난 그저 API가 갖다주는 걸 사용만 하면 된다(식사한다)는 것이다. 시간과 노력을 동시에 아낄 수 있다.
이처럼 API는 처음부터 개발하거나 유지 보수할 필요가 없는 외부 데이터와 기능에 접속할 수 있게 해준다.

또 다른 예시로, 동대문에서 옷을 떼다 온라인으로 팔려고 한다.

그런데 내가 결제 시스템을 알 필요가 있을까?

물론 결제 시스템을 직접 만들 수도 있겠지만 시간도 오래 걸리고 정작 옷을 파는 본업에 집중하지 못할 수도 있다.
게다가 내가 만든 결제 시스템에 오류라도 난다면 당장 고쳐야 한다.
점점 옷을 팔아 매출을 내는 사업가라는 일과는 멀어지고 개발자화되어가는 모습이다.
이런 상황이라면 결제 시스템 API를 제공자에게서 받아서 내 사이트에 넣는 것이 훨씬 현명한 일일 것이다.

정리해보자면 API는 어떠한 응용프로그램에서 데이터를 주고 받기 위한 방법을 의미한다.

  • 어떤 특정 사이트에서 특정 데이터를 공유할 경우 어떠한 방식으로 정보를 요청해야 하는지
  • 어떠한 데이터를 제공 받을 수 있을지

API의 예시

API는 처음에 설명했듯이 "API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스"를 뜻한다.

지금까지 예시로 든 걸 토대로 API에 대한 정의를 다시하면 *데이터를 주고 받기 위한 방법과 그 규격이라고 할 수 있다

여기서 말하는 *데이터는 환율 정보, 미세먼지 정보, 날씨 정보, 책 정보 등 API 제공자들이 제공해주는 정보를 말한다.

그런데 API는 용도에 따라 Public API, Private API, Partner API로 나눌 수 있다.

  • Public API는 한 번 쯤 들어본 Open API로 말 그대로 누구나 쉽게 접근하여 정보를 공유하기 위해 만들어진 규격
    • 공공 포탈이 아니더라도 개발자 등록을 하고 키를 받아서 얼마간 무료로 쓸 수 있는 건 거의 다 public이라고 보면 된다.
  • Private API는 API 제공자가 API를 공개하지 않은 것으로 일부 사용자들에게만 정보를 제공하기 위해 만들어진 규격

보통 API 제공자들은 DB, 기능을 모듈화해서 인증받은 사용자(개발자 키가 있는 사람들)에게 규격화된 명령으로 데이터를 가져갈 수 있게 한다.

이 API는 공짜 음식일 때도 있고 일정량 이상(예를 들어 한 접시 이상)을 먹으면 돈을 내야 하는 음식일 때도 있다.
보통은 무료인데 일정 횟수 이상 호출하게 되면 지불해야 될 수도 있다.

Q> 정보를 가지고 있는 입장에서, 남들에게 정보를 제공하기 위해서 별도의 규격을 만들어야하고, 그 규격에 대한 설명 문서도 만들어야 하는데 왜 이런 API를 공개적으로 제공해주는가?
A> 대형 플랫폼에서는 대부분 간편 로그인 API 정보를 제공하고 있다. 간편 로그인 API의 목적은 사용자가 여러 사이트를 하나식 가입하다보면, 너무 많은 사이트에 가입해야하는 단점이 있으니, 누구나 사용하고 있는 대형 플랫폼의 가입정보를 공유함으로써 간편하게 회원가입을 할 수 있도록 설계된 API이다.
만약 카카오톡 간편 로그인 기능을 통해 여러 사이트를 가입했다고 가정했을 때, 카카오톡을 탈퇴하고 싶은 마음이 생겼다 하더라도 카카오톡을 탈퇴하는 순간 카카오톡을 통해 가입했던 수 많은 사이트 또한 포기해야되는 상황이 발생하게 된다. +
즉, 간편 로그인 기능을 제공함으로써 플랫폼 이탈율을 현저히 줄일 수 있기 때문에 대형 플랫폼들은 간편 로그인 기능을 제공하고 있다고 한다.
[참고] https://steemit.com/kr/@yahweh87/it-api


API의 사용

우리는 이미 API 쓰고 있다면 믿겠는가?

만약 아래와 같은 코드를 짰다고 가정해보자.

alert('Hello World!');

이걸 실행하면 경고창으로 'Hello World!'가 출력될 것이다.
이 때 이 경고창의 규격(크기, 닫기 버튼, 위치 선정 등)은 다 브라우저에서 제공해준 것이고, 내용만 우리가 지정한 'Hello World!'이 된다.

즉, 우리는 웹 API를 이미 쓰고 있는 것이다.
우리가 매일같이 코딩하면서 쓰는 함수들 거의 전부가 API라고 해도 과언이 아니다.


[참고]

봐도봐도 모르겠는 API 개념 설명 (Application Programming Interface)

profile
if not now, when

0개의 댓글