[SPRING] 응답을 해보자 (ResponseEntity<T>)

wannabeing·2025년 3월 24일
0

SPARTA-TIL

목록 보기
8/22

✅ 서버에서 클라이언트로 데이터를 전달하는 방법은 크게 3가지가 있다.

1. 정적 리소스

  • 정적인 HTML, CSS, JS, Image 등의 파일을 그대로 반환한다.

2. View Template (JSP, Thymeleaf)

  • 서버사이드 렌더링 뷰 템플릿을 반환한다.
  • 기본 경로: src/main/resources/templates

3. HTTP Message Body

  • 응답데이터를 직접 HTTP Response Body에 담아 반환한다.
  • 보통 JSON 형식으로 반환한다.

✅ ResponseEntity< T >

@GetMapping("response-body")
public ResponseEntity<String> responseBody() {
	// String을 반환하는 ResponseEntity
	return new ResponseEntity<>("string 반환합니다.", HttpStatus.OK);
}
  • 반환할 때, 두번째 인자로 상태코드를 반환할 수 있다.
  • HttpEntity 를 상속받았다.
    따라서 Header, Body 모두 가지고 있다.

✅ @ResponseStatus (상태코드 어노테이션)

@ResponseStatus(HttpStatus.OK)
@ResponseBody
@GetMapping("response-body")
public Tutor responseBody() {
		
	Tutor tutor = new Tutor("teacher", 100);
		
	return tutor;
}
  • 상태코드를 어노테이션으로 반환할 수도 있다.
  • 하지만, 조건에 따라 동적인 상태코드 반환은 어렵다!

✅ ResponseEntity는 상태코드를 동적으로 반환할 수 있다!

@ResponseBody
@GetMapping("response-body")
public ResponseEntity<Tutor> responseBody() {
		
	Tutor tutor = new Tutor("teacher", 100);
	
	if (조건) {
    	// ✅ JSON형태로 tutor 객체를 반환, 상태코드 : OK
		return new ResponseEntity<>(tutor, HttpStatus.OK);
	} else {
    	// ✅ JSON형태로 tutor 객체를 반환, 상태코드 : BAD REQUEST
		return new ResponseEntity<>(tutor, HttpStatus.BAD_REQUEST);
	}
}
  • HTTP Message Converter를 통하여 JSON 형태로 변환되어 반환된다.

출처

내일배움캠프 스프링 입문 5주차

profile
wannabe---ing

0개의 댓글