큰 목표 작업 하나를 동일하면서 간단한 작업 여러 개로 나눌 수 있을 때 유용한 프로그래밍 패턴. 목표 작업을 간단한 동작 하나와 목표 작업을 변형한 작업으로 단순화시킬 수 있을 때도 재귀를 사용할 수 있다. 특정 자료구조를 다뤄야 할 때도 재귀가 사용.
반복문을 돌리듯 자기 자신을 끊임없이 부르다 특정 조건에서 빠져 나오는 함수
중첩 호출의 최대 개수는 재귀 깊이(recursion depth)라고 한다.
재귀를 사용한 코드는 짧습니다.
재귀를 사용한 코드는 반복적 사고에 근거하여 작성한 코드보다 대개 짧습니다.
특징
재귀호출의 장점 : 코드의 간결함
재귀호출의 단점 : 무한 재귀호출의 위험성, 성능 상의 문제