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) |
|
| 생성 (POST) |
|
| 수정 (PUT) |
|
| 삭제 (DELETE) |
|
✅ 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 |