지연 평가의 역설
핵심 아이디어
지연 평가는 효율성을 위해 예측 가능성을 희생하는 트레이드오프다. 비동기 파이프라인에서 이 트레이드오프는 특히 위험한데, 에러의 발생과 감지 사이의 시간적 간극이 시스템의 상태를 불일치 상태로 만들 수 있기 때문이다.
내가 배운 것
- “필요할 때만 실행한다”는 말은 “언제 실행될지 모른다”는 말과 동의어가 아니다.
- 진정한 지연 평가의 가치는 메모리 최적화가 아니라 **제어 흐름의 역전(Inversion of Control)**에 있다.
- 지연 평가를 도입할 때는 반드시 평가 시점을 명시적으로 문서화해야 한다. 암시적 지연은 버그의 온상이다.
질문과 의문
- 지연 평가와 조기 실패(Fail-Fast)는 양립할 수 없는가? 아니면 **“지연된 조기 실패”**라는 개념이 가능한가?
- 지연 평가의 단위를 ‘함수’가 아닌 ‘데이터 흐름’으로 바라보면 어떨까?
실행할 것
- 다음 프로젝트에서 지연 평가를 도입할 때, **“에러 컨텍스트 전파 규칙”**을 먼저 정의하자.
- 지연 평가 체인의 각 단계마다 로깅 포인트를 강제로 삽입하는 ESLint 룰을 고려해보자.