Final reference와 immutable snapshot은 보장하는 변경 범위가 다르다

final은 변수 재대입만 막고 가리키는 collection의 add/remove는 막지 않습니다.

final List<T>

reference 재대입 금지 · 내용 변경 가능

List.copyOf

현재 element snapshot · 구조 불변

deep immutability

element 자체도 불변 필요

핵심: 외부 변경까지 차단하려면 방어 복사와 불변 view를 함께 사용합니다.