[API] API 정리 (개념부터 예제까지)

kt·2025년 3월 2일

🔘 API란?

API(Application Programming Interface)는 응용 프로그램 간의 상호 작용을 가능하게 하는 인터페이스입니다.
소프트웨어, 웹 서비스, 운영체제 등이 서로 데이터를 주고받을 수 있도록 돕는 역할을 합니다.


⚪ API의 개념

1. API의 정의

API는 소프트웨어 컴포넌트 간의 통신을 돕는 매개체로, 특정 기능을 수행하기 위한 규칙과 도구의 집합입니다.
쉽게 말해, 프로그램이 다른 프로그램의 기능을 사용할 수 있도록 미리 정의된 방법을 제공하는 것입니다.

2. API의 역할

  • 데이터 교환: 서로 다른 시스템 간 데이터를 주고받을 수 있도록 함
  • 기능 제공: 특정 기능(예: 결제, 로그인, 지도 서비스 등)을 다른 프로그램에서 활용할 수 있도록 함
  • 코드 재사용: 같은 기능을 여러 시스템에서 공통으로 사용 가능하게 함

⚪ API의 동작 방식

API는 요청(Request)응답(Response) 을 통해 동작합니다.

  1. 클라이언트(Client) 가 API에 요청을 보냄
  2. 서버(Server) 가 요청을 처리한 후 응답을 반환
  3. 클라이언트는 응답을 받아 필요한 작업 수행

예제 : 사용자의 정보를 조회하는 API 호출

클라이언트 → (요청) → 서버
GET /users/123

서버 → (응답) → 클라이언트
{
  "id": 123,
  "name": "Alice",
  "email": "alice@example.com"
}

⚪ API의 종류

1. 오픈 API (Open API, Public API)
누구나 사용할 수 있도록 공개된 API
예: Google Maps API, Twitter API, OpenWeather API

2. 프라이빗 API (Private API, 내부 API)
특정 조직 또는 내부 시스템에서만 사용하는 API
예: 기업 내부의 사용자 관리 API

3. 파트너 API (Partner API)
특정 파트너사와 협업하기 위해 제공하는 API
예: 결제 게이트웨이 API (PayPal, Stripe)

4. 컴포넌트 API (Composite API)
여러 개의 API를 한 번의 요청으로 호출할 수 있도록 구성된 API


⚪ API의 형식

API는 여러 가지 형식으로 제공될 수 있으며, 주요한 API 형식은 다음과 같습니다.

1. REST API (RESTful API)
HTTP 프로토콜을 기반으로 하는 API
REST의 원칙을 따르며, URL을 통해 리소스를 식별하고 HTTP 메서드를 사용

2. SOAP API
XML 기반의 메시지를 사용하는 API
높은 보안성과 안정성이 필요할 때 사용됨 (예: 금융 시스템)

3. GraphQL API
클라이언트가 원하는 데이터만 선택적으로 요청할 수 있는 API
REST보다 유연한 데이터 요청이 가능

4. gRPC API
바이너리 형식(Protocol Buffers)을 사용하는 API
빠른 성능과 효율성을 제공 (예: 마이크로서비스 통신)


⚪ API 호출 방식 (HTTP 메서드)

API는 주로 HTTP 메서드를 사용하여 요청을 보냅니다.

HTTP 메서드설명예제
GET리소스 조회GET /users/123
POST리소스 생성POST /users
PUT리소스 전체 수정PUT /users/123
PATCH리소스 일부 수정PATCH /users/123
DELETE리소스 삭제DELETE /users/123

⚪ API 보안 (Security)

API는 외부에서 접근할 수 있으므로 보안이 매우 중요합니다.
따라서, 다음과 같은 보안 기법을 적용해야 합니다.

1. 인증(Authentication) & 인가(Authorization)

  • API Key: 고유한 키를 사용하여 API 접근 제어
  • OAuth 2.0: 토큰 기반 인증 방식
  • JWT (JSON Web Token): 사용자 인증 및 정보 전달

2. HTTPS 사용
API 통신을 암호화하여 데이터 보호

3. CORS (Cross-Origin Resource Sharing)
도메인 간 요청을 제어하여 보안 강화

4. Rate Limiting (요청 제한)
한 사용자 또는 IP에서 일정 시간 내 보낼 수 있는 요청 수를 제한


⚪ API의 활용 예시

1. 로그인 API

  • 요청
POST /login
{
  "username": "testuser",
  "password": "securepassword"
}
  • 응답
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

2. 날씨 정보 API (OpenWeather API 예시)

  • 요청
GET /weather?q=Seoul&appid=your_api_key
  • 응답
{
  "temperature": 15,
  "weather": "Clear",
  "city": "Seoul"
}

3. 번역 API (Google Translate API 예시)

  • 요청
POST /translate
{
  "text": "Hello",
  "target_language": "ko"
}
  • 응답
{
  "translated_text": "안녕하세요"
}

⚪ 결론

API는 현대 소프트웨어 개발에서 필수적인 요소로, 다양한 시스템 간의 데이터 교환과 기능 제공을 가능하게 합니다.

API를 설계할 때는 명확한 URL 구조, 적절한 HTTP 메서드 사용, 보안 등의 요소를 신경 써야 합니다.
이를 통해 확장성과 유지보수성이 뛰어난 API를 만들 수 있습니다.

특히 RESTful API는 가장 널리 사용되는 형태로, HTTP 기반의 표준화된 방식으로 설계되는데요,
다음 포스트에서는 RESTful API에 대해서 정리해 보겠습니다!

profile
기록하는 블로그

0개의 댓글