API는 Application Programming Interface를 나타냅니다.
서로 다른 소프트웨어 응용 프로그램이 서로 통신하고 상호 작용할 수 있도록 하는 일련의 규칙 및 프로토콜입니다.
API는 특정 시스템, 서비스 또는 플랫폼과 상호 작용해야 하는 소프트웨어 구성 요소를 구축할 때 개발자가 따라야 하는 메서드, 데이터 형식 및 규칙을 정의합니다.
간단히 말해서 API는 서로 다른 소프트웨어 응용 프로그램 간의 계약 또는 인터페이스 역할을 하여 데이터와 기능을 교환할 수 있도록 합니다.
개발자가 원격 서버에서 데이터 검색, 요청 보내기 또는 특정 작업 수행과 같이 다른 소프트웨어 시스템에서 제공하는 서비스, 기능 또는 데이터에 액세스하고 사용할 수 있는 표준화된 방법을 제공합니다.
API는 웹 서비스와의 상호 작용을 가능하게 하는 웹 API, 데이터베이스 액세스를 위한 데이터베이스 API, 시스템 수준 기능을 위한 운영 체제 API 등과 같은 다양한 목적을 위해 설계될 수 있습니다. 통신을 위해 잘 정의된 인터페이스를 제공하여 서로 다른 구성 요소가 원활하게 함께 작동하도록 하므로 복잡한 소프트웨어 시스템을 구축하는 데 필수적입니다.
즉 내가 특정 서비스(어플이나 프로그램)의 접근해서 해당 서비스가 제공하는 것들을 사용하고 싶을때 API란 것을 사용하면 된다.
특징
•
API자체가 서비스의 서버에 접근하는 기능을 하기 때문에 불특정 다수에게 접근을 허용하면 안 되고 특정 사용자에게 권한을 준 뒤에 접근을 가능하게 해야한다.
종류
공유별
•
프라이빗
◦
API를 내부에서만 사용할 수 있도록 하며, 기업이 API를 최대한으로 제어할 수 있습니다.
•
파트너
◦
API를 특정 비즈니스 파트너와 공유하며, 품질 저하 없이 추가 수익원을 창출할 수 있습니다.
•
퍼블릭
◦
API가 모두에게 제공되며, 제 3자가 API와 상호 작용하는 애플리케이션을 개발하여 혁신을 끌어낼 수 있습니다.
사용별
•
웹 API
◦
HTTP 프로토콜을 사용하여 인터넷을 통해 서로 다른 소프트웨어 애플리케이션 간의 통신을 허용하는 API
◦
시스템 통합, 원격 서비스 액세스, 웹 서버에서 데이터 검색 또는 조작에 널리 사용
ex)
•
라이브러리 또는 프레임 워크 API
◦
라이브러리 또는 프레임워크에서 제공되어 개발자에게 사전 정의된 함수, 클래스 및 메서드를 제공하여 소프트웨어 개발을 단순화하고 가속화
ex)
•
운영 체제 API
◦
소프트웨어 응용 프로그램이 기본 운영 체제와 상호 작용할 수 있는 방법을 제공
◦
시스템 리소스에 액세스하고, 프로세스를 관리하고, 파일 작업을 처리하고, 기타 시스템 수준 작업을 수행
ex)
•
데이터베이스 API
◦
소프트웨어 애플리케이션과 데이터베이스 간의 상호 작용을 용이
◦
데이터베이스에 연결하고, 쿼리를 실행하고, 데이터를 검색 및 조작하고, 데이터베이스 트랜잭션을 처리하는 방법을 제공
ex)
•
클라우드 API
◦
개발자가 클라우드 서비스 및 리소스와 상호 작용할 수 있도록 클라우드 서비스 공급자가 제공
◦
애플리케이션은 가상 머신, 스토리지, 데이터베이스 및 AI 서비스와 같은 클라우드 기반 리소스를 생성, 관리 및 액세스
ex)