조회 결과가 없을때 HTTP 응답 코드

백엔드&인프라 추종자·2025년 2월 15일

결과가 없을 때의 HTTP 응답 코드상황에 따라 다르게 선택해야 합니다.


1️⃣ 200 OK (가장 일반적, 추천)

요청이 성공했지만 데이터가 없을 때
✔ 응답 본문을 빈 배열([]) 또는 빈 객체({}) 로 반환

HTTP/1.1 200 OK
Content-Type: application/json

[]

📌 사용 예시

  • GET /products 요청 시 상품이 하나도 없을 때
  • 검색 결과가 없을 때
  • 데이터가 없지만 API 요청 자체는 정상적으로 처리된 경우

💡 RESTful API에서는 200 OK + 빈 배열([])을 많이 사용합니다.


2️⃣ 204 No Content (응답 본문이 필요 없을 때)

요청은 성공했지만, 응답 본문이 필요하지 않은 경우
JSON 본문을 포함할 수 없음 (204 응답에는 본문이 없음)

HTTP/1.1 204 No Content

📌 사용 예시

  • DELETE /user/123 요청 후 성공했지만 반환할 내용이 없을 때
  • 데이터를 조회했지만 빈 본문을 보내는 것이 적절한 경우

💡 클라이언트가 응답 데이터를 필요로 하지 않는다면 204를 사용하는 것이 좋습니다.


3️⃣ 404 Not Found (리소스 자체가 없을 때)

요청한 리소스 자체가 존재하지 않을 때
✔ "빈 결과"가 아니라 해당 ID 또는 리소스가 아예 없을 때

HTTP/1.1 404 Not Found
Content-Type: application/json

{
    "error": "User not found"
}

📌 사용 예시

  • GET /users/999 요청 시 999번 사용자가 존재하지 않을 때
  • 특정 ID를 조회했지만 해당 데이터가 없을 때

💡 리스트 조회(GET /users → 데이터 없음)라면 200 OK가 적절하지만, 특정 리소스를 찾을 때(GET /users/999)라면 404가 적절합니다.


4️⃣ 204 vs 200 OK 언제 사용할까?

상황추천 상태 코드이유
전체 목록 조회 (GET /products) - 결과 없음200 OK + []클라이언트가 비어 있는 데이터도 처리할 수 있도록
특정 리소스 조회 (GET /users/999) - 존재하지 않음404 Not Found해당 사용자가 존재하지 않음
데이터 삭제 (DELETE /users/123) - 성공204 No Content삭제 후 반환할 데이터가 없음

🔥 결론: 일반적인 API 설계 가이드

  1. 리스트 조회 시 결과가 없으면?200 OK + 빈 배열([])
  2. 특정 리소스가 없으면?404 Not Found
  3. 데이터 삭제 후 반환할 내용이 없으면?204 No Content

📌 상황에 맞게 적절한 응답 코드를 사용하면, API의 가독성과 유지보수성이 좋아집니다. 😊

profile
AI 답변 글을 주로 올립니다.

0개의 댓글