※ 실제 프로젝트를 진행하며 얻은 지식을 정리한 내용입니다.
※ 이론적인 내용보단 실무에서 사용하는 방식 위주로 작성하였습니다.
※ 잘못된 내용이 있다면 댓글로 지적 부탁드리겠습니다.
1. ResponseEntity란?
1) ResponseEntity는 @RestController에서 REST API 응답을 처리할 때 사용하는 클래스입니다.
2) HttpEntity를 상속받아 구현되었습니다. 이를 활용하면 HTTP 응답의 상태 코드, 헤더, 본문을 유연하게 제어할 수 있습니다.
2. HttpEntity란?
1) HttpEntity는 HTTP 요청 또는 응답을 나타내는 객체로, HttpHeader(헤더)와 HttpBody(본문)를 포함합니다.
1. HTTP 요청: 클라이언트(브라우저, 앱, API)가 서버에 정보를 요청하는 과정입니다.
2. 헤더(Header): 응답 상태 코드(200, 500 등), 쿠키, 응답 형식(JSON, TEXT 등)과 같은 추가 정보를 제공합니다.
3. 본문(Body): 실제 응답 데이터가 담기는 부분으로, 일반적으로 JSON 형식을 사용합니다.
4. 일반적인 상황에서는 바디만 설정함, 특정 상황(인증, 파일 다운로드, 캐싱 등)인 경우 헤더를 설정합니다.
2) 예를 들어, 게시판에서 화면에 뿌릴 데이터를 호출 하면 데이터가 Body에 담겨서 온다! 라고 생각하면 됩니다.
3. ResponseEntity를 사용하는 이유
1) HTTP 응답을 유연하게 제어할 수 있습니다.
1. 일반 객체를 반환해도 Spring이 자동으로 JSON 응답을 생성하지만, ResponseEntity를 사용 시 응답 상태 코드와 헤더를 직접 설정할 수 있습니다.
2. 다양한 HTTP 상태 코드(200 OK, 201 Created, 400 Bad Request, 500 Internal Server Error 등)를 지정하여 클라이언트에게 명확한 응답을 제공할 수 있습니다.
2) 응답 헤더 추가 가능합니다.
3) 예외 처리에 유용합니다.
1. ResponseEntity를 활용하면 예외 발생 시 적절한 HTTP 상태 코드와 함께 메시지를 반환할 수 있습니다.
4. 예재코드
return ResponseEntity.ok()
.body(new resDTO
.Builder(Util.message(Test.TestService.Success))
.set("data", data)
.build());
※ resDTO는 사용자가 만든 별도의 객체입니다.
※ Util은 사용자가 만든 클래스입니다.
1. 코드설명
1) ResponseEntity.ok() → HTTP 상태 코드 200을 설정합니다.
2) .body는 응답 본문(=body)을 설정하는 메서드, 여기선 resDTO 객체가 응답 본문이 됩니다.
3) .Builder를 사용하여 객체생성(빌더 패턴), 객체 생성 시 여러 값을 한번에 설정할 수 있다.
4) Util.message(Test.TestService.Success)로 성공메세지를 가지고 옴,
5) .set()은 결과 Object를 설정 하는 resDto의 메소드로 "data"에 쿼리 결과값인 data를 할당
6) .build()로 객체를 최종 생성
'2F(IT) > Spring Boot' 카테고리의 다른 글
| Spring Batch 개념 및 예제 (0) | 2025.03.28 |
|---|---|
| Spring Boot 어노테이션 - 컨트롤러 데이터 및 화면 호출 (0) | 2025.02.17 |
| Spring Boot 어노테이션(annotation) 기본 (5) | 2025.01.02 |
| JPA구조, Mybatis 구조의 차이 (3) | 2025.01.01 |
| STS Navigator 설정(Project Explorer) (6) | 2024.12.27 |