Functional-ish JavaScript: 실용적인 함수형 프로그래밍 접근법
Source
Evernote/Inbox/Functional-ish JavaScript - Daniel Brain - Medium.md
Summary
이 문서는 JavaScript 개발에서 함수형 프로그래밍을 ‘전부 아니면 전무(all-or-nothing)‘한 방식으로 적용할 필요가 없으며, 실용적인 ‘Functional-ish’ 접근을 제안합니다. 순수 함수(Pure Function) 작성이 이상적이지만 불가능한 경우에도 예측 가능성(Predictability)을 최우선으로 삼아야 한다고 강조합니다. 구체적으로, 동일한 입력에 대해 동일한 사이드 이펙트를 발생시키고, 외부 상태 변화에 강건하며, 매개변수 변형을 최소화해야 합니다. 또한 상태(State) 관리는 보수적으로 접근하여, 파생 가능한 데이터는 저장하지 않고, 사용 목적에 따라 적절한 스코프(Block, Function, Module 등)를 활용하여 상태의 수명을 최소화하는 것이 핵심 원칙입니다.
Key Points
- 함수형 프로그래밍은 테스트, 디버깅, 재현성 측면에서 유리하지만, 모든 코드를 순수하게 작성해야 한다는 강박은 버려야 함.
- 순수 함수 작성이 불가능할 경우, ‘예측 가능성’을 확보하는 것이 최우선임 (동일 입력 -> 동일 사이드 이펙트, 외부 상태 변화에 대한 강건성, 매개변수 변형 최소화).
- 상태(State) 사용은 불가피하지만, 파생 가능한 데이터는 저장하지 않고, 일회성 데이터는 지속 저장하지 않는 등 상태 필요성을 신중하게 검토해야 함.
- 필요한 상태라도 그 수명을 최소화하기 위해 적절한 스코프(Block, Function, Module, Global)를 활용해야 함.