재귀 함수와 메모리 사용량 간의 관계 함수를 호출하면 함수의 매개변수, 지역변수, 리턴 값, 함수 종료 후 돌아가는 위치 등이 스텍 메모리에 저장된다. 따라서, 재귀함수는 함수를 반복적으로 호출하는 것은 스텍에 메모리가 쌓여 스텍오버플로우를 일으킬 수 있다. 이 문제를 해결하는 방법이 꼬리 재귀이다. 꼬리 재귀 꼬리 재귀는 기존의 재귀 함수의 메모리 사용량 문제를 해결할 수 있는 방법이다. 꼬리 재귀란, 재귀 호출이 끝난 후 현재 함수에서 추가 연산을 요구하지 않는 재귀의 형태이다. 이는 컴파일러가 선형으로 처리하도록 알고리즘을 바꿔서 스택을 재사용 가능하게 한다. 단, 컴파일러가 꼬리 재귀 최적화를 지원해야 한다. 일반적 재귀 함수 function factorial(num){ if(num === 1){..