Spring_13_ResponseEntity

OngTK·2025년 9월 15일

Spring

목록 보기
13/25

📦 ResponseEntity


✅ 1. 정의

  • ResponseEntitySpring에서 HTTP 응답을 커스터마이징할 수 있도록 제공하는 클래스
  • HTTP 상태 코드, 헤더, 바디를 직접 설정하여 클라이언트에게 응답을 보낼 수 있음

✅ 2. 목적

  • 정확한 HTTP 응답 제어를 위해 사용
  • REST API에서 상태 코드, 응답 데이터, 헤더 등을 명확하게 전달

✅ 3. 주요 기능

기능설명
상태 코드 설정HttpStatus.OK, HttpStatus.BAD_REQUEST
응답 바디 설정객체, 문자열, JSON 등
응답 헤더 설정Content-Type, Location, Authorization

✅ 4. 사용 예시

📌 기본 응답

return ResponseEntity.ok("요청이 성공적으로 처리되었습니다.");

📌 객체 반환

MemberDto member = new MemberDto("홍길동", 30, "hong@example.com");
return ResponseEntity.ok(member);

📌 상태 코드 변경

return ResponseEntity.status(HttpStatus.CREATED).body("회원가입 완료");

📌 상태 코드 설정

return ResponseEntity.status(200).body("회원가입 완료");

📌 헤더 포함

HttpHeaders headers = new HttpHeaders();
headers.add("Custom-Header", "Value");

return ResponseEntity
    .status(HttpStatus.OK)
    .headers(headers)
    .body("헤더 포함 응답");

✅ 5. 장점

  • 유연한 응답 구성: 상태 코드, 바디, 헤더를 자유롭게 설정 가능
  • RESTful API에 적합: 클라이언트와의 명확한 통신 구조 제공
  • 에러 처리에 유용: 예외 발생 시 적절한 상태 코드와 메시지 반환 가능

✅ 6. 실무 활용 예시

📌 조건에 따라 다른 응답 처리

if (userService.exists(email)) {
    return ResponseEntity.status(HttpStatus.CONFLICT).body("이미 존재하는 이메일입니다.");
} else {
    userService.save(user);
    return ResponseEntity.status(HttpStatus.CREATED).body("회원가입 성공");
}

✅ 7. HTTP 응답(반환) 코드

📌 200 번 대 : 성공

  • 200 : 요청 성공 + 응답 데이터 포함
  • 201 : 요청 성공 + 저장 성공
  • 202 : 요청 성공 + 아직 처리중 (= 비동기 작동)
  • 204 : 요청 성공 + 응답 데이터 없음(void)

📌 300 번 대 : 리다이렉션, URL 이동 (다른 도메인으로 이동)

  • 301 : 요청 정보가 다른 URL로 이동
  • 302 : 임시적으로 다른 URL로 이동
  • 304 : 캐시(임시저장 = 1회 이상 조회한 기록) 사용

📌 400 번 대 : 클라이언트 오류

  • 400 : 요청 형식 오류, QueryString/Body 등이 잘못되어 있음
  • 401 : 인증 실패, 로그인 안 됨
  • 403 : 접근 권한 없음, 권한 거부
  • 404 : 요청 경로·자원이 없음 - url 오류
  • 405 : HTTP METHOD 오류
  • 409 : 자료 중복
  • 415 : Header - Content/Type 오류

📌 500 번 대 : 서버 오류

  • 500 : 서버 내부 오류
  • 503 : 서버·스레드 과부하, 점검 알림
profile
2025.05.~K디지털_풀스택 수업 수강중

0개의 댓글