질문 : 순수함수란?
- 내가 생각한 질문의 요지:
- 답변: 순수함수는 함수형 프로그래밍에서 오직 함수의 입력만이 함수의 결과에 영향을 주는 함수를 의미합니다. 또한 사이드 이펙트가 없어야 합니다. 즉, 순수함수는 함수 body 내에 있는 코드만 점검하면 되기 때문에 간결하게 코드를 작성하고 사고하는데 도움이 됩니다.
질문 : side effect란?
- 내가 생각한 질문의 요지:
- 답변: 사이드 이펙트란, 외부 변수를 참조하거나, 변경하는 모든 종류의 코드를 의미합니다.
질문 : 순수함수의 개념은 왜 중요한가요?
- 답변 : 사이드 이펙트를 줄이고 모듈화 수준을 높이는 프로그래밍 패러다임인 '함수형프로그래밍'에서 순수함수는 평가 시점이 무관하다는 특징 때문에 효율적인 로직을 구성할 수 있습니다.
질문 : 데이터의 불변성
- 내가 생각한 질문의 요지:
- 답변: 자바스크립트에서 순수함수를 제작하기 위해서 데이터의 불변성을 유지하는 것이 중요합니다. 함수의 전달인자로 참조 자료형이 전달되는 경우, 의도치 않게 해당 객체 자체를 바꾸는 사이드 이펙트를 만들수도 있고, 이는 해당 데이터의 불변성을 손상시킵니다. 그래서 배열의 불변성을 보장하는 메서드인 map, filter, reduce등을 많이 씁니다.