종료 조건
반드시 도달 가능한 base case가 있어야 무한 호출을 막는다.
재귀는 문제를 더 작은 같은 모양의 문제로 줄이고, 더 이상 나누지 않는 base case에서 멈춘다.
반드시 도달 가능한 base case가 있어야 무한 호출을 막는다.
팩토리얼처럼 n을 n-1 문제로 줄여 같은 함수를 다시 호출한다.
각 호출은 프레임을 쌓으므로 깊이가 크면 스택 오버플로를 주의한다.
재귀를 읽을 때는 전체 호출을 머릿속으로 펼치기보다, 종료 조건과 한 단계 축소가 맞는지 확인하는 편이 안전하다.