Web/일반

API

창욱씨 2020. 4. 22. 23:09
반응형

API (Application Programming Interface) 란?

API는 서로 다른 소프트웨어 애플리케이션이 서로 통신하고 데이터를 주고받을 수 있도록 정의된 규칙과 프로토콜의 집합입니다.


핵심 개념

개념 설명
Interface 두 시스템 사이의 접점 (계약)
Request 클라이언트가 서버에 보내는 요청
Response 서버가 클라이언트에 돌려주는 응답
Endpoint API가 노출하는 특정 URL 또는 주소

비유로 이해하기

🍽️ 레스토랑에서 웨이터(API) 는 손님(클라이언트)의 주문을 받아 주방(서버)에 전달하고, 완성된 음식(데이터)을 손님에게 가져다 줍니다.

손님은 주방 내부 구조를 몰라도 됩니다. 웨이터(API)만 알면 됩니다.


API의 종류

1. 🌐 REST API (가장 일반적)

  • HTTP 메서드 사용 (GET, POST, PUT, DELETE)
  • JSON 형식으로 데이터 교환
  • 무상태(Stateless) 통신
GET https://api.example.com/users/123

2. 📦 GraphQL API

  • 클라이언트가 필요한 데이터만 정확히 요청 가능
  • 단일 엔드포인트 사용
query {
  user(id: "123") {
    name
    email
  }
}

3. ⚡ WebSocket API

  • 실시간 양방향 통신 (채팅, 알림 등)

4. 🔗 gRPC API

  • Google이 개발한 고성능 RPC 프레임워크
  • 마이크로서비스 간 통신에 주로 사용

REST API 동작 예시

클라이언트                     서버
   |                            |
   |--- GET /api/users/1 ------>|
   |                            |  DB 조회
   |<-- 200 OK + JSON ----------|
   |   { "id": 1,               |
   |     "name": "Kchangwook" } |

HTTP 메서드 정리

메서드 동작 예시
GET 데이터 조회 사용자 정보 가져오기
POST 데이터 생성 새 게시글 작성
PUT/PATCH 데이터 수정 프로필 업데이트
DELETE 데이터 삭제 계정 삭제

HTTP 상태 코드

코드 의미
200 ✅ 성공
201 ✅ 생성 성공
400 ❌ 잘못된 요청
401 🔒 인증 필요
403 🚫 권한 없음
404 🔍 리소스 없음
500 💥 서버 에러
반응형

'Web > 일반' 카테고리의 다른 글

Promise  (0) 2021.03.21
Local Storage와 Session storage  (0) 2020.09.19
Virtual DOM  (0) 2020.06.08
Vue.js  (0) 2020.06.05
QueryString과 Path Variable은 각각 언제 사용하는가  (0) 2020.04.09