Spring 기초 정리 - ResponseEntity

Zyoon·2025년 5월 14일

Spring 기초정리

목록 보기
4/18
post-thumbnail

💡ResponseEntity 정리


ResponseEntity


ResponseEntity 란?

  • Spring Framework 에서 HTTP 응답 전체를 제어할 수 있도록 도와주는 클래스
  • 주로 REST API 개발에서 많이 사용한다.
  • 단순히 데이터만 반환하는 것이 아니라 HTTP 상태 코드, 응답 헤더, 응답 Body 등을 설정할 수 있다.

ResponseEntity를 사용하는 이유

  1. HTTP 상태 코드 지정 가능

    • 예: 200 OK, 404 Not Found, 201 Created 등 명확한 응답 의미 부여
    return new ResponseEntity<>(data, HttpStatus.OK);
    return ResponseEntity.ok("응답 성공"); //축약형
  2. 응답 헤더 설정 가능

    • 예: CORS 설정, 캐시 제어, 커스텀 헤더 등
    HttpHeaders headers = new HttpHeaders();
    headers.add("Custom-Header", "value");
    return new ResponseEntity<>(data, headers, HttpStatus.OK);
  3. 조건에 따라 유연한 응답 처리

    • 예: 요청 처리 성공/실패 여부에 따라 다른 응답
    if (member == null) {
        return new ResponseEntity<>(HttpStatus.NOT_FOUND);
    }
    return new ResponseEntity<>(user, HttpStatus.OK);
  4. RESTful API 설계에 적합

    • REST에서는 클라이언트와 서버 간의 상태 전달이 중요 → 상태 코드, 메시지 등을 명확히 전달할 수 있어 적합

주로 사용되는 응답 코드

// 게시글 조회 성공 - 200
return ResponseEntity.ok(postDto);

// 회원가입 성공 - 201
return ResponseEntity.status(HttpStatus.CREATED).body("회원가입 성공");

// 게시글 삭제 성공 - 204
return ResponseEntity.noContent().build();

// 로그인 실패 (비밀번호 틀림 등) - 401
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("로그인 실패");

// 접근 권한 없음 - 403
return ResponseEntity.status(HttpStatus.FORBIDDEN).body("접근 권한이 없습니다");

// 게시글 없음 - 404               
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("게시글을 찾을 수 없습니다");

// 아이디 중복 - 409
return ResponseEntity.status(HttpStatus.CONFLICT).body("이미 존재하는 아이디입니다");

// 서버 오류 - 500
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("서버 오류");
profile
기어 올라가는 개발

0개의 댓글