1. 부수 효과 / 부가 효과 / 부작용 (Side Effect)
ㅇ 함수나 연산이 실행될 때, 의도한 결과 외에 추가적인 상태 변화가 발생하는 현상
- 프로그램의 실행 결과에 영향을 미치는, 변수나 상태의 변경을 일으키는 것
ㅇ 즉, 표현식,함수 등이 결과값 만을 반환하는(돌려주는) 고유의 동작이 아니고,
- 외부의 상태를 변경하거나, (입력받거나, 출력하는 등)
- 이후 구문에 영향을 주는 등
- 상태 변경이 일어나는 동작을 하는 것을 말함
ㅇ 例)
- 변수의 변경, 배열 항목의 변경, DB의 변경, 상태의 변화,
- 함수로 들어온 인수의 원래 값을 직접 변경하는 등
- print() 함수는, 반환값 없이도 외부에 서식문자열에 따라 화면에 출력을 일으킴
- 함수 내에서 전역 변수를 변경할 때 등
. 함수의 실행으로 인해, 함수 외부 상태가 영향을 받게되는 경우
ㅇ 부수 효과를 최소화하는 방법
- 순수 함수 사용 : 입력이 같으면 항상 같은 출력을 반환. 상태를 변경 않음.
- 불변 데이터 사용 : 매개변수를 수정하는 대신 새로운 값을 반환하는 방식 활용