API (Application Programming Interface)
- 소프트웨어 구성 요소들이 서로 통신하고 상호작용할 수 있게 하는 메커니즘
- 다른 시스템, 애플리케이션, 서비스 등을 활용/통합하기 위한 다리 역할
- 통신 규칙 정의
: 클라이언트와 서버가 어떻게 데이터를 교환할지를 정의함
→ 규칙을 따르지 않으면 통신이 불가능함
- 추상화 제공
: 내부 구현 방식을 숨기고, 필요한 기능만 노출함
→ 내부 작동 방식을 이해하지 못하더라도 기능을 활용할 수 있음
- 재사용성
: 동일한 기능을 처음부터 구현할 필요 없이, 만들어져 있는 API를 활용할 수 있음
- 플랫폼 간 연동
: 다른 서비스와의 통합 용이
- 확장 가능성
: 하나의 API를 여러 프로젝트/플랫폼에서 사용할 수 있음
※ API 관점에서의 '애플리케이션'
: 고유한 기능을 가진 모든 소프트웨어
주요 구성 요소
1) 엔드포인트 (Endpoint)
- 클라이언트가 API와 통신하기 위해 요청을 보내는 URL 경로 (API의 접점 역할)
[구조]
i. 기본 URL : API의 기본 주소 ex) https://api.example.com
ii. 경로 : 특정 리소스를 가리키는 경로 ex) /users
iii. 쿼리 스트링 : 요청 세부 조건 지정 ex) ?page=1&limit=10
2) 메서드 (HTTP Methods)
- API 요청의 의도를 나타내는 HTTP 메서드
GET | 데이터 조회 |
POST | 데이터 생성 |
PUT | 데이터 전체 수정 |
PATCH | 데이터 일부 수정 |
DELETE | 데이터 삭제 |
3) 데이터 형식 (Data Format)
- API에서 요청 및 응답 데이터를 표현하는 방식
- JSON (JavaScript Object Notation)
- XML (eXtensible Markup Language)
- HTML
사용 목적에 따른 API 유형
1) 퍼블릭 API (Public API)
- 누구나 접근할 수 있는 API
2) 프라이빗 API (Private API)
- 내부 시스템에서만 사용되도록 설계된 API
- 주로 비즈니스 내에서 시스템과 데이터를 연결하는 데 사용됨
3) 파트너 API (Partner API)
- B2B 파트너십을 지원하기 위해, 권한이 부여된 외부 개발자만 액세스 가능한 API
4) 복합 API (Hybrid API)
- 퍼블릭 API와 프라이빗 API가 혼합된 형태
- 일부 기능은 공개하고, 일부는 특정 사용자들에게만 제공됨
# 웹 API
- 웹 기술을 기반으로 한 API
- 애플리케이션이 네트워크를 통해 데이터를 주고받거나 기능을 사용할 수 있도록 돕는 인터페이스
- 웹 서버와 클라이언트 간의 데이터 교환
- HTTP 기반
# API 통합
- 여러 API를 활용해 애플리케이션을 연결하거나, 새로운 기능을 구현하는 과정
- 외부 서비스의 기능을 애플리케이션에 추가
- 서로 다른 시스템 간의 데이터를 실시간으로 동기화
ex) 휴대폰 갤러리에서 클라우드로 자동 동기화
# API 게이트웨이
- 클라이언트와 여러 서비스(API) 간의 중간 계층
: 모든 API 요청을 관리하고 라우팅하는 역할을 함
- 요청 전달 외에도 보안, 로깅, 요청 조작 등 다양한 기능을 수행함
# GraphQL
- API용으로 특별히 개발된 쿼리 언어
- 클라이언트에게 요청한 데이터만 제공하는 것을 우선으로 함
- API를 빠르고 유연하게 만들 수 있도록 설계됨
'CS' 카테고리의 다른 글
[CS] 캐싱 전략 (0) | 2024.11.21 |
---|---|
[CS] 인증 (Authentication) (0) | 2024.11.20 |
[CS] 브라우저 (Browser) (1) | 2024.11.18 |
[CS] 호스팅 (Hosting) (1) | 2024.11.17 |
[CS] 인터넷 (Internet) (5) | 2024.11.16 |