API
IT 위키
더 많은 작업
API;Application Programming Interface
- 직접 연계 기술 중 하나로 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
- 사용하는 쪽은 내부 구현을 몰라도 정해진 규약(함수 이름, 매개변수, 요청·응답 형식)에 따라 호출하면 기능을 사용할 수 있다.
| 구분 | 설명 | 예 |
|---|---|---|
| 라이브러리 API | 프로그래밍 언어나 라이브러리가 제공하는 함수·클래스의 호출 규약 | Java API(java.util 등), C 표준 라이브러리 |
| 운영체제 API | 응용 프로그램이 운영체제 기능(파일, 프로세스, 메모리, 네트워크)을 사용하는 규약. 내부적으로 시스템 콜을 호출 | Windows API(Win32), POSIX |
| 웹 API | HTTP 등 네트워크를 통해 원격 서버의 기능을 호출하는 규약 | REST, SOAP, GraphQL, gRPC |
| 방식 | 특징 | 데이터 형식 |
|---|---|---|
| REST | 자원을 URI로 표현하고 HTTP 메서드(GET, POST, PUT, DELETE)로 조작. 무상태(Stateless) | 주로 JSON |
| SOAP | XML 기반 메시지 프로토콜. WSDL로 서비스를 기술하며 보안·트랜잭션 표준이 풍부 | XML |
| GraphQL | 클라이언트가 필요한 데이터 구조를 질의로 지정. 단일 엔드포인트, 과다·과소 조회 감소 | JSON |
| gRPC | Google이 개발한 RPC 프레임워크. HTTP/2와 Protocol Buffers를 사용해 빠름 | 이진(Protocol Buffers) |
- 관련 문서: RESTful API, GRPC (RPC 프레임워크)
- 서버 프로그램은 업무 기능을 API로 외부에 제공하고, 다른 시스템의 API를 호출하여 연계한다.
- 인터페이스 연계 기술 중 직접 연계 방식에는 API/Open API 외에 DB Link, DB Connection, JDBC, 화면 링크 등이 있고, 간접 연계 방식에는 EAI, ESB, 웹 서비스, 소켓 등이 있다.
- API 구현 시 입력값 검증, 인증, 전송 구간 암호화를 적용해야 한다. 관련 문서: 인터페이스 보안
import json
from urllib.request import urlopen
# 웹 API 호출 예: GET 요청 후 JSON 응답을 파싱
with urlopen("https://api.example.com/users/1") as res:
user = json.loads(res.read())
print(user["name"])
- API는 응용 프로그램이 운영체제나 프로그래밍 언어의 기능을 제어할 수 있게 만든 인터페이스로 정의된다.
- 인터페이스 연계 기술에서 API/Open API가 직접 연계 방식에 속한다는 점을 기억한다.
- REST와 SOAP의 차이(자원·HTTP 메서드 vs XML 메시지·WSDL)를 구분한다.