본문 바로가기
프로그래머로의 여정

RESTful API 이해하기

by nunaaa 2025. 5. 13.

 

RESTful API 이해하기

RESTful (Representational State Transfer)은 웹 서비스 설계를 위한 아키텍처 스타일로, 간단하고 효율적인 API 개발을 위한 원칙을 제공합니다. 주로 HTTP 프로토콜을 기반으로 하며, 리소스(데이터) 중심으로 설계됩니다.

🔍 RESTful의 핵심 개념

1. 리소스 (Resource)

모든 데이터(사용자, 게시글, 상품 등)는 고유한 URI(Uniform Resource Identifier)로 식별됩니다.

예시: /users/1, /posts/100

2. HTTP 메서드로 CRUD 수행

리소스에 대한 작업은 HTTP 메서드(GET, POST, PUT, DELETE 등)로 구분됩니다.

GET    /users       → 모든 사용자 조회  
POST   /users       → 새 사용자 생성  
PUT    /users/1     → 사용자 1의 정보 수정  
DELETE /users/1     → 사용자 1 삭제

3. Stateless (무상태성)

  • 각 요청은 독립적이며, 서버는 클라이언트의 이전 상태를 저장하지 않습니다.
  • 인증은 토큰(JWT 등)이나 API 키로 처리합니다.

4. 표현 형식 (JSON/XML)

데이터는 주로 JSON 또는 XML 형식으로 주고받습니다.

{
  "id": 1,
  "name": "DeepSeek",
  "type": "AI"
}

🛠️ RESTful API 예시

사용자 관리 API

작업 요청 예시
조회 (GET)
GET /users/1  
응답: { "id": 1, "name": "Alice" }
생성 (POST)
POST /users  
Body: { "name": "Bob" }
수정 (PUT)
PUT /users/1  
Body: { "name": "Alice Smith" }
삭제 (DELETE)
DELETE /users/1

✅ RESTful의 장점

  • 간결성: URI와 HTTP 메서드만으로 기능을 직관적으로 이해할 수 있습니다.
  • 확장성: 클라이언트-서버 분리로 유연한 개발이 가능합니다.
  • 캐싱 지원: HTTP 표준 캐싱을 활용해 성능을 최적화할 수 있습니다.

❌ RESTful이 아닌 것은?

  • 단일 엔드포인트 (예: /graphql에서 모든 요청 처리)
  • HTTP 메서드 무시 (예: GET으로 데이터 삭제 요청)
  • 상태 유지 (세션 기반 인증)

🤔 RESTful vs GraphQL vs gRPC

기술 적합한 사용 사례
RESTful 간단한 CRUD에 적합 (예: 블로그 API)
GraphQL 클라이언트가 필요한 데이터만 요청 (예: 복잡한 쿼리)
gRPC 고성능 통신이 필요할 때 (예: 마이크로서비스)

RESTful은 여전히 가장 널리 사용되는 API 설계 방식입니다! 🚀

'프로그래머로의 여정' 카테고리의 다른 글

인터넷(Internet)과 인트라넷(Intranet)  (0) 2025.05.14
Ollama(올라마)  (0) 2025.05.13
네이티브 모듈(Native Module)  (0) 2025.05.10
시맨틱 태그(Semantic Tags)란  (0) 2025.05.05
html 의 meta tag  (0) 2025.04.24