불변 API는 내부 mutation을 경계 안에 가두고 snapshot만 공개할 수 있다

불변성은 구현에 mutation이 전혀 없다는 뜻보다 외부에서 관찰 가능한 값이 바뀌지 않는다는 계약입니다.

public immutable value변경 method 없음
factory/builder생성 중 mutable
private accumulator외부 alias 없음
freezedefensive copy
shared snapshotthread-safe read

핵심: builder·accumulator의 mutable state는 완성 전까지만 소유합니다.