부수효과

용어정리

이 카테고리는 비전공자로서 개발자로써 공부하며, 평소 이해하지 못한 단어를 제방식대로 정리하는 카테고리입니다.
제방식대로 풀어 쓴것이므로 오류가 있을 수 있습니다.
오류가 있을시 댓글로 남겨주시면 참고하도록 하겠습니다.


부수효과(side effect)

부수효과를 좀 있어보이게 사이드이팩트라 쓰겠습니다
사이드이팩트란 무엇인가 알아보았다.
위키에서의 부수효과(부가작용) 이렇게 정의하고 있습니다.
이처럼 원래의 목적과 다르게 다른 효과 또는 부작용이 나는 상태를 지칭합니다.

프로그래밍 세계에서도 마찬가지입니다.
예를 들어보겠습니다.

순수 함수

1
2
3
4
5
6
function add (a, b) {  //순수하게 더하는 함
return a + b;
}
add(1, 2)//3
add(3, 4)//7
add(5, 6)//11

add함수는 단순하게 더하기만 하는 함수입니다.
매개변수인 a와 b값을 어떠한 영향도 받지 않고, 더하기만 하는 함수입니다.
이것을 순수함수(Pure function)이라고 합니다.

순수하지않은 함수

순수하지 않은 함수는 부수효과등을 일으키는 함수입니다.
예를 보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
var c = 10;
function add (a, b) {
return a + b + c;
}
add(1, 2)//13
add(2, 3)//15
c = 20;
add(1, 2)//23
add(2, 3)//25
//이처럼 a와 b를 매개변수로 받아 c와 합산하는 함수입니다.
//c의 값이 변경되므로써 값이 달라집니다.

이처럼 부수효과가 많을수록, 개발자들에게 예상치 못한 혼란을 줄 수 있습니다.
그렇기 때문에 부수효과를 줄이므로써, 인간이 하는 개발에 있어서 좀 더 쉽게 편리하게 개발하자는 취지입니다.
이렇게 순수함수를 통해 프로그래밍 하는 것을 함수형프로그래밍(Functional Programming)이라고 합니다.

함수형프로그래밍

아직 공부하지 않아 아는내용만 작성 후 추후 포스팅하겠습니다.
함수형 프로그래밍은 순수 함수를 통해, 부수효과를 줄이므로써 발생 할 수 있는 이슈를 줄이는 함수 입니다.
함수안에 매개변수로 함수를 받아 단순 처리하며, 사이드이팩트를 줄여 순수하게 프로그래밍하는 것입니다.

공부가 부족함을 느끼고, 추후 공부하여 더 살을 붙이도록 하겠습니다.

댓글