REST와 REST 컨벤션 정리
REST란?
REST(Representational State Transfer)는 웹에서 리소스를 HTTP URI(URL)로 표현하고, **HTTP 메서드(GET, POST, PUT, DELETE 등)**를 통해 리소스를 조회/생성/수정/삭제하는 아키텍처 스타일이다.
특징
- 리소스(데이터)는 URL로 표현
- 리소스의 상태 변경은 HTTP 메서드로 표현
- 클라이언트-서버 구조
- 무상태성(Stateless)
- 계층적 URI 구조
예시
- GET /users → 전체 사용자 조회
- GET /users/1 → 1번 사용자 조회
- POST /users → 사용자 생성
- PUT /users/1 → 1번 사용자 전체 수정
- DELETE /users/1 → 1번 사용자 삭제
REST 컨벤션이란?
REST를 실무에서 일관성 있게 사용하기 위해 정한 실무 가이드라인/규칙이다. REST 자체가 아닌, REST를 어떻게 잘 구현할 것인지에 대한 팀/프로젝트의 약속이다.
주요 컨벤션 규칙
- URL은 명사만 사용 → /deleteUser/1 ❌ /users/1 ✅
- URL은 복수형 사용 → /user ❌ /users ✅
- HTTP 메서드로 동작 구분 → 조회(GET), 생성(POST), 수정(PUT/PATCH), 삭제(DELETE)
- 계층적 구조 사용 → /users/1/posts (1번 사용자의 게시글 목록)
- URL은 소문자 사용, 하이픈 또는 슬래시로 구분
예시 비교
- 나쁜 예: POST /createUser, GET /getUserInfo
- 좋은 예: POST /users, GET /users/1
REST vs REST 컨벤션 요약 비교
항목 REST REST 컨벤션
정의 | 웹 리소스를 URI + HTTP 메서드로 조작하는 아키텍처 스타일 | REST 원칙을 실무에서 일관성 있게 쓰기 위한 규칙 모음 |
목적 | 시스템 간 통신 방식 정의 | 실무 코드의 가독성/유지보수성 향상 |
표준화 여부 | 원칙은 있지만 자유도 있음 | 팀/회사마다 약속이 다를 수 있음 |
결론
- REST는 큰 틀에서의 원칙
- REST 컨벤션은 이를 어떻게 실무에서 "예쁘게" 적용할지에 대한 가이드라인
- 프로젝트마다 REST 컨벤션은 달라질 수 있으며, 팀 내부 약속을 문서화하고 따르는 것이 중요하다.
'웹 개발' 카테고리의 다른 글
@PathVariable VS @RequestBody VS @RequestParam 사용하는 경우 (0) | 2025.04.25 |
---|---|
JWT 저장 & 통신 방식 (0) | 2025.04.24 |
id vs 인증 사용자 정보 차이 (0) | 2025.04.24 |
엔드포인트 설계(프론트, 백 HTTP통신시 중요) (0) | 2025.04.23 |
Django 프레임워크 가상환경에서 개발하기 (0) | 2025.03.14 |