- 함수 내부에서 '자기 자신을 호출' 하는 함수를 의미한다.

 - 이런 특징으로 함수가 자신을 반복적으로 호출하면서 원하는 결과를 도출 할 수 있다.

 ※ 단, 재귀함수를 사용하면 호출스택이 많이 싸여 프로그램의 성능이 저하 될 수 있다.

 ※ 따라서, 재귀함수를 작성할 때는 무한루프에 빠지지 않도록 종료조건을 명확히 설정해 주어야 한다.

 

[ 호출스택(Call  Stack)이란? ]

 - 프로그램에서 함수나 메서드를 호출할 때 해당 함수나 메서드의 실행이 끝날 때까지 실행되는 타 함수나 메소드의 호출정보를 저장하는 자료구조이다.

 - 해당 스택은 함수가 호출될 때마다 그 함수의 호출정보를 저장하고 함수의 실행 결과가 반환되면 해당 함수의 호출 정보를 스택을 제거한다.

 - 호출 스택은 디버깅, 예외 처리 및 재귀함수와 같은 작업에 사용된다.

 

[ 재귀함수의 장단점 ]

1. 장점

- 코드의 가독성이 좋다. 재귀적은 호출을 통해 코드를 간결하게 작성할 수 있다.
- 일부 알고리즘에서 반복문을 사용하는것보다 재귀함수를 사용하는것이 더 직관적이다.

2. 단점

- 재귀함수는 함수를 호출할 때마다 Stack에 새로운 프레임이 생성된다.
- Stack이 너무 깊어질 경우, Stack Overflow가 발생할 수 있다.
- 재귀함수는 함수의 호출을 반복적으로 하기 때문에, 일반적인 반복문보다 느리다.

'#Java' 카테고리의 다른 글

생성자(constructor)  (0) 2024.04.04
Getter & Setter  (0) 2024.04.04
Java 클래스(Class)  (0) 2024.04.03
오버로딩(Overloding) vs 오버라이딩(Overriding)  (0) 2024.04.03
메소드의 오버라이딩 (Method Overriding)  (0) 2024.04.03

+ Recent posts