안녕하세요, 토스트 데브입니다!
지난 포스팅에서는 웹 개발에서 자주 사용되는 HTTP Method에 대해 알아봤죠 이번에는 이와 밀접하게 연결된 주제, 바로 REST API에 대해 알아보겠습니다.
REST API는 웹 개발, 특히 백엔드와 프론트엔드 간의 통신에서 가장 널리 사용되는 방식인데요, 정확한 개념과 원칙을 이해하면 API를 설계하고 활용하는 데 훨씬 도움이 됩니다.
📌 REST란?
REST는 REpresentational State Transfer의 약자입니다.
2000년 로이 필딩(Roy Fielding)의 박사 논문에서 처음 제안된 아키텍처 스타일이에요.
쉽게 말해, "웹의 리소스를 일관된 방식으로 다루기 위한 규칙 모음"입니다.
REST는 웹의 기본 원칙(HTTP, URI, Stateless 등)을 따르면서 자원을 효율적으로 요청하고 처리할 수 있는 방식을 제공합니다.
🔗 REST API란?
REST API는 이 REST 원칙을 따르는 API(응용 프로그램 인터페이스)를 의미합니다.
즉, HTTP 프로토콜을 기반으로 자원(Resource)을 URI로 표현하고, 각 자원에 대해 HTTP Method를 사용하여 조작하는 API예요.
GET /users → 사용자 목록 조회
POST /users → 새 사용자 등록
GET /users/1 → 특정 사용자 정보 조회
PUT /users/1 → 사용자 정보 전체 수정
PATCH /users/1 → 사용자 정보 일부 수정
DELETE /users/1 → 사용자 삭제
🧩 REST의 6가지 핵심 원칙
REST API는 다음과 같은 원칙들을 기반으로 동작합니다:
1. 클라이언트-서버 구조 (Client-Server)
- 역할을 분리하여 유지보수성과 확장성을 높입니다.
- 클라이언트는 요청, 서버는 응답을 처리하는 구조.
2. 무상태성 (Stateless)
- 서버는 요청 간에 사용자의 상태를 저장하지 않습니다.
- 요청마다 필요한 모든 정보를 포함해야 합니다.
3. 캐시 가능성 (Cacheable)
- 응답은 캐싱이 가능한지 아닌지를 명확히 해야 하며,
- 클라이언트는 재사용 가능한 응답을 저장할 수 있습니다.
4. 계층 구조 (Layered System)
- 클라이언트는 중간 서버가 있든 없든 상관없이 동일하게 동작해야 합니다.
5. 일관된 인터페이스 (Uniform Interface)
- URI는 자원을 식별하고, HTTP Method로 행위를 구분합니다.
- 자원 중심의 설계가 핵심입니다.
6. 코드 온 디맨드 (선택적) (Code on Demand)
- 서버가 클라이언트에 스크립트나 코드를 전송할 수 있지만, 필수는 아닙니다.
🔎 RESTful이란?
“RESTful하다”는 말은 해당 API가 REST 원칙을 얼마나 잘 따르고 있는가를 의미합니다.
RESTful의 기준은 아래와 같습니다.
- URI는 명확하게 자원을 식별하고
- HTTP Method는 정확하게 의미에 맞게 사용하고
- 요청과 응답은 상태에 의존하지 않으며
- 응답 포맷(JSON 등)도 일관되면 해당 API는 "RESTful하다"고 말할 수 있습니다.
🚧 REST API 설계 시 주의할 점
- URI는 동사보다 명사 중심으로 작성
- ❌ /getUser, /deleteUser
- ✅ /users, /users/1
- HTTP Method와 의미 일치
- GET은 조회, POST는 생성, PUT은 전체 수정, PATCH는 일부 수정, DELETE는 삭제
- HTTP Status Code 적절히 사용
- 200(성공), 201(생성됨), 400(잘못된 요청), 404(찾을 수 없음), 500(서버 오류) 등
- 응답은 주로 JSON 형태로 반환
- 예측 가능하고 표준화된 구조가 유지되어야 합니다.
✅ 마무리 요약
구성 | 요소 설명 |
REST | 웹에서 리소스를 다루기 위한 설계 원칙 모음 |
REST API | REST 원칙을 따르는 API |
RESTful | REST 원칙에 잘 맞게 설계된 상태 |
EST API는 단순한 데이터 전송 수단이 아니라 웹 서비스 전체의 구조와 일관성을 책임지는 중요한 개념입니다.
#RESTAPI, #REST란, #RESTful, #HTTP메서드, #HTTPMethod, # API설계, #웹개발기초, #코딩입문, #백엔드개발, #프론트엔드개발, #URI설계, #웹개발, #토스트데브, #웹아키텍처, #JSON, #HTTP통신
'알쓸신잡 > 코딩에 대하여' 카테고리의 다른 글
[코딩에 대하여] #13 HTTP Status Code 완벽 정리, 웹 개발자를 위한 핵심 개념 (0) | 2025.07.20 |
---|---|
[코딩에 대하여] #11 HTTP Method 완벽 정리: 웹 개발의 기초부터 실전까지 (0) | 2025.07.14 |
[코딩에 대하여] #10 URL속 숨은 의미?! (0) | 2025.07.13 |
[코딩에 대하여] #09 URI? URL? URN 쉽게 파해쳐보자! (1) | 2025.07.10 |
[코딩에 대하여] #08 호스팅은 무엇이고! 어떤 종류가 있을까? (1) | 2025.07.09 |