등록과 조회의 HTTP 계약을 분리한다

성공과 실패는 상태 코드, 헤더, 본문을 함께 읽어야 다음 클라이언트 행동이 정해진다.

요청 성공 계약 대표 실패
POST /posts 201 + Location 400 · 409
GET /posts/{id} 200 + JSON 404
GET /posts 200 + JSON 배열 표현 협상 실패