요즘 다들 API에서 대한 이야기를 많이 하죠? 그리고 왜 모두가 API 개발자에게 수십만 달러를 지불하고 있는지도 궁금하실 겁니다. 오늘은 API가 도대체 무엇인지 그리고 어떻게 먹어야 하는 놈인지 알아보겠습니다.
API란?
API는 애플리케이션 프로그래밍 인터페이스(Application Programing Interface)의 약자이지만 USB를 Universal Serial Bridge라고 부르는 사람이 없는 것처럼 API도 긴 이름으로 부르는 사람은 잘 없습니다.
API의 기술적 의미는 애플리케이션 소프트웨어를 구축, 통신 및 통합하기 위한 일련의 정의 및 프로토콜입니다. 따라서 "인터페이스"라는 용어가 사용됩니다. 그러나 기술적인 전문 용어와는 별개로, API는 내부적으로 작업 내용은 외부 사용자에게 표시되지 않습니다. API를 사용하면 외부 사용자(클라이언트)가 애플리케이션이나 서버에 무언가를 "요청"하고 해당 "응답"을 얻을 수 있습니다.
실제로 여러분은 이미 실제 API와 동등한 것을 사용해 본 적이 있습니다. 예를 들어, 택시를 타는 것입니다. 택시를 타려면 다음을 수행해야 합니다:
- 1. 연락처 및 위치 정보를 픽업 택시에게 "요청" 합니다.
- 2. 그 요청에 대한 "응답"으로 택시 기사가 세부정보를 받게 되며 택시가 당신을 픽업합니다.
- 3. 다시 택시 운전사에게 특정 장소까지 데려다달라고 "요청"합니다.
- 4. 택시기사가 "응답" 하면 원하는 장소까지 모셔다 드립니다.
이제 A 장소에서 B 장소로 이동하려고 할 때 자동차를 운전할 자격이나 운전을 하는 방법을 알 필요가 없습니다. 택시 운전사는 API처럼 작동합니다. 여러분은 자동차가 어떻게 작동하는지 전혀 알지 못할 수도 있지만 API 계층, 즉 운전자와 상호 작용하고 원하는 결과를 얻을 수 있습니다.
API를 보는 또 다른 방법은 매우 특정한 형식으로 입력을 받고 매우 특정한 형식으로 출력을 제공하는 마술 상자라는 것입니다. 애플리케이션 개발에서 이러한 입력 및 출력(I/O)의 "표준화"는 유용하며 개발자가 제어하지 않는 시스템과 쉽게 상호 작용할 수 있도록 해줍니다.
API 유형
API라는 용어를 들어본 적이 있다면 Web API라는 매우 특정한 유형의 API를 가리키는 데 사용되었을 가능성이 높습니다. 그러나 일반적으로 API라는 용어는 사용되는 용도에 따라 다른 의미를 가질 수 있습니다.
사용법에 따라 API는 아래와 같이 크게 네 가지 범주로 나눌 수 있습니다.
1. Web API는 인터넷을 통해 서버와 클라이언트 간의 통신에 사용됩니다. 이름에서 알 수 있듯이 웹 API는 인터넷을 통해 정보나 리소스를 상호 작용하고 조작하는 데 사용되는 매우 특정한 유형의 API입니다.
2. Remote API는 원격 API로 다른 시스템에서 실행되는 애플리케이션에 대한 상호 작용 표준을 정의합니다. 예를 들어, 데이터베이스를 프로그램에 연결하는 JDBC 연결 API
3. 라이브러리 및 프레임워크도 소프트웨어 라이브러리에 대한 인터페이스 역할을 하며 API 유형입니다 합니다.
4. 운영 체제는 애플리케이션이 장치와 상호 작용할 수 있도록 API를 지정할 수 있습니다. 예를 들어, 카메라가 있는 Android 기기에는 모든 앱에서 카메라를 제어할 수 있도록 OS API가 필요합니다.
웹 API란?
웹 API는 인터넷이나 네트워크를 통해 서버와 클라이언트 간의 통신에 사용됩니다. 일반적으로 웹 API는 HTTP(HyperText Transfer Protocol) 요청 메서드를 사용하여 서버와 통신합니다.
HTTP 표준은 수행할 작업을 나타내는 "요청 메서드" (Request methods) 집합을 지정합니다. 이러한 HTTP 요청 메서드들은 다음과 같습니다.
1. GET : 엔드포인트에서 지정된 리소스를 가져옵니다. 이로 인해 서버 상태가 변경되지 않고 서버에서 응답이 발생합니다.
2. POST : 일부 데이터를 엔드포인트로 보냅니다. 일반적으로 서버 상태를 변경하는 작업이 발생합니다.
3. PUT : 서버의 일부 데이터를 대체합니다. POST와 비슷하지만 PUT 요청이 항상 동일한 결과를 생성한다는 점에서 다릅니다.
4. DELETE : DELETE 메서드는 서버에서 지정된 리소스를 삭제합니다.
아래 메서드들은 자주 사용되지는 않지만 일단 이런 게 있다고만 알고 있으면 됩니다:
5. HEAD : HEAD : HEAD 메서드는 GET 요청과 같은 응답을 요청하지만 상태 줄과 헤더 섹션만 요청합니다.
6. CONNECT : CONNECT 메서드는 대상 리소스로 식별되는 서버에 대한 터널을 설정합니다.
7. OPTIONS : OPTIONS 메서드는 대상 리소스에 대한 통신 옵션을 설명하는 데 사용됩니다.
8. TRACE : TRACE 메서드는 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행합니다.
9. PATCH : PATCH 메서드는 리소스에 부분 수정을 적용하는 데 사용됩니다.
이상 API가 뭔지 설명하는 포스팅은 여기까지 하겠습니다. 다음에는 실제 API를 사용해 보는 포스팅을 올리겠습니다. 감사힙니다:)
'IT - 프로그래밍 > 파이썬' 카테고리의 다른 글
API가 필요한 이유 (0) | 2023.09.26 |
---|---|
JSON 형식이란? (0) | 2023.09.25 |
API 사용해보기 (0) | 2023.09.23 |
파이썬 자료형 다루기: 기초연산 및 입출력 방법 (0) | 2023.08.05 |
파이썬 설치하기 (0) | 2023.05.02 |