일급 컬렉션(First-Class Collection)은 하나의 컬렉션을 감싸는 클래스를 만들고, 해당 클래스에서 컬렉션과 관련된 비즈니스 로직을 관리하는 패턴을 말합니다.
// 일급 컬렉션
public class Orders {
private final List<Order> orders;
public Orders(List<Order> orders) {
validate(orders); // 검증 수행
...
}
public void add(Order order) {
if (order == null) {
throw new IllegalArgumentException("Order cannot be null");
}
orders.add(order);
}
public List<Order> getAll() {
return Collections.unmodifiableList(orders);
}
public double getTotalAmount() {
return orders.stream()
.mapToDouble(Order::getAmount)
.sum();
}
}
일급 컬렉션을 사용해야 하는 이유는 무엇인가요?
일급 컬렉션 클래스에 로직을 포함하거나 비즈니스에 특화된 명확한 이름을 부여할 수 있습니다. 또한, 불필요한 컬렉션 API를 외부로 노출하지 않도록 할 수 있으며, 컬렉션을 변경할 수 없도록 만든다면 예기치 않은 변경으로부터 데이터를 보호할 수 있습니다.
'백엔드 면접' 카테고리의 다른 글
| 트랜잭션 격리 수준에 대해서 설명해 주세요. (0) | 2024.12.03 |
|---|---|
| 데이터베이스 인덱스에 대해서 설명해 주세요. (0) | 2024.12.02 |
| Checked Exception과 Unchecked Exception에 대해서 설명해 주세요. (0) | 2024.12.01 |
| JPA의 N + 1 문제에 대해서 설명해 주세요. (0) | 2024.11.30 |
| 엔티티 매니저에 대해 설명해 주세요. (0) | 2024.11.30 |