Pure Function

순수 함수와 불변성은 같은 방향으로 움직인다

같은 입력은 같은 출력으로 끝나고, 변경은 원본을 건드리지 않은 새 값으로 표현한다.

순수 함수와 불변성 기준

예측 가능한 코드

순수 함수

외부 변수, 로그, 네트워크 요청처럼 호출 밖의 세계를 바꾸지 않는다.

불변 데이터

객체나 배열을 직접 수정하지 않고 스프레드, map, concat 등으로 새 값을 만든다.

타입 보조

readonly와 readonly 배열은 실수로 원본을 바꾸는 코드를 컴파일 단계에서 막는다.

값 입력계산새 값검증
원본 보존

순수 함수는 불변성을 전제로 할 때 호출 순서와 실행 환경에 덜 흔들린다.