Next.js에서 백엔드 코드를 짜던 중 status codes에 대해 자세히 알아보고 싶어서 정리하는 글입니다.
제일 먼저 다뤄 볼 부분은 서버 오류 응답 코드입니다. 이 코드를 통해 발생한 에러를 로깅하고, 클라이언트에게 적절한 500 오류 메시지를 반환했습니다.
- 500 Internal Server Error: 서버에서 예기치 못한 상황이 발생하여 요청을 처리할 수 없습니다.
- 501 Not Implemented: 서버가 요청된 메서드를 지원하지 않습니다. 서버가 반드시 지원해야 하는 메서드는 GET과 HEAD입니다.
- 502 Bad Gateway: 서버가 게이트웨이 역할을 하면서, 잘못된 응답을 받아 요청을 처리할 수 없습니다.
- 503 Service Unavailable: 서버가 요청을 처리할 준비가 되어 있지 않습니다. 일반적으로 서버가 유지 보수 중이거나 과부하 상태일 때 발생하며, 일시적인 문제로 간주됩니다. 응답과 함께 사용자가 문제를 이해할 수 있는 페이지가 전송되어야 합니다.
- 504 Gateway Timeout: 서버가 게이트웨이 역할을 하는 동안, 필요한 응답을 제때 받지 못해 요청을 처리할 수 없습니다.
- 505 HTTP Version Not Supported: 요청에서 사용된 HTTP 버전이 서버에서 지원되지 않습니다.
- 506 Variant Also Negotiates: 서버의 내부 구성 오류로 인해 리소스가 투명한 콘텐츠 협상 과정에 참여하고, 이를 통해 최종 응답을 제공할 수 없습니다.
- 507 Insufficient Storage (WebDAV): 서버가 요청을 완료하는 데 필요한 데이터를 저장할 수 없기 때문에 요청을 처리할 수 없습니다.
- 508 Loop Detected (WebDAV): 서버가 요청을 처리하는 동안 무한 루프가 감지되었습니다.
- 510 Not Extended: 서버가 요청을 처리하기 위해 추가적인 확장이 필요합니다.
- 511 Network Authentication Required: 클라이언트가 네트워크에 접근하기 위해 인증이 필요함을 나타냅니다.
자주 사용하는 상태 코드
자주 사용하는 상태 코드
- 500 Internal Server Error: 서버 내부에서 예기치 못한 문제가 발생했을 때 사용합니다. 주로 서버 측의 오류를 로그하고, 클라이언트에게 적절한 오류 메시지를 전달할 때 자주 사용됩니다.
- 502 Bad Gateway: 서버가 다른 서버로부터 잘못된 응답을 받았을 때 사용합니다. 주로 게이트웨이 역할을 하는 서버에서의 문제를 감지하는 데 유용합니다.
- 503 Service Unavailable: 서버가 일시적으로 요청을 처리할 수 없을 때 사용합니다. 시스템 과부하나 유지 보수 중일 때 자주 발생합니다.
catch (error) {
console.log("[BILLBOARD_DELETE]", error);
return new NextResponse("서버 오류", { status: 500 });
}
이 코드를 통해 발생한 에러를 로깅하고, 클라이언트에게 적절한 500 오류 메시지를 반환했습니다.
느낀 점
서버에서 문제가 발생했을 때, 적절한 피드백을 클라이언트에게 전달하는 것이 중요하다는 것을 알게 되었습니다.
특히, 502 Bad Gateway나 503 Service Unavailable 같은 오류 코드는 시스템 상태를 모니터링하고, 요청 처리 흐름을 명확히 이해하는 데 중요한 역할을 한다는 것을 느꼈습니다. 이러한 오류 코드는 시스템의 장애나 과부하를 조기에 감지하고 대응할 수 있는 기회를 제공하며, 서버의 안정성을 유지하는 데 도움이 됩니다.
'TIL' 카테고리의 다른 글
[HTTP response status codes] Successful responses (0) | 2024.09.17 |
---|---|
[HTTP response status codes] Client error responses (0) | 2024.09.05 |
[자바스크립트의 패키지 관리 도구] npm과 yarn (2) | 2024.08.28 |
[React-Query] useInfiniteQuery로 무한스크롤 구현하기 (8) | 2024.08.27 |
Tailwind CSS, CSS-in-JS, Styled Components 비교: 왜 Tailwind를 선택했는지? (0) | 2024.08.25 |