728x90

1. HTTP 요청 구조

HTTP 요청은 **클라이언트(브라우저, 모바일 앱 등)**에서 서버로 보내는 데이터입니다.
요청을 어떻게 보내고, 어떤 정보를 포함하는지 이해하는 것이 중요합니다.

✅ HTTP 요청의 구성 요소

  1. URL (Uniform Resource Locator)
  2. Method (메소드)
    • 요청 방식입니다. 주로 4가지가 사용됩니다.
      • GET: 서버에서 데이터를 가져옴
      • POST: 서버에 데이터를 전송
      • PATCH: 서버의 데이터를 부분적으로 수정
      • DELETE: 서버에서 데이터를 삭제
  3. Header (헤더)
    • 요청에 대한 메타 정보가 포함됩니다. 키-값 쌍으로 구성되며, string 형식으로 작성됩니다.
    • 예: Content-Type: application/json, Authorization: Bearer <token>
  4. Body (본문)
    • POST, PUT, PATCH 요청에서 사용됩니다. 서버로 보내는 실제 데이터입니다.
    • 예: JSON 형식의 데이터 ({"name": "John", "age": 30})

✅ 비유

HTTP 요청은 '편지'와 같다

  • URL: 편지를 보낼 주소
  • Method: 편지 종류 (편지 보내기, 편지에 답장, 편지 수정, 편지 회수)
  • Header: 편지의 정보 (발송인, 수신인, 날짜 등)
  • Body: 편지 내용

2. HTTP 상태 코드 (Status Code)

HTTP 상태 코드는 서버가 클라이언트에게 응답을 보낼 때 그 상태를 알려주는 숫자입니다.
주로 3자리 숫자이며, 범위에 따라 응답의 종류가 나눠집니다.

✅ 상태 코드 범위

코드 범위 의미 설명
100-199 정보 응답 요청을 받았으며, 클라이언트가 계속 진행해야 함
200-299 성공 응답 요청이 성공적으로 처리되었음
300-399 리다이렉션 요청한 리소스가 다른 곳으로 이동되었음
400-499 클라이언트 에러 응답 클라이언트의 잘못된 요청
500-599 서버 에러 응답 서버 측 오류가 발생했을 때
 

✅ 상세 상태 코드 설명

  • 200 OK: 요청이 성공적으로 처리되었습니다.
  • 201 Created: 새 리소스가 성공적으로 생성되었습니다.
  • 301 Moved Permanently: 리소스가 영구적으로 다른 URL로 이동되었습니다.
  • 400 Bad Request: 요청이 잘못되었거나 필수 값이 빠졌습니다.
  • 401 Unauthorized: 인증이 필요하거나 인증 토큰이 잘못되었습니다.
  • 403 Forbidden: 인증은 되었지만 해당 리소스에 접근할 권한이 없습니다.
  • 404 Not Found: 요청한 리소스가 존재하지 않습니다.
  • 405 Method Not Allowed: 사용하려는 HTTP 메소드가 허용되지 않습니다.
  • 500 Internal Server Error: 서버에서 예기치 않은 오류가 발생했습니다.

3. 같은 URL에 여러 개의 Method

  • URL은 하나, 하지만 Method는 여러 개일 수 있습니다.
  • 예를 들어, /api/user라는 URL이 있다고 할 때:
    • GET /api/user: 사용자 데이터를 가져옴
    • POST /api/user: 새로운 사용자 데이터를 추가
    • PUT /api/user: 기존 사용자 데이터를 수정
    • DELETE /api/user: 사용자 데이터를 삭제

✅ 비유

**URL은 '도로'**이고, Method는 '차 종류'
한 도로에서 여러 차가 주행할 수 있지만, 각 차는 목적이 다릅니다.


4. HTTP 요청 예시

다음은 POST 요청을 사용하는 예시입니다.

# POST 요청 예시 (API 호출)
POST /api/user HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer <token>

{
  "name": "John",
  "age": 30
}
  • POST: 데이터를 서버에 전송
  • Host: 요청을 받을 서버의 주소
  • Content-Type: 전송하는 데이터의 형식
  • Authorization: 인증 토큰

5. HTTP 응답 예시

다음은 200 OK 응답 예시입니다.

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 123

{
  "name": "John",
  "age": 30
}
  • 200 OK: 요청이 성공적으로 처리됨
  • Content-Type: 응답 데이터 형식
  • Content-Length: 응답 데이터 크기

✅ 한 줄 요약

HTTP 요청과 응답은 메시지 교환의 규칙이며, URL, Method, Header, Body와 함께 Status Code로 결과를 알려줍니다.

728x90
728x90

1. API란?

  • 정의:
    API는 응용 프로그램 프로그래밍 인터페이스로, 응용 프로그램에서 특정 기능을 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 인터페이스입니다.
  • 목적:
    • 파일 제어, 창 관리, 그래픽 처리, 데이터 통신 등 다양한 기능 제공.
    • 개발자가 복잡한 기능을 쉽게 구현할 수 있도록 지원.

