값이 같아 보이는지만이 아니라 원본 변경·I/O·시간 의존이 있는지 판정한다.
같은 입력 → 같은 출력, 외부 상태를 읽거나 쓰지 않음
원본 참조는 유지하고 바뀐 경로만 새 객체로 생성
입력 객체를 직접 바꿔 호출 전후 의미가 달라짐
로그·네트워크·시간은 순수 계산 밖에서 명시
핵심불변 업데이트는 모든 객체를 복사하는 것이 아니라 변경 경로의 참조만 새로 만드는 것이다.