728x90
반응형
🚨 HTTP 상태 코드 에러 핸들링 가이드
개발할 때 자주 사용하는 HTTP 상태 코드와 에러 클래스 매핑 정리! 📝

🔍 HTTP 상태 코드 정리
1xx - 정보 (Informational)
| 코드 | 이름 | 설명 |
| 100 | Continue | 계속 진행해도 됨 |
| 101 | Switching Protocols | 프로토콜 전환 |
2xx - 성공 (Success)
| 코드 | 이름 | 설명 | 사용시점 |
| 200 | OK | 성공 | 일반적인 성공 응답 |
| 201 | Created | 생성됨 | POST로 리소스 생성 |
| 204 | No Content | 내용 없음 | DELETE 성공 |
3xx - 리다이렉트 (Redirection)
| 코드 | 이름 | 설명 | 사용시점 |
| 301 | Moved Permanently | 영구 이동 | URL 영구 변경 |
| 302 | Found | 임시 이동 | URL 임시 변경 |
| 304 | Not Modified | 변경 없음 | 캐시 사용 |
4xx - 클라이언트 에러 (Client Error)
| 코드 | 이름 | 설명 | 사용시점 |
| 400 | Bad Request | 잘못된 요청( "니가 보낸 거 틀렸어") | 입력값 검증 실패 |
| 401 | Unauthorized | 인증 필요( "너 누구야?") | 로그인 안 됨, 토큰 만료 |
| 403 | Forbidden | 접근 금지( "누군지는 알겠는데, 권한 없어") | 권한 없음 |
| 404 | Not Found | 찾을 수 없음 | 리소스 없음 |
| 405 | Method Not Allowed | 메서드 불허 | 허용 안 된 HTTP 메서드 |
| 408 | Request Timeout | 요청 시간 초과 | 처리 시간 초과 |
| 409 | Conflict | 충돌 | 데이터 중복 |
| 422 | Unprocessable Entity | 처리 불가 | 의미상 오류 |
| 429 | Too Many Requests | 요청 과다("야, 그만불러") | API 한도 초과 |
5xx - 서버 에러 (Server Error)
| 코드 | 이름 | 설명 | 사용시점 |
| 500 | Internal Server Error | 서버 내부 오류( "니 잘못 아니야, 서버 문제야") | 예상치 못한 에러 |
| 502 | Bad Gateway | 게이트웨이 오류 | 외부 API 연결 실패 |
| 503 | Service Unavailable | 서비스 이용 불가 | 서버 점검, 과부하 |
| 504 | Gateway Timeout | 게이트웨이 시간 초과 | 외부 API 타임아웃 |

✅ throw 해야 할 때
- 상위 컴포넌트가 에러를 알아야 할 때
- 전역 에러 핸들러가 있을 때
- 로깅 시스템에 기록해야 할 때
❌ throw 하지 말아야 할 때
- 이미 여기서 완전히 처리했을 때 (alert 띄웠으면 끝)
- 상위에서 처리할 필요 없을 때
💁♂️ Tip: 프론트엔드에서 이 매핑표를 활용해 사용자 친화적인 에러 메시지를 보여주세요!
728x90
'Tech Notes' 카테고리의 다른 글
| 보일러 플레이트란? (0) | 2025.10.03 |
|---|---|
| 개발자라면 꼭 알아야 할 개행 문자 이야기 (0) | 2025.09.29 |
| Claude Code에서 로그인 된 계정 확인하기 (0) | 2025.09.24 |
| Redis를 사용하는 이유 (2) | 2025.09.24 |
| 서버리스 환경에서 캐싱이 동작하지 않는 이유와 해결책 (0) | 2025.09.24 |