[javascript] 불변성(Immutability)을 위한 자료구조적 최적화
Intro. 함수형 프로그래밍을 접하면 아마 '불변성'이란 키워드에 대해서 듣게된다. 말 그대로, 원본 데이터에 대한 변이(Mutation) 과정을 진행하지 않겠다는 의미이다. 대신 변이 과정이 필요하다면, 원본 데이터를 복제 / 수정하여 사용한다. function square(data){ return data.map((d) => d ** 2); // data = [1,2,3] , return -> [1,4,9] } square([1,2,3]) Side Effect 방지 , 참조 투명성을 보장한다 etc.. 다 좋은데 매번 변이 과정이 필요할 때 마다 원본 데이터의 복제가 필요하다니, 메모리 관리 측면에선 정말 최악이란 생각이 든다. 원본 데이터의 크기가 크면 클 수록, 복제를 위한 메모리 & 시간 자원..