[기술면접] 순수함수

한재창·2023년 4월 5일
0
post-thumbnail

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

순수함수는 입력값에 따라 항상 동일한 결과를 반환하며 함수 외부의 상태를 변경하지 않고 사이드 이펙트가 없는 함수를 의미합니다. 순수 함수는 불변성을 유지할 수 있는데, 입력값이 변하지 않기 때문에 함수 내부에서 어떤 연산을 수행하더라도 원본 데이터는 변경되지 않습니다. 이러한 특징을 가진 함수를 사용하면, 코드가 예측 가능하고 안정적이며, 여러 스레드에서 안전하게 사용할 수 있습니다. 반면에 사이드 이펙트가 있는 함수는 외부 상태를 변경하거나 함수 내에서 예측하지 못한 동작을 수행합니다. 때문에 불변성을 유지하기 어려워 예측 불가능한 동작이 발생할 가능성이 있습니다.

순수 함수

순수 함수는 입력값에 대한 결과를 반환하는 함수로, 부작용(side effect)이 없으며 동일한 입력값에 대해 항상 동일한 결과를 반환합니다. 이러한 불변성(immutability)은 함수를 예측 가능하고 안정적으로 만들어줍니다.

순수 함수는 사이드 이펙트를 최대한 지양하고 불변성을 유지하면서 발생할 수 있는 오류를 미연에 방지하여 안정성을 높이기 위한 함수

불변성

불변성(Immutability)은 데이터가 변경되지 않는 것을 의미합니다. 즉, 한 번 생성된 데이터는 그 이후에는 변경되지 않으며, 새로운 데이터를 생성하여 기존 데이터를 대체하는 방식으로 동작합니다. 이러한 방식으로 데이터를 다룰 경우, 예측 가능성과 안정성이 높아지며, 코드의 복잡도를 낮출 수 있습니다.

사이드 이펙트

사이드 이펙트(Side Effect)는 함수 호출로 인해 함수 외부에 영향을 미치는 것을 말합니다. 함수가 호출되었을 때, 함수 외부의 상태를 변경하거나, 외부와의 상호작용을 수행하면서 발생합니다. 이러한 부작용은 함수가 호출되었을 때 예측하지 못한 결과를 가져올 수 있으며, 디버깅이 어려워지고 코드의 유지보수성이 저하됩니다.

profile
취준 개발자

0개의 댓글