관리 메뉴

공부 기록장 💻

[Web/API] API란? 본문

# Tech Studies/Web

[Web/API] API란?

dream_for 2021. 4. 20. 03:08

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 실습/프로젝트 진행하며 읽어볼 참고 자료들

728x90
반응형
Comments