1. 개념 설명 (Concept)
- HTTP 상태 코드(HTTP Status Code):
클라이언트 요청에 대해 서버가 어떤 결과를 반환했는지 숫자로 알려주는 규약.- 2xx: 성공(Success) → 요청이 정상적으로 처리됨
- 3xx: 리다이렉션(Redirection) → 다른 위치로 이동 필요
- 4xx: 클라이언트 오류(Client Error) → 잘못된 요청
- 5xx: 서버 오류(Server Error) → 서버 문제
- API 응답(Response) 설계:
- 단순히 데이터를 주는 게 아니라, 상태 코드 + 메시지 + 데이터 구조로 통일해야 클라이언트가 해석하기 쉽다.
- 예 (Spring Boot 기준 JSON 응답 예시)
{ "status": 200, "message": "조회 성공", "data": { "userId": 1, "name": "Lee Kyunghoon" } }
2. 올바른 용어 (Terminology)
- HTTP Status Code (HTTP 상태 코드)
- Response Body (응답 본문)
- Response Header (응답 헤더)
- Error Handling (오류 처리)
- Payload (페이로드, 응답 데이터 자체)
3. 잘못 쓰기 쉬운 표현 + 실제 맥락 (Misuse & Context)
- ❌ “에러 났다 = 서버 터졌다” → 문법 오류나 서버 크래시가 아니라 HTTP 4xx/5xx 응답을 말하는 경우가 많음.
- ❌ “200 OK만 쓰면 되잖아요?” → 현업에서는 201 Created, 204 No Content, 400 Bad Request, 404 Not Found, 500 Internal Server Error 등을 정확히 구분해야 함.
- ✅ 실제 맥락: “유저 생성 API는 성공 시 201을 반환하고, body에는 새 유저의 id를 포함시킵시다.”
4. 면접 예시 (Interview Q&A)
- Q: API에서 회원가입 성공 시 어떤 상태 코드를 반환하는 게 맞나요?
- A: 일반적으로 201 Created를 반환하고, 생성된 리소스의 위치를 Location 헤더에 담을 수 있습니다.
- Q: 200 OK와 204 No Content의 차이는 무엇인가요?
- A: 200 OK는 응답 본문에 데이터를 포함할 때, 204 No Content는 성공했지만 반환할 데이터가 없을 때 사용합니다.
5. 검증 요약 (Self-Check)
- 가정: HTTP 상태 코드와 API 응답 구조를 아직 헷갈릴 수 있음.
- 확인 포인트: 2xx/3xx/4xx/5xx 범위별 의미 구분, API에서 status/message/data 구조 설계.
- 리스크: 모든 API에서 무조건 200만 쓰면, 클라이언트가 상황을 제대로 파악하지 못함.
- 최종 자신도: 높음 (기초 개념 + 실무 맥락까지 정리됨).
6. 추가 학습 과제 (Next Task)
👉 자주 쓰이는 상태 코드 5개는 꼭 외워야 합니다.
코드의미사용 예시
| 200 OK | 성공 | 일반 조회 |
| 201 Created | 생성됨 | 회원가입, 게시글 작성 |
| 204 No Content | 성공했으나 본문 없음 | 삭제 API |
| 400 Bad Request | 클라이언트 잘못 | 파라미터 누락 |
| 500 Internal Server Error | 서버 오류 | DB 장애, NullPointerException |
3일차 확인 퀴즈
1, HTTP 상태 코드 범위별 의미를 올바르게 짝지으세요.
- (A) 2xx
- (B) 3xx
- (C) 4xx
- (D) 5xx
① 서버 오류(Server Error)
② 성공(Success)
③ 클라이언트 오류(Client Error)
④ 리다이렉션(Redirection)
정답: a=2, b=4, c=3, d=1
2, 회원가입 API를 설계한다고 가정할 때, 성공적으로 유저가 생성되었을 때 적절한 상태 코드는 무엇인가요?
① 200 OK
② 201 Created
③ 204 No Content
④ 400 Bad Request
정답: 2
3, 다음 중 204 No Content가 적절한 상황은 무엇일까요?
① 유저 프로필 조회 성공 시
② 회원가입 성공 시 새 유저 ID 반환
③ 특정 게시글 삭제 성공 시
④ 잘못된 요청 파라미터가 들어왔을 때
정답: 3
4, 클라이언트가 잘못된 요청을 보낸 경우 반환해야 하는 상태 코드는?
① 200
② 201
③ 400
④ 500
정답: 3
5, API 응답 설계에서 status, message, data 구조를 쓰는 이유로 옳은 것은?
① 서버 코드가 줄어들기 때문
② 클라이언트가 응답을 해석하기 쉽게 하기 때문
③ 모든 요청이 200 OK로 끝나기 때문
④ DB 성능을 향상시키기 때문
정답: 4
✨ 핵심 정리 (3일차 최종 복습)
- 200 OK: 일반 조회 성공
- 201 Created: 생성 성공 (회원가입, 게시글 작성)
- 204 No Content: 성공했지만 본문 없음 (삭제 API)
- 400 Bad Request: 클라이언트 요청 잘못
- 500 Internal Server Error: 서버 내부 오류
👉 그리고 응답은 status + message + data 구조로 통일해야, 클라이언트가 상황을 정확히 해석 가능!
'2025 Dev Log > 2025.Backend' 카테고리의 다른 글
| [#3][다시, 처음부터 #5]JWT(Json Web Token) 기반 인증 (0) | 2025.09.23 |
|---|---|
| [#3][다시, 처음부터 #4]서버의 동작 방식과 상태 관리 (0) | 2025.09.17 |
| [#3][다시, 처음부터 #2] HTTP & REST 기본기 (0) | 2025.09.09 |
| [#3][다시, 처음부터 #1] 백엔드란+ 서버/클라이언트 기본 개념 (0) | 2025.09.06 |
| [#2][AWS 배포 시리즈 4편] 도메인 구매 & 퍼블릭 IP 연결 (5) | 2025.08.13 |