사전 정의
부작용
1) 약물, 의학적 치료 또는 백신의 주요 의도한 효과 외에 발생하는 불쾌한 효과
2) 상황의 예상치 못한 결과
https://dictionary.cambridge.org/dictionary/english/side-effect
side effect
1. an unpleasant effect of a drug, medical treatment, or vaccine (= a substance…
dictionary.cambridge.org
구현하고자 하는 기능이 동작되지않고, 동작을 못하거나 값이 다르게 변하게 되는 것을 말한다.
함수형 프로그래밍에서는 사이드 이펙트(side effect)를 없애야한다. (사이트 이펙트 함수가 많아지면 디버깅에 어려움 발생)
함수형 프로그래밍이란?
부수적인 효과를 없애고, 순수 함수를 만들어 모듈화 수준을 높이는 프로그래밍 패러다임
*모듈: 기능단위로 분해하고 추상화 되어 재사용 및 공유 가능한 수준으로 만들어진 단위
*모듈화: 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법
=>큰 단위를 작은 단위로 나누어 다루기 쉽게 하는 과정 (작은 단위 = 모듈)
*패러다임: 개발자가 코드를 짤 때의 관점 (ex. 구조적/비구조적, 명령형/선언형, 메세지 전달/명령형, 절차적/함수형 등)
함수를 호출 하여, 입력된 값에 대한 결과값을 얻어내야하는데, 함수가 외부의 값을 변경하게 되어 의도치 않은 동작이 발생할 수 있으므로, 순수함수를 만들어야한다.
순수함수
- 순수함수에서는 인풋과 아웃풋이 함수의 선언부에 나타나야한다.
- 언제, 어디서 실행해도 외부 상태를 변경하지 않아야한다.
- 함수 내에서 외부 변수의 값이 변하는 경우(입력 인자 X)
- 함수가 외부의 값을 변경하는 코드가 있는 경우(return 값이 일정해도, 상태가 변경되는 코드가 있으면 X)
- 객체를 인자로 받으면 안된다.
- 객체를 순수함수로 나타낼 경우, 객체의 값을 참조하여 작성한다.
순수 함수는 외부의 상태를 변경하지않고 언제 어디서든 동일한 인자에 대해 같은 결과 값을 리턴하는 함수이다.
'Development' 카테고리의 다른 글
Sentry 사용해보기 (0) | 2023.01.27 |
---|---|
VPN과 프록시의 차이 (0) | 2023.01.20 |
[VSC] sftp 접속하기 (0) | 2023.01.12 |
코드 압축해주는 사이트 (0) | 2023.01.12 |
인자/인수 vs 매개 변수 (0) | 2023.01.11 |