재귀란 어떠한 것을 정의할 때 자기 자신을 참조하는 것 을 뜻합니다. 코드로 한번 보여드리겠습니다. fun main() { printNumber(1) } private fun printNumber(number : Int) { println(number) printNumber(number = number + 1) } printNumber 라는 메서드에 처음 1을 넣고 println 으로 출력 후 다시 printNumber 메서드에 +1 을 해서 실행 합니다. 하지만 이렇게 코드를 작성 후 실행하게 되면 무한루프에 빠지게 되고 결국 콜스택에 메모리가 가득 차서 에러가 발생하게 됩니다. 콜스택 함수가 호출이 되면 콜스택에 함수가 쌓이게 되며 함수가 끝난다면 콜스택에서 제거가 됩니다. 재귀함수가 호출이 된다면 ..