순수함수란 무엇인가요? 불변성과 사이드 이펙트와 연결하여 설명해주세요.

2023. 1. 17. 23:58개발자 블로깅/Question

순수함수란 입력한 값에 대해 항상 같은 결과를 리턴하는 함수입니다. 그렇기에  결과를 예측할 수 있습니다.

순수함수는 결과 값이 변하지 않는 점에서 불변성이고 외부의 값으로 수정되지 않기에 side-effect 이 없습니다.

 

추가 질문

Side effect 이란?

함수 외부의 값이나 상태를 변경하는 것, 변화를 예측할 수 없어 예기치 못한 오류를 발생시킬 수 있다.

 

- side effect 을 가지는 함수는 입력 값에 대해 같은 결과를 반환하지 않습니다.
  예 ) 전역 변수 수정, 데이터베이스 접근은 side effect이 있다.

- 리액트에서는 단방향 데이터 흐름을 유지하기 위해 리액트 컴포넌트의 props를 직접 변경하지 않는 방법으로

   순수 함수를 지향하고 있습니다.