본문 바로가기

프레임워크/Spring boot

왜 ReponseEntity를 사용할까?

Why ResponseEntity ?

  • 보통 Backend에서 Request에 대한 요청을 할때, 응답값으로 ResponseEntity를 사용하는 경우가 있다.
  • 실제로 응답값을 왜 ResponseEntity를 사용하는지에 대해 물으면 대답을 못하는 사람들이 많다.
  • 그렇다면, 왜 ResponseEntity를 사용하는지 알아보자.

ResponseEntity library

  • ResponseEntity는 org.springframework.boot:spring-boot-starter-web dependency를 추가하면 추가된다.

ResponseEntity Class Diagram

  • 자체적으로 상태값을 가지며 HttpEntity를 상속하여 구현한다.
  • 그렇다면 HttpEntity는 어떤값을 가질까

HttpEntity

  • HttpEntity는 제네릭클래스로 header값과 body값을 가진다.

  • HttpHeaders는 MultiValueMap을 상속한 클래스로 Http로 소통하기 위한 다양한 제약조건들을 변수값으로 가진다.

ResponseEntity

  • 다시 ResponseEntity로 돌아오자.
  • 위에서 HttpEntity는 header는 다양한 제약조건들을 body는 전송하려는 데이터를 가진다라는것을 알수 있었다.
  • 그렇다면 ResponseEntity가 가지는 변수인 status는 무엇을 의미할까?

  • 대표적으로 ok라는 메소드를 보자
  • 응답값으로 status(HttpStatus.OK)를 반환한다.

  • HttpStatus Enum을 따라가 확인해보면 그 값이 200이라는걸 확인할수 있다.
  • 즉, Http 전송시에 성공했다라는 응답값을 의미한다라는 걸 확인할수 있다.

결론

  • 이제 알수 있다. ResponseEntity가 무엇인지에 대해
  • ResponseEntity는 요청에 대한 응답을 보내기 위해 사용하는 객체이자 status, header, body를 가져서 요청에 대한 응답 코드가 무엇인지, 헤더에는 어떤 제약사항들이 들어 있는지, 바디값에는 어떤값이 들어있는지 알수 있게 해주는 객체일뿐이다.