api
기본 정보
- 명칭: API
- 영문명: Application Programming Interface
- 한글명: 응용 프로그램 프로그래밍 인터페이스
- 분류: 소프트웨어 인터페이스
- 주요 용도: 시스템 간 데이터 및 기능 제공
- 관련 주제: #API #RESTAPI #HTTP #JSON #백엔드
개요
API(Application Programming Interface)는 프로그램과 프로그램이 서로 데이터를 주고받거나 기능을 호출하기 위한 인터페이스이다.
웹 개발에서는 프론트엔드와 백엔드가 통신하거나, 외부 서비스(결제, 지도, AI, 로그인 등)와 연동할 때 API를 사용한다.
현대 웹 서비스와 모바일 앱 개발에서 API는 핵심적인 역할을 담당한다.
API 구조
Client
↓
HTTP Request
↓
API Server
↓
Business Logic
↓
Database
↓
JSON Response
↓
Client
API 동작 과정
사용자 버튼 클릭
↓
API 요청
↓
서버 처리
↓
데이터 조회
↓
JSON 생성
↓
응답 반환
↓
화면 출력
주요 특징
- 시스템 간 통신
- 데이터 공유
- 기능 제공
- 플랫폼 독립성
- 자동화 지원
- 서비스 확장성 향상
API 종류
Open API
외부 개발자에게 공개된 API
예시
- OpenAI API
- Kakao API
- Google Maps API
Private API
기업 내부에서만 사용하는 API
예시
- ERP 내부 API
- 관리자 API
- 사내 시스템 API
Partner API
제휴사에게만 제공하는 API
예시
- PG사 연동
- 물류사 연동
- 금융 API
REST API
현재 가장 널리 사용되는 API 방식이다.
예시
GET /api/member/1
POST /api/member
PUT /api/member/1
DELETE /api/member/1
HTTP Method
| Method | 설명 |
|---|---|
| GET | 조회 |
| POST | 생성 |
| PUT | 전체 수정 |
| PATCH | 일부 수정 |
| DELETE | 삭제 |
요청(Request)
GET /api/member/1
Host: example.com
응답(Response)
{
"success": true,
"message": "조회 성공",
"data": {
"id": 1,
"name": "구름"
}
}
상태 코드(Status Code)
| 코드 | 의미 |
|---|---|
| 200 | 성공 |
| 201 | 생성 완료 |
| 400 | 잘못된 요청 |
| 401 | 인증 실패 |
| 403 | 권한 없음 |
| 404 | 찾을 수 없음 |
| 500 | 서버 오류 |
JSON
API는 일반적으로 JSON 형식으로 데이터를 주고받는다.
{
"name": "홍길동",
"age": 30
}
인증 방식
API Key
X-API-Key: abc123
JWT
Authorization:
Bearer eyJ...
OAuth 2.0
대표 사용처
- Google 로그인
- Kakao 로그인
- GitHub 로그인
RESTful API 원칙
좋은 API는 다음 원칙을 따른다.
GET /users
GET /users/1
POST /users
PUT /users/1
DELETE /users/1
리소스 중심 URL을 사용하는 것이 일반적이다.
API 버전 관리
예시
/api/v1/users
/api/v2/users
기존 사용자와의 호환성을 유지하기 위해 사용한다.
API 문서
대표 도구
- Swagger
- OpenAPI
- Postman
- Redoc
API 사용 방법과 요청·응답 구조를 문서화한다.
대표 활용 사례
로그인
POST
/api/login
회원 조회
GET
/api/users/10
게시글 작성
POST
/api/board
상품 목록
GET
/api/products
API와 데이터베이스
Client
↓
API
↓
Service
↓
Repository
↓
Database
실무에서는 API가 직접 데이터베이스에 접근하기보다 서비스 계층을 거쳐 처리하는 구조를 많이 사용한다.
API 장점
- 시스템 간 연동이 쉬움
- 기능 재사용 가능
- 플랫폼 독립적
- 모바일·웹 공통 사용 가능
- 유지보수가 용이
- 확장성이 높음
API 단점
- 네트워크 장애 영향
- 인증 및 보안 고려 필요
- 버전 관리 필요
- 과도한 호출 시 성능 저하 가능
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
- RESTful URL 설계
- HTTPS 사용
- JWT 또는 OAuth 인증 적용
- 응답 형식 표준화 (
success,message,data) - Pagination 지원
- Rate Limit 적용
- API 버전 관리
- OpenAPI(Swagger) 문서 제공
- 입력값 검증
- 예외 처리 및 로그 기록
API와 함께 사용하는 기술
대표 개발 도구
- Postman
- Insomnia
- Swagger UI
- OpenAPI Generator
- Bruno
- curl
관련 문서
출처
- MDN Web Docs
- Swagger 공식 문서
- OpenAPI Specification
- RFC 9110 (HTTP Semantics)