1. API URI 설계의 핵심: 리소스 식별
좋은 URI 설계를 위해서는 행위(동사)와 리소스(명사)를 분리하는 것이 가장 중요합니다.
- 리소스 중심 설계: '회원을 등록/수정'하는 행위 자체가 아니라, '회원'이라는 개념 자체가 리소스입니다.
- URI 구성: URI는 오직 리소스만 식별하며, 계층 구조를 활용합니다.
- 회원 목록 조회: /members
- 회원 단건 조회/등록/수정/삭제: /members/{id}
- 구분 방법: URI가 동일하더라도 HTTP 메서드를 통해 어떤 행위(조회, 등록 등)를 할지 구분합니다.
2. 주요 HTTP 메서드 종류
메서드 주요 역할 특징
| GET | 리소스 조회 | 데이터를 쿼리 파라미터를 통해 전달하며, 메시지 바디 사용은 권장되지 않음. |
| POST | 요청 데이터 처리 | 주로 신규 리소스 등록이나 프로세스 처리(결제 완료 → 배달 시작 등)에 사용. |
| PUT | 리소스 대체 | 리소스가 있으면 완전히 덮어쓰고, 없으면 생성함. 클라이언트가 리소스의 구체적인 위치(URI)를 알고 있어야 함. |
| PATCH | 리소스 부분 변경 | 리소스의 전체가 아닌 특정 필드만 수정할 때 사용. |
| DELETE | 리소스 삭제 | 지정한 리소스를 제거함. |
기타 메서드: 헤더 정보만 조회하는 HEAD, 통신 가능 옵션을 설명하는 OPTIONS, 터널 설정을 위한 CONNECT, 경로 테스트용 TRACE 등이 있습니다.
3. HTTP 메서드의 속성
메서드의 특성을 이해하면 안정적인 시스템 설계가 가능합니다.
① 안전 (Safe)
- 호출해도 리소스를 변경하지 않는 속성입니다.
- 해당 메서드: GET, HEAD, OPTIONS, TRACE.
② 멱등 (Idempotent)
- 한 번 호출하든 100번 호출하든 결과가 똑같은 속성입니다.
- GET (조회 결과 동일), PUT (덮어쓰므로 결과 동일), DELETE (삭제 후 결과 동일)는 멱등입니다.
- POST는 멱등이 아닙니다. (예: 결제 버튼을 두 번 누르면 중복 결제 발생 위험).
- 활용: 서버 타임아웃 발생 시 클라이언트가 자동으로 재요청을 해도 되는지 판단하는 근거가 됩니다.
③ 캐시가능 (Cacheable)
- 응답 결과를 로컬에 저장해서 재사용할 수 있는지 여부입니다.
- GET, HEAD는 실제 캐시로 널리 사용되지만, POST, PATCH는 본문(Body) 내용까지 키로 관리하기 어려워 실제로는 잘 사용되지 않습니다.
'INFLEARN' 카테고리의 다른 글
| [모든 개발자를 위한 HTTP 웹 기본 지식] 5. HTTP 상태코드 (HTTP Status Codes) (0) | 2026.03.31 |
|---|---|
| [모든 개발자를 위한 HTTP 웹 기본 지식] 4. HTTP 메서드 활용 및 API 설계 (0) | 2026.03.27 |
| [모든 개발자를 위한 HTTP 웹 기본 지식] 2. URI의 개념과 웹 브라우저의 요청 흐름 (0) | 2026.03.27 |
| [모든 개발자를 위한 HTTP 웹 기본 지식] 1. 인터넷 네트워크 (0) | 2026.03.26 |
| [스프링 핵심 원리 - 기본편] 17. 빈 스코프(Singleton, Prototype, Request, Proxy) (0) | 2026.03.24 |