Page 17 - 006963
P. 17

11.1           함수형 프로그래밍의 제약과 이점
                                                                           Refacto R ing JavaSc R ipt






                        일반적으로 함수형 프로그래밍은 전형적인 자바스크립트 개발자들에게 익숙한 것보다 좀 더 많은
                        구조를 요구하고, 이 구조로 어떤 측면에서는 더 나아질 수도 있으며, 새로운 문제가 될 수도 있습

                        니다. 이 절에서는 함수형 스타일을 시도하려고 할 때 기본적으로 고려해야 할 몇 가지 균형을 살
                        펴보겠습니다.




                        11.1.1  제약                                                                       11


                        다음은 비함수형 스타일로 함수형 프로그래밍 스타일을 비난하는 데 흔히 사용되는 일반적인 코                                함수형 프로그래밍

                        드입니다.

                          x = 1;
                          x = x + 1;


                        이것이 전부입니다. 아무 문제없어 보이지만, 실제로는 문제가 많습니다. 하지만 대부분의 자바
                        스크립트 개발자에게 이 코드는 아무 문제가 없습니다. 다만 몇몇 사람에게는 함수 안에서 범위를
                        지정하려고 var 선언을 하지 않은 첫 번째 할당 부분이 거슬릴 수 있습니다. 이 부분에 대해 다른

                        사람은 블록(block) 수준의 범위를 지정하려고 let을 원할 수도 있습니다. 일찍이 책에서 논의했듯
                        이, 여기서 정말 원하는 것은 두 번째 줄에서 재할당되는 것을 방지하는 const입니다. 수학 시간
                        이었다면 칠판에 값을 다시 할당할 수 없다는 점은 우스꽝스럽게 보일 것입니다.

                        앞 장에서 재할당이 프로그램을 어떻게 더 복잡하게 만드는지 다루었습니다. 그러나 재할당은 엄
                        격하게 실용적인 것보다 약간 더 많은 의미가 있습니다.

                        이 두 코드 줄을 수학적인 사실에서 생각해 본다면, x는 1과 같거나 x가 어떻게든 1과 1 + 1을 동
                        일하게 하는 것일까요? 분명하게 이것은 프로그램 어디에 있느냐에 달려 있습니다. 그래서 이 구
                        문은 더 이상 x에 관한 사실로 볼 수 없습니다. 사실(함수형 측면에서 값을 지칭합니다) 대신 변수

                        할당을 취하고 있는 셈입니다. 값은 변하면 안 됩니다. 값을 변화시킨다면 프로그램은 연산보다
                        일련의 과정처럼 보일 수 있습니다.






                                                                                                      425




         리팩토링 자바스크립트(본문)최종.indd   425                                                            2018-09-19   오전 1:31:34
   12   13   14   15   16   17   18   19   20   21   22