AI 요약
재귀(recursion) 함수는 논리적으로 올바르더라도 호출 깊이가 깊어지면 스택 오버플로가 발생하는 물리적 한계가 있다. 꼬리 재귀 최적화(TCO)를 적용해도 대부분의 자바스크립트 런타임은 여전히 스택 프레임을 새로 할당하기 때문에 큰 입력에서 오류가 발생한다. 이 글은 재귀의 우아한 추상화 뒤에 숨은 운영상의 한계를 지적하며, 개발자들이 이 사실을 인지하고 대비해야 한다고 강조한다.
핵심 포인트
- sum(100000) 실행 시 대부분의 JS 런타임에서 RangeError 발생
- 꼬리 재귀 최적화(TCO)를 적용해도 여전히 스택 프레임이 새로 할당되어 오류 발생 가능
- 재귀는 논리적으로 올바르지만 물리적 스택 공간 한계로 인해 실패할 수 있음
향후 전망
- 개발자들은 재귀 대신 반복문이나 트램폴린 패턴을 고려해야 함
- JS 엔진의 TCO 구현 개선이 필요하나 현재 대부분의 런타임이 미지원