2. API의 역할

  • 기능 제공:
    • 복잡한 기능을 간단한 명령으로 호출 가능.
    • 예: 데이터베이스 연결, HTTP 요청, UI 요소 생성.
  • 추상화:
    • 하위 시스템의 복잡성을 숨기고, 단순화된 접근 방법 제공.
    • 예: 운영 체제의 네트워크 기능을 호출해 데이터를 전송.
  • 상호운용성:
    • 다양한 소프트웨어 시스템 간의 통신과 데이터 교환을 가능하게 함.

3. API의 주요 특징

  1. 표준화:
    • 명확한 규칙과 프로토콜 제공.
    • 일관된 사용 방식으로 개발 편의성 향상.
  2. 재사용성:
    • 동일한 API를 여러 프로젝트에서 활용 가능.
    • 개발 시간 절약.
  3. 추상화:
    • 복잡한 로직을 숨기고 간단한 인터페이스 제공.

4. API의 구성

  1. 엔드포인트:
    • 외부 시스템이 API에 접근하는 URL.
  2. 요청(Request) 및 응답(Response):
    • API는 요청을 받고, 처리 후 응답을 반환.
    • 예: REST API에서 HTTP 요청(GET, POST 등)을 사용.
  3. 문서화:
    • API 사용법, 입력/출력 데이터 형식, 인증 방법 등 제공.
  4. 키 및 인증:
    • 보안을 위해 API 키, 토큰 기반 인증 등 사용.

5. API의 유형

  1. 오픈 API (Public API):
    • 누구나 사용할 수 있도록 공개.
    • 예: 구글 맵 API, 트위터 API.
  2. 파트너 API:
    • 특정 파트너와 협력하기 위해 제공.
    • 인증 및 계약 필요.
  3. 프라이빗 API:
    • 내부 시스템에서만 사용.
    • 기업 내 소프트웨어 통합에 주로 활용.

6. API와 ABI의 차이

  • API (Application Programming Interface):
    • 소스 코드 기반의 인터페이스.
    • 주로 프로그래머가 사용.
    • 예: POSIX.
  • ABI (Application Binary Interface):
    • 바이너리 인터페이스로, 컴파일된 프로그램과 상호 작용.
    • 주로 시스템 호출이나 라이브러리와의 호환성 관련.
    • 예: 리눅스 기본 규격.

7. API 설계 원칙

  1. 명확성:
    • 직관적이고 이해하기 쉬운 인터페이스.
  2. 일관성:
    • 모든 엔드포인트와 호출 방식에서 일관된 규칙 사용.
  3. 보안:
    • 인증 및 권한 부여를 통해 악의적 접근 차단.
  4. 성능:
    • 요청 처리 속도 최적화.
  5. 문서화:
    • 사용자가 쉽게 이해할 수 있도록 API 사용법을 상세히 제공.

8. API의 활용 사례

  1. 웹 개발:
    • 외부 서비스 연동.
    • 예: 결제 API(PayPal, Stripe), 소셜 로그인(Google, Facebook).
  2. 모바일 앱:
    • 백엔드 서버와 통신.
    • 예: 날씨 데이터, 지도 데이터.
  3. 사물인터넷(IoT):
    • 센서 데이터 수집 및 처리.
  4. 데이터 분석:
    • 대규모 데이터를 API를 통해 수집 및 처리.

9. API의 예

  1. REST API:
    • 웹에서 주로 사용되는 아키텍처.
    • HTTP 프로토콜 기반.
    • CRUD 작업: GET(읽기), POST(생성), PUT(수정), DELETE(삭제).
  2. SOAP API:
    • XML 기반의 메시징 프로토콜.
    • 보안 및 트랜잭션이 중요한 애플리케이션에 적합.
  3. GraphQL:
    • 페이스북에서 개발한 데이터 질의 언어.
    • 필요한 데이터만 요청 가능.

10. API 사용 시 주의 사항

  1. 속도 및 안정성:
    • 과도한 요청 시 성능 저하나 서비스 중단 가능.
  2. 보안:
    • 데이터 암호화 및 인증 필수.
  3. 버전 관리:
    • API 업데이트 시 하위 호환성 유지 고려.

요약

API는 운영 체제, 소프트웨어, 서비스 간의 상호작용을 가능하게 하는 중간 인터페이스입니다. 개발자는 API를 활용해 복잡한 로직을 간소화하고, 다양한 기능을 신속하게 구현할 수 있습니다. API의 주요 유형으로 REST, SOAP, GraphQL 등이 있으며, 오픈 API, 파트너 API, 프라이빗 API 등으로 구분됩니다.

728x90

+ Recent posts