[번역] 일급(First-Class) 테스트

부적절한 학습의 희생양이 되어 단위 테스트를 포기하게 되는 사람들의 블로그를 찾아내는 건 어쩌면 나의 숙명일지도 모르겠다. 이 블로그도 바로 그 중의 하나이다. 저자는 모든 협력 객체(collaborator)를 모킹함으로 인해 단위 테스트가 얼마나 깨지기 쉬운 상태가 되었는지를 이야기한다. (한숨). 협력 객체가 변경될 때마다 모의(mock) 개체들이 변경되어야만 한다. 그리고 당연히 그로인해 단위 테스트는 깨지기 쉬운 상태가 된다. 더 나아가서 저자는 어떻게 단위 테스트를 버리고 대신 흔히들 말하는 "시스템 테스트"를 시작했는지에 대해서 이야기한다. 그의 어휘에 따르면 "시스템 테스트"는 단순히 "단위 테스트"보다 좀더 종단간 (end-to-end) 에 가까운 테스트이다.

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

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