인프런 커뮤니티 질문&답변

지현명님의 프로필 이미지
지현명

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

HTTP Status Code 제어

createUser에서 응답 형태를 왜 ResponseEntity<User> 하는지요?

작성

·

278

3

System.out.println("location = " + location);를 찍어보니
"location = http://localhost:8088/users/4"
이렇게 나오는데 이건 User 데이터 클래스와 다른데 왜 응답 형태를
ResponseEntity<User> 이렇게 하는지 궁금합니다.
 

답변 1

9

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

@ResetController를 사용하면서 메소드의 반환 값으로 ResponseEntity를 사용하지 않아도, String, Object, Map<String, String>등과 같은 형태로도 클라이언트에 값을 전달할 수 있습니다. 그러나, ResponseEntity를 사용하게 되면, 반환 데이터를 위한 Response Status Code를 포함해서 전달할 수 있기 때문에, 단순하게 500에러나, 200 성공 코드이외의 다른 상태 값들도 전달할 수 있습니다. 

createUser()에서 ResponseEntity를 사용한 목적은 HATEOS 기능을 사용해 보기 위함이고, 사용자의 생성과 동시에 상세보기를 하기 위해서 또다른 요청정보를 서버에 보내지 않더라도, 생성 작업의 결과로 상세정보를 위한 URL 값을 같이 얻기 위해서 입니다. 한번의 생성요청으로 상세보기를 위한 URL값을 같이 얻을 수 있기 때문에, 네트워크 비용이 발생하지 않게 됩니다. 

감사합니다. 

지현명님의 프로필 이미지
지현명

작성한 질문수

질문하기