Language & Framework/Java
2022. 6. 2.
자바 재귀 호출은 무엇인가? : factorial, 거듭제곱의 합 구하기
메서드의 내부에서 스스로를 재호출하는 것을 재귀호출이라고 한다. 물론 스스로 계속해서 호출하기만 한다면 callStack을 가득 채우게 되어서 StackOverFlow 에러를 보게 될 것이다. 따라서 필수적으로 조건문이 붙어야 한다. 엥? 별다른 지정해주지 않으면 계속 반복하고 조건문으로 제어해줘야 한다고? 그냥 반복문 아닌가? 그렇다. 반복문은 명령만을 반복해서 수행한다면 재귀 호출은 메소드를 직접적으로 반복 호출하는 형태이다. 그러나 재귀 호출 시에는 메서드를 계속해서 호출하기 때문에 CallStack의 메모리 공간을 계속해서 사용하게 되기 때문에 성능면에서 반복문보다 좋지 않다. (사용하는 언어의 컴파일러가 꼬리재귀를 지원한다면 꼬리재귀의 사용으로 이런 단점을 극복할 수 있으나 이 글에서는 다루지 ..