[번역] 자바스크립트의 재귀, PTC, TCO, STC 에 대한 모든 것

요즘은 모두가 함수형 프로그래밍과 그 개념에 대해서 열광적인 것 같다. 하지만 많은 사람들이 재귀(Recursion)나, 특히 적절한 꼬리 호출(Tail Call)에 대해서는 이야기하지 않는 것 같다. 이는 스택이 넘치는 일 없이 깔끔하고 간결한 코드를 작성하기 위해 매우 중요한데도 말이다. 이 글에서는 재귀를 더 잘 시각화하고 생각할 수 있는 팁을 제공하고, 적절한 꼬리 호출, 꼬리 호출 최적화, 문법적 꼬리 호출이 무엇인지와 각각의 차이점, 작동 방식, 그리고 주요 자바스크립트 엔진에서 어떤 식으로 구현되어있는지에 대해 설명하도록 하겠다.

[번역] 불변(Immutable) 데이터 구조와 자바스크립트

얼마전에 나는 현재의 내 블로그를 재작성할 것이라 말하면서, 내가 배운 것들에 대해 좀더 깊이 들어가 보기로 약속했다. 오늘 나는 자바스크립트에서의 불변 데이터 구조, 특히 immutable.js 와 seamless-immutable 라이브러리에 대해 이야기할 것이다. 다른 라이브러리들도 있지만, 개념적으로는 완전히 영구적인 데이터 구조이거나 네이티브 자바스크립트 객체를 복사한 것 중의 하나일 것이고, 당신이 어떤 라이브러리를 선택하든 간에*[1]* 이들 두 라이브러리를 비교해 보는것으로 각자의 장단점을 잘 알게 될 것이다. 또한 transit-js 에 대해서도 조금 언급할 예정인데, 이는 직렬화를 할 때에 매우 유용할 것이다.