**함수형 프로그래밍(Functional Programming)**의 영감을 받은 에러 핸들링 방법론 중 하나. Railway Oriented Programming(ROP) 라고 부르며, 1 input 1 output 의 기준에 의한 함수(순수 함수)를 기반으로 에러 핸들링 방법을 설명한다.
함수 내부에서 발생한 일이 함수 외부에 영향을 미치는 것을 말한다. 부수적인 영향이라고 말하기도 하며 사용자가 예상하기 힘든 대부분의 경우가 많다.
ROP는 Side Effect를 해결하기 위한 방법에서 출발한다.
<aside> ❓ 다음과 같은 예시가 있다
✅ 함수 내부에서 외부의 변수를 조작하는 경우(Scope out)
✅ 함수 내부에서 발생한 에러가 프로그램 전체에 영향을 미치는 경우
✅ 통신 중 잘못 된 데이터를 받아 프로그램에 영향을 미Error 경우
</aside>
순수 함수는 동일한 인자를 받았을 때 항상 같은 값을 반환하는 함수를 말한다. 즉, 결과를 예측할 수 있다는 말과 동일하다. 순수 함수는 다음과 같은 특징을 갖게 된다.
순수 함수인 것
function add(a,b){
return a + b;}
console.log( add(10,5) );
15
순수 함수가 아닌 것들
Example 1
var c = 10;
function add2(a,b){
return a + b + c;
}
console.log(add2(10,3));
console.log(add2(10,3));
c = 20;
console.log(add2(10,3));