일급 컬렉션에 대해서 설명해 주세요.

2024. 12. 2. 08:59·백엔드 면접

 

일급 컬렉션(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
'백엔드 면접' 카테고리의 다른 글
  • 트랜잭션 격리 수준에 대해서 설명해 주세요.
  • 데이터베이스 인덱스에 대해서 설명해 주세요.
  • Checked Exception과 Unchecked Exception에 대해서 설명해 주세요.
  • JPA의 N + 1 문제에 대해서 설명해 주세요.
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    자바
    JPA
    데브코스
    스프링
    백엔드 면접
    티스토리챌린지
    토스 페이먼츠
    raid
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
일급 컬렉션에 대해서 설명해 주세요.
상단으로

티스토리툴바