불변 API는 내부 mutation을 경계 안에 가두고 snapshot만 공개할 수 있다
불변성은 구현에 mutation이 전혀 없다는 뜻보다 외부에서 관찰 가능한 값이 바뀌지 않는다는 계약입니다.
public immutable value변경 method 없음
factory/builder생성 중 mutable
private accumulator외부 alias 없음
freezedefensive copy
shared snapshotthread-safe read
핵심: builder·accumulator의 mutable state는 완성 전까지만 소유합니다.