Interview
Side Effect(부수효과)
- 어떤 구현이 함수 외부에 영향을 끼치는 경우를 말한다.
- 컴포넌트 내에서
fetch
를 사용해API
정보를 가져오거나 이벤트를 활용해 DOM을 조작할 떄Side Effect
가 발생했다고 말한다. - 외부 변수를 참조하거나 변경하는 효과이다.
1
2
3
4
5
6
7
8
let side = "effect";
function effect() {
side = "warning";
}
effect();
// effect는 Side Effect를 발생시킨다.
Pure Function(순수함수)
- 순수함수란,
Side Effect
가 없는 불변성을 유지하는 함수이다. - 순수함수는 항상 동일한 결괏값을 만들기 떄문에 예측이 가능하고, 예측이 가능한 결과를 반환하기 때문에 순수함수들과의 조합성이 좋아 재사용성이 높다.
- 순수함수가 아닐 경우, 함수들의 조합성이 떨이져 결과를 예측하기 힘들어지고, 어떠한 값이 여러 함수의 결과에 영향을 주기 때문에 유지보수가 힘들어진다.
1
2
3
4
5
6
7
// 순수함수
function example(a, b) {
return a + b;
}
example(5, 10);
// 15
1
2
3
4
5
6
7
8
9
// 순수함수가 아닌 경우
let c = 10;
function example(a, b) {
return a + b + c;
}
example(5, 10); // 15
c = 20;
example(5, 10); // 35