FoodController의 메서드들은 요청 HTTP 방식으로 매핑하며, 응답결과에 HTTP상태코드와 본문을 실어서 보내는 방식을 사용하고 있다. Spring HATEOAS는 이 응답결과에 서버에 요청을 할 수 있는 URI를 같이 보내주어 클라이언트에서는 정적인 URI를 이용하여 통신을 하지않고, 동적으로 서버에 접근할 수 있다. 서버에서 URI를 제공한다면 클라이언트가 정적으로 서버의 자원에 접근할 때 사용할 URI 들을 가지고 있지 않아도 된다. Spring HATEOAS 모듈을 사용해서 FoodController를 리팩토링 한다. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> pom.xml 파일에서 spring-boot-starter-web dependency를 위와 같이 변경한다. Food 클래스의 형태만 베낀 데이터 전달용 객체(DTO, Data Transfer Object)를 작성한다. package com.poseidon.fridge.model; import org.springframework.hateoas.ResourceSupport; import com.fasterxml.jackson.annotation.JsonProperty; public class FoodResource extends ResourceSupport { @JsonProperty long id; @JsonProperty String name; @JsonProperty int quantity; @JsonProperty String expiryDate; } ResourceSupport 클래스를 서브클래스로 하는 FoodResource 클래스를 작