API란?

이예빈·2021년 5월 23일
1

API

목록 보기
1/3

API란 무엇인가?

API: Application Programming Interface
응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스


인터페이스 란 컴퓨터 시스템끼리 정보를 교환하는 공유 경계를 의미한다고 한다.
(TV의 전원을 켜기 위해서 리모콘을 사용한다.
이 때, 사전에 TV와 통신을 하고 TV를 조작하기 위해 신호를 보내도록 만든 장치인 리모컨이 인터페이스 장치이다.
사전에 TV에 정의된 규격에 의해 신호를 서로 주고 받기 위한 방법을 '인터페이스'라 할 수 있겠다.)



API에 대해 조사하며, 적절한 비유를 통해 API가 잘 설명되어 있는 것 같아 다음과 같은 사진을 가져와 보았다.

API는 레스토랑에서 손님 으로부터 주문을 받은 음식요리사 에게 요청을 하여, 완성된 요리를 다시 손님에게 가져다 주는 점원 과도 같은 역할을 한다고 한다.
손님(요청하는 프로그램)이 주문할 수 있도록 메뉴(명령 목록)를 정리하고, 주문(명령)을 받아 요리사(요청받은 응용프로그램)와 상호 작용하여 요청된 메뉴(명령에 대한 값)을 다시 전달한다.



또다른 API의 개념을 설명할 수 있는 예시로는 자판기 가 있다. 이용자는 동전 을 넣고, 자판기로부터 원하는 물건 을 뽑는다. 자판기 관리자 는 열쇠로 자판기를 열고, 물건을 넣고 빼며 자판기를 관리한다.
(이때 자판기 내부의 물건들을 아무나 가져다 사용할 수 없다. 동전(돈)을 넣어야만 물건을 뽑을 수 있다.)

따라서 자판기를 API로, 그리고 동전을 API에 접근하기 위한 인증 토큰(token)으로 비유할 수 있겠다.



따라서 정리하자면...

API란, 어떠한 응용 프로그램(웹 브라우저, 워드 프로세서, 데이터 베이스, 어플리케이션 등)에서 데이터를 전달해주는 방법이다.




API의 역할과 필요성


1. 서버와 데이터베이스의 출입구 역할

데이터 베이스에 담겨 있는 중요한 정보들에 누구나 쉽게 접근해서는 안 된다. API는 허용된 이용자들에게만 일부 데이터에 접근할 수 있도록 권한을 부여해 준다.

2. 모든 접속을 표준화함, 범용적임

API는 기계/운영체제 상관 없이 모든 접속을 표준화하며, 누구에게나 동일한 액세스를 제공한다.

3. 정보 제공 - 공유 경제의 시대

  • 모든 것을 새로 만들지 않아도 된다! API가 사용되는 대표적인 사례로 지도 서비스가 있다. 위치 데이터/지역 정보 등등.. 무수한 정보들을 필요로 하는 지도 서비스를 기업마다 새로 만들어야 한다는 것은 정말로 불편하고 번거로운 일이다. 따라서 누군가가 만든 지도 서비스의 일부만을 사와 이를 활용하여 서비스를 제작하게 되는 것이다.

    -> 대형 플랫폼을 비롯한 기업은 자신의 서비스를 API 형태로 판매한다. (현재는 클라우드를 기반으로 서비스를 판매하고 있다고 한다.)

    • ex) 네이버, 카카오톡, 페이스북의 간편 로그인 API 제공
    • 구글 / 카카오 / 다음 T-map 지도 API

간편 로그인 API의 예시로 velog 회원가입 창을 가져와 보았다.
아래 사진과 같이 github, google, facebook 소셜 계정으로 간편하게 가입이 가능한 것을 확인할 수 있다.
velog에서는 위의 소셜 플랫폼으로부터 제공하는(혹은 판매하는) 간편 로그인/회원가입 API를 사용하고 있음을 알 수 있다.

(나는 github 계정을 통해 velog에 가입했었다. 처음 가입 할 때에는, 깃허브 계정과의 연동 authorization 허가 여부를 물어보는 깃허브 사이트 창이 떴었다. 현재는 이미 연동이 완료된 상태라, 해당 창이 뜨질 않아 사진을 따로 가져오진 못했다. 캡처하려고 했더니만...!
아무튼 github 계정에 로그인이 된 상태에서, velog와의 연동을 수락한다는 버튼을 클릭해야 가입이 완료가 되었던 것 같다.

이렇게 자동 계정 연동 API를 이용하면 여러 소셜 사이트에서 매번 가입을 하고, 아이디나 비밀번호를 까먹어 복잡한 과정을 통해 내 계정을 찾아야 했던 번거로움을 겪지 않아도 된다! 매우매우 간편하다 ~~ :) 보안에 있어서는 조금 주의해야 되겠지만 말이다...! )




API의 유형

API가 제공하는 데이터에 대한 접근성에 따라, 총 3가지 유형으로 나눌 수 있다.

1. private API

내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행하므로 제 3자에게는 노출되지 않는 API이다.

2. public API

개방형 API로, 모두에게 공개된다. 누구나 제한 없이 사용할 수 있다.

3. partner API

데이터 공유에 동의하는 특정인들만 사용할 수 있다. 파트너 회사 간에 소프트웨어를 통합하기 위해 종종 사용된다.



API 사용

예시들

  • 기상청 API
  • 코로나 데이터 API
  • kakao developers에서 제공하는 로그인/소셜/메세지/지도 API
  • google cloud platform에서 사용 가능한 google maps API


open API

국가 또는 공공기관에서 만든 open API 가 존재한다. 누구나 자유롭게 API에 접속하여 데이터를 가져다 사용할 수 있고, 다양한 통계자료/교통/인구 정보 등을 활용하여 유용한 서비스를 개발할 수 있다.
이러한 데이터는 다시 가공, 변형해서 배포하더라도 문제가 없다고 한다.


공공 open API를 활용한 서비스를 가져와 보았다.

코로나 확산이 막 시작되었던 시기에 마스크 재고 부족으로 인해 공적 마스크 대란이 일어난 상황이 문득 떠올랐다.
이러한 대란을 막기 위해 지역별/약국별 마스크 재고 현황을 알려주는 서비스가 빛을 발했었다.


이러한 마스크 알리미 서비스 또한 공공 open API가 제공하는 데이터를 사용하여 개발되었다!



더 찾아보니, <공공데이터 포털> 사이트로부터 제공되는 마스크 판매처/지도 API를 활용한 프로젝트에 대한 글이 있었다. (아래에 링크 첨부)

[Python] 공공api를 활용하여 내 주변 공적 마스크 판매처와 마스크 재고를 지도에 시각화해보자!




[Reference]

API에 대해 조사하며 참고한 자료이다.
앞으로 읽을 글들의 링크도 포함하였다.

API의 개념 관련 참고 자료들


API 실습/프로젝트 진행하며 읽어볼 참고 자료들

0개의 댓글