728x90
순수함수란?
자바스크립트에서 순수함수는 함수형 프로그래밍에서 중요한 개념이다. 순수함수는 부작용(side-effect)이 없고 동일한 입력에 대해 항상 동일한 출력을 보장하는 함수이다. 이를 통해 코드의 예측 가능성과 안정성을 높일 수 있다.
순수함수의 주요 특징
참조 투명성 - Referentially Transparent
함수에 동일한 인자를 넣으면 항상 동일한 결과가 나와야 한다. 예를 들어 함수 add가 2와 3을 입력받았을 때 항상 5를 반환해야 한다.
부수 효과 없음 No Side-Effects
함수의 실행이 외부 상태나 데이터에 영향을 미치지 않아야 한다. 예를 들어 함수 내부에서 변수 값을 변경하거나 파일 시스템, 네트워크, DOM 등을 수정하면 부작용이 발생했다고 할 수 있다.
순수함수 예시
function add(a, b) {
return a + b;
}
console.log(add(2, 3)); // 5
console.log(add(2, 3)); // 5 (항상 동일한 결과)
순수함수가 아닌 함수 예시
let count = 0;
function increment() {
count++;
return count;
}
console.log(increment()); // 1
console.log(increment()); // 2 (입력 없이 다른 결과가 나옴)
순수함수의 장점
- 테스트 용이성
동일한 입력에 대해 항상 동일한 출력을 반환하므로 함수의 동작을 예측하기 쉽고 테스트하기도 쉽다. - 병렬 처리
부작용이 없기 때문에 순수함수는 병렬 처리가 가능하여 성능을 높이는 데 유리하다. - 코드의 신뢰성
외부 상태에 의존하지 않으므로 코드의 일관성과 신뢰성을 높일 수 있다. - 디버깅 용이성
상태 변화를 추적할 필요가 없으므로 디버깅 과정이 단순해진다.
728x90
'Frontend > JavaScript' 카테고리의 다른 글
JS Promise란? (0) | 2024.09.09 |
---|---|
JS Calllback 함수란? (0) | 2024.09.09 |
JS 엔진의 구조와 작동원리 (JS 런타임 환경까지) (0) | 2024.08.16 |
JS 동기/비동기 처리 - 콜백부터 async/await (0) | 2024.08.14 |
JavaScript로 간단한 투두리스트 만들기 (0) | 2024.03.11 |