서버(Spring)가 클라이언트의 요청 처리 결과를 숫자로 응답하는 코드입니다.
| 구분 | 상태 코드 | 의미 | 설명 |
|---|---|---|---|
| 2XX (성공) | 200 | OK | 요청 성공 + 응답 데이터 존재 |
201 | Created | 요청 및 저장 성공 | |
202 | Accepted | 요청 승인, 아직 처리 중 (비동기 처리 시 사용) | |
204 | No Content | 요청 성공하지만 응답 데이터 없음 (String, void 등) | |
| 3XX (리다이렉션) | 301 | Moved Permanently | 요청 자원이 영구적으로 다른 URL로 이동 |
302 | Found | 임시적으로 다른 URL로 이동 | |
304 | Not Modified | 캐시(임시저장된 데이터) 사용, 빠른 조회 가능 | |
| 4XX (클라이언트 오류) | 400 | Bad Request | 요청 형식 오류 (쿼리스트링, body 등) |
401 | Unauthorized | 인증 실패 | |
403 | Forbidden | 권한 없음 (접근 거부) | |
404 | Not Found | 요청한 경로 또는 자원 없음 | |
405 | Method Not Allowed | HTTP 메서드 오류 | |
409 | Conflict | 요청한 자료가 중복 | |
415 | Unsupported Media Type | Content-Type 오류 | |
| 5XX (서버 오류) | 500 | Internal Server Error | 서버(Spring/Java 내부) 오류 |
503 | Service Unavailable | 서버 과부하 또는 점검 중 |
Spring에서는 HTTP 상태 코드 + 응답 본문을 함께 전송하기 위해 ResponseEntity<T> 클래스를 사용합니다.
| 항목 | 설명 |
|---|---|
| 클래스명 | ResponseEntity<T> |
| 제네릭 타입 | 응답 바디의 타입(<T>) 지정 ex) ResponseEntity<MemberDto> |
| 사용 목적 | 프론트엔드 개발자가 응답 코드를 기반으로 상태를 쉽게 파악하기 위함 |
💻 예시 코드
// Controller 내부 예시
public ResponseEntity<MemberDto> getMember() {
MemberDto dto = new MemberDto();
// 응답 코드 + 본문 동시 반환
return ResponseEntity.status(200).body(dto);
}
| 항목 | 설명 |
|---|---|
| 정의 | 클래스의 멤버 변수 타입을 객체 생성 시점에 지정하는 문법 |
| 특징 | 클래스 설계 시 타입을 고정하지 않아, 여러 자료형에 유연하게 적용 가능 |
| 제한 사항 | 기본 타입(int, double 등)은 사용 불가능 → Wrapper 클래스로 대체 |
| 구분 | 타입 | 예시 |
|---|---|---|
| 기본 타입 | 원시형 (Primitive type) | byte, short, int, long, float, double, char, boolean |
| 참조 타입 | 객체/배열/인터페이스 | String, ArrayList, Map 등 |
| Wrapper 클래스 | 기본 타입을 객체로 변환 | Integer, Double, Boolean, Character 등 |
💡 예시:
ResponseEntity<Integer>와 같이 Wrapper 타입으로 제네릭을 지정해야 함.