hyeonga_code

PreProject_05_ResponseEntity<> 본문

Project_HYEONGARL

PreProject_05_ResponseEntity<>

hyeonga 2024. 5. 13. 06:59
반응형

 

ResponseEntity

스프링 프레임워크에서 RESTful 웹 서비스를 구현할 때 많은 이점을 제공합니다.

HTTP 응답을 보다 세밀하게 제어할 수 있게 하며 상태 코드, 헤더, 응답 본문 등을 포함하는 HTTP 응답 전체를 나타낼 수 있습니다.

HttpEntity를 상속받아 구현한 클래스입니다.

 

 

1. 응답상태 코드 커스터마이징

HttpStatus

1xx : 요청을 받아 프로세스를 계속 진행합니다.

2xx : 클라이언트의 요청이 성공적으로 수신, 이해, 수용되었습니다.

3xx : 추가 동작이 필요하여 요청을 완료해야 합니다.

4xx : 클라이언트의 잘못된 요청으로 서버가 요청을 처리할 수 없습니다.

5xx : 서버가 유효한 요청에 대해 오류를 처리하지 못했습니다.

 

HttpStatus.OK : 성공적인 요청을 나타내며 상태코드 200을 반환합니다.

HttpStatus.NOT_FOUND : 요청한 리소스를 찾을 수 없음을 나타내며 상태코드 404를 반환합니다.

HttpStatus.INTERNAL_SERVER_ERROR : 서버 내부 오류가 발생했음을 나타내며 상태 코드 500을 반환합니다.

 

 

2. HTTP 헤더 수정

 

3. 응답 본문 제어

 

4. 조건부 응답 생성

 

대안 : @ResponseBody

 

 

DTO의 역할

데이터 전송에 사용되는 객체입니다.

데이터베이스의 엔티티와 1:1로 매핑되는 경우가 많습니다.

 

엔티티는 데이터베이스에 저장되고 관리되는 데이터를 나타냅니다.

DTO 클래스는 비즈니스 로직에서 사용되는 데이터 전송 객체입니다.

 

RequestDTO를 사용하는 이유

@RequestParam으로 데이터를 개별로 받을 필요 없이 객체 하나로 한번에 받을 수 있습니다.

Bean Validation, Controller에서 검증 기능을 분리할 수 있습니다.

엔티티 내부를 캡슐화하여 값이 변경되지 않도록 할 수 있습니다.

 

ResponseDTO를 사용하는 이유

넘겨줄 필요가 없는 데이터를 보내지 않을 수 있어 화면에 필요한 데이터만 보낼 수 있습니다.

순환 참조를 예방할 수 있습니다.

엔티티 내부를 캡슐화할 수 있습니다.

 

RequestDTO는 클라이언트로부터 전달받은 요청 데이터를 담고 있습니다.

컨트롤러에서 사용되어 비즈니스 로직에서 필요한 데이터를 추출하여 서비스나 DAO에 전달하는 용도로 사용됩니다.

 

ResponseDTO는 비즈니스 로직에서 생성된 데이터를 클라이언트에 반환하기 위한 객체입니다.

컨트롤러에서 생성되어 클라이언트에 반환됩니다.

클라이언트가 필요로 하는 최소한의 정보만을 전달하기 위해 사용됩니다.

불필요한 데이터를 제외하고 필요한 데이터만을 포함시켜 클라이언트의 성능과 응답 시간을 개선할 수 있습니다.

반응형