본문 바로가기

IT 이야기

순수함수란?

순수함수란? 어떤 함수에 동일한 인자를 주었을 떄 항상 같은 값을 리턴하고 외부의 상태를 변경하지 않는 함수를 의미합니다

순수함수의 장점으로는 코드가 간결하고 동작예측과 테스트하기 쉽다는 장점이 있습니다

순수함수의 조건으로는 사이드 이펙트(side effect)가 없고 불변성을 가져야 됩니다

사이드 이펙트는  함수내부의 실행으로 인해 함수 외부가 영향을 받는것을 의미합니다

사이드 이펙트가 많을 수록 코드의 동작이나 데이터를 예측하기 힘들어집니다

 

불변성은 원본데이터를 수정하지 않는것을 의미합니다

참조형 데이터타입인 객체나 배열같은 경우 힙 메모리 주소를 가리키기 때문에 함수에 인자로 전달하면

해당 함수에서 인자로 받은 참조형 데이터를 수정하면 원본데이터까지 같이 바뀝니다

이것을 해결하기 위해 순수함수에서는 복사본을 만들어 원본은 손상시키지 않는 방법을 사용하고 이것을 불변성이라고 합니다

순수함수를 간단하게 정리하자면 예측가능한 코드 동작과 외부데이터를 바꾸지 않는것 이라고 할 수 있습니다