본문 바로가기
JAVA/Java 기본 돌아보기

[Java] 재귀함수(Recursion Function)

by 늑인 2024. 2. 13.

 

💡 재귀함수(Recursion Function)란?

- 함수 내부에서 ‘자기 자신을 호출’하는 함수를 의미합니다. 이를 통해서 함수가 자신을 반복적으로 호출하면서 원하는 결과를 도출할 수 있습니다.


- 단, 재귀함수를 사용하는 경우 함수 호출이 계속해서 쌓이기 때문에 호출 스택이 많아져서 성능이 저하될 수 있습니다. 따라서 재귀함수를 작성할 때는 무한루프에 빠지지 않도록 종료 조건을 명확하게 설정해주어야 합니다.

 

 

💡 호출 스택(Call Stack)이란?

- 프로그램에서 함수나 메서드를 호출할 때 해당 함수나 메서드의 실행이 끝날 때까지 실행되는 다른 함수나 메서드의 호출 정보를 저장하는 자료구조입니다.
- 이 스택은 함수가 호출될 때마다 그 함수의 호출 정보를 저장하고 함수의 실행 결과가 반환되면 해당 함수의 호출 정보를 스택에서 제거합니다.
- 호출 스텍은 디버깅, 예외 처리 및 재귀 함수와 같은 다양한 프로그래밍 작업에 사용됩니다.

 

 

1. 장점


 

번호 장점
1 코드의 가독성이 높아집니다. 재귀적인 호출을 통해 코드를 간결하게 작성할 수 있습니다.
2 일부 알고리즘에서는 반복문을 사용하는 것보다 재귀 함수를 사용하는 것이 더 직관적입니다.

 

2. 단점


번호 단점
1 재귀 함수는 함수를 호출할 때마다 스택에 새로운 프레임을 생성합니다. 따라서, 스택이 너무 깊어질 경우에는 스택 오버플로우가 발생할 수 있습니다.
2 재귀 함수는 함수의 호출이 반복적으로 일어나기 때문에, 일반적으로 반복문을 사용하는 것보다 느립니다.

 

 

'JAVA > Java 기본 돌아보기' 카테고리의 다른 글

[JAVA] Date 타입  (3) 2024.11.08
[JAVA] Vo 코드조각  (0) 2024.01.05
[JAVA] 선택정렬 영상  (1) 2024.01.04
[JAVA] 버블정렬 알고리즘(영상)  (0) 2024.01.04
[JAVA] 아스키 코드표.  (0) 2023.12.29