4.2.4 예제: 오퍼링 목록
피플그로우! 웹 시스템에는 현재 오퍼링 목록, 등록된 인원 수, 남은 자리 수를 보여주는 페이지가 있다. Offering 엔터티에는 이 모든 정보가 들어 있다. 그러나 이 엔터티 전체를 프런트엔드 클라이언트에게 반환하면, 클라이언트가 필요하지 않은 과도한 정보를 전달하게 된다. 예를 들어 이 페이지에서는 등록한 직원의 이름이 필요하지 않다. 어떤 아키텍처에서는 직원 목록을 반환하는 것이 성능 부담을 초래할 수도 있다. 데이터베이스에 더 많은 쿼리를 해야 하기 때문이다.
코드 4-3 Offering 클래스
class Offering {
private int id;
private Training training;
private LocalDate date;
private Set<Employee> employees;
private int maximumNumberOfAttendants;
private int numberOfAvailableSpots;
// 관련된 생성자, 게터, 세터
}