결과가 없을 때의 HTTP 응답 코드는 상황에 따라 다르게 선택해야 합니다.
200 OK (가장 일반적, 추천)✔ 요청이 성공했지만 데이터가 없을 때
✔ 응답 본문을 빈 배열([]) 또는 빈 객체({}) 로 반환
HTTP/1.1 200 OK
Content-Type: application/json
[]
📌 사용 예시
GET /products 요청 시 상품이 하나도 없을 때 💡 RESTful API에서는 200 OK + 빈 배열([])을 많이 사용합니다.
204 No Content (응답 본문이 필요 없을 때)✔ 요청은 성공했지만, 응답 본문이 필요하지 않은 경우
✔ JSON 본문을 포함할 수 없음 (204 응답에는 본문이 없음)
HTTP/1.1 204 No Content
📌 사용 예시
DELETE /user/123 요청 후 성공했지만 반환할 내용이 없을 때 💡 클라이언트가 응답 데이터를 필요로 하지 않는다면 204를 사용하는 것이 좋습니다.
404 Not Found (리소스 자체가 없을 때)✔ 요청한 리소스 자체가 존재하지 않을 때
✔ "빈 결과"가 아니라 해당 ID 또는 리소스가 아예 없을 때
HTTP/1.1 404 Not Found
Content-Type: application/json
{
"error": "User not found"
}
📌 사용 예시
GET /users/999 요청 시 999번 사용자가 존재하지 않을 때 💡 리스트 조회(GET /users → 데이터 없음)라면 200 OK가 적절하지만, 특정 리소스를 찾을 때(GET /users/999)라면 404가 적절합니다.
204 vs 200 OK 언제 사용할까?| 상황 | 추천 상태 코드 | 이유 |
|---|---|---|
전체 목록 조회 (GET /products) - 결과 없음 | 200 OK + [] | 클라이언트가 비어 있는 데이터도 처리할 수 있도록 |
특정 리소스 조회 (GET /users/999) - 존재하지 않음 | 404 Not Found | 해당 사용자가 존재하지 않음 |
데이터 삭제 (DELETE /users/123) - 성공 | 204 No Content | 삭제 후 반환할 데이터가 없음 |
200 OK + 빈 배열([]) 404 Not Found 204 No Content 📌 상황에 맞게 적절한 응답 코드를 사용하면, API의 가독성과 유지보수성이 좋아집니다. 😊