참조 투명성은 같은 입력의 결과와 외부 흔적을 함께 본다

값이 같아 보이는지만이 아니라 원본 변경·I/O·시간 의존이 있는지 판정한다.

순수

새 값 계산

같은 입력 → 같은 출력, 외부 상태를 읽거나 쓰지 않음

불변

copy + update

원본 참조는 유지하고 바뀐 경로만 새 객체로 생성

위험

in-place mutation

입력 객체를 직접 바꿔 호출 전후 의미가 달라짐

부작용

I/O 경계

로그·네트워크·시간은 순수 계산 밖에서 명시

핵심불변 업데이트는 모든 객체를 복사하는 것이 아니라 변경 경로의 참조만 새로 만드는 것이다.