Skip to main content

함수형 프로그래밍 - 부수 효과

· 3 min read
Jae Jun, Jo

함수형 프로그래밍 시리즈를 작성해보려고 합니다.

그 중, 기초적인 부분인 부수 효과에 대해서 알아보겠습니다.

부수 효과란?

side effect는 약물에서는 부작용으로 알려져 있습니다.

프로그래밍에서도 마찬가지로 부작용과 비슷한 의미로 사용됩니다.

부수 효과는 간단하게 제 2의 효과라고 볼 수 있습니다.

코드를 보며 설명하겠습니다.

let sideNum = 0;

function incrementNum() {
sideNum += 1;
return sideNum;
}

위와 같은 코드에서 incrementNum 함수는 sideNum 이라는 변수를 이용합니다.

다음과 같은 코드를 부수 효과가 있다라고 표현을 합니다.

이를 제거한 코드는 다음과 같습니다.

function incrementNum(num: number) {
return num + 1;
}

이전에 사용한 전역 변수가 매개변수로 변경되었습니다.

이렇게 부수 효과를 제거한 함수는 다음과 같은 장점을 가집니다.

  1. 항상 같은 입력에 같은 출력을 갖습니다.

  2. 외부의 값이 있는지 없는지 확인을 할 필요가 없습니다.

  3. 코드 작성을 집약시킬 수 있습니다. (colocation)

부수 효과는 함수형 프로그래밍에서 기본적으로 지켜야하는 이론처럼 취급됩니다.

이러한 부수 효과를 제거한 함수를 순수 함수라고 부릅니다.

순수 함수는 앞으로 함수형 프로그래밍의 전제가 되기 때문에 꼭 기억하시면 좋을 것 같습니다.


질문 사항이나 틀린 사항 있을 시 피드백 주시면 감사하겠습니다.