FP 판단표

순수 함수와 불변 업데이트

함수가 안전한지 볼 때는 반환값뿐 아니라 외부 상태, 인자 변경, 타입으로 막을 수 있는 실수까지 함께 확인합니다.

input

입력만 결과를 설명하는가

날짜, 난수, 전역 설정처럼 숨은 의존성이 있으면 결과가 흔들립니다.

인자를 보면 결과를 예측 가능 외부 변수 읽기 최소화
effect

부수 효과가 분리되었는가

로그, 네트워크, 저장소 쓰기는 계산 함수 밖에서 다루면 테스트가 쉬워집니다.

계산과 I/O 경계 분리 테스트에서 목 설정 감소
copy

원본 대신 새 값을 반환하는가

객체와 배열은 직접 수정하지 않고 스프레드, map, filter로 새 참조를 만듭니다.

push, splice, 직접 대입 피하기 이전 상태를 디버깅 가능
type

타입이 실수를 막는가

readonly, ReadonlyArray, as const는 변경 금지 의도를 코드에 남깁니다.

API 입력을 readonly로 받기 반환 타입을 새 상태로 명시
핵심 결론

순수 함수와 불변성은 함께 적용될 때 캐싱, 병렬 처리, 상태 변경 추적을 단순하게 만듭니다.