2023년 1월 1일
08:00 AM

최근 글 👑

API(Application Programming Interface)란?

2023. 10. 5. 15:17ㆍ[개발 지식]/배경지식

API를 본격적으로 알아보기 전에, 식당으로 예로 들어보자. 손님은 점원이 가져다준 메뉴판을 보면서 음식을 고르면, 점원이 주문을 받아 요리사에 요청을 한다. 그러면 요리사는 음식을 만들어 점원에게 주고, 손님은 점원이 가져다준 음식을 먹는다.

 

여기서 점원의 역할이 API의 역할이다. 점원은 손님에게 메뉴를 알려주고, 주방에 주문받은 요리를 요청한다. 그다음 주방에서 완성된 요리를 손님에게 다시 전달한다. API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받으면 요리사(응용프로그램)와 상호작용하여 요청된 메뉴(명령에 대한 값)를 전달한다. 쉽게 말해, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다. 

API란?

API는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)를 나타내고, 애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트를 말한다. 주로 파일제어, 화상 처리, 문자 제어, 창 제어 등을 위한 인터페이스를 제공한다. API를 사용하면 구현 방식을 알지 못해도 서비스 또는 제품이 서로 의사소통을 할 수 있어 애플리케이션 개발을 간소화하여 비용과 시간을 절약할 수 있다. 

 

API의 역할은? 

1. API는 서버와 데이터베이스에 대한 출입구 역할을 한다.
데이터베이스에는 정보들이 저장되는 곳이다. 모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 된다. 가령, KT에는 중요한 개인정보들을 많이 가지고 있는데, 이를 다른 사람들이 접근할 수 있게 된다면 끔찍한 일일 것이다. API는 이를 방지하기 위해 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해준다.

2. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
애플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플이나 프로그램을 일컫는다. API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 한다.

3. API는 모든 접속을 표준화한다.
API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있다.

 

API유형은 어떤게 있을까?

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

2) public API
public API는 개방형 API로, 모두에게 공개된다. 누구나 제한 없이 API를 사용할 수 있는 게 특징이다.

3) partner API
:partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있다. 비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용된다.

 

API 사용하면 뭐가 좋을까?

API를 사용하면 많은 이점들이 존재한다. Private API를 이용할 경우, 개발자들이 애플리케이션 코드를 작성하는 방법을 표준화함으로써, 간소화되고 빠른 프로세스 처리를 가능하게 한다. 또한, 소프트 웨어를 통합하고자 할 때는 개발자들 간의 협업을 용이하게 만들어줄 수 있다. public API와 partner API 를 사용하면, 기업은 타사 데이터를 활용하여 브랜드 인지도를 높일 수 있다. 뿐만 아니라 고객 데이터베이스를 확장하여 전환율까지 높일 수 있다.

 

API 사용의 대표적인 예시

카카오톡 간편가입을 생각하면 편하다. 우리가 회원가입 한 서비스는 과연 몇 개일까? 수도 없이 많을 것이다. 일일이 주민등록번호와 전화번호, 집주소 등을 입력하며 개별 사이트마다 회원가입을 하는 건 굉장히 번거로운 일이다. 이에 카카오톡은 API를 제공하여 간편 회원가입을 할 수 있게끔 지원한다. 즉, 카카오톡에서 가지고 있는 선별적인 데이터 중 일부를 회원가입 업체에 넘겨주는 것이다. 

'[개발 지식] > 배경지식' 카테고리의 다른 글

JSON(JavaScript Object Notation)  (0) 2023.10.05
SOAP API와 REST API  (1) 2023.10.05