자기 자신을 부르는 구조는 간결하지만, 종료 조건과 문제 축소가 흐리면 스택 오버플로우나 중복 계산으로 이어집니다.
더 호출하지 않고 바로 반환하는 조건을 명확히 둡니다.
원래 문제보다 작아진 입력으로 자기 자신을 호출합니다.
입력이 커질수록 스택 프레임이 얼마나 쌓이는지 생각합니다.
피보나치처럼 같은 값을 반복하면 반복문이나 메모이제이션을 봅니다.