배우고 생각하고 연결하고
Java의 재귀 깊이 제한
Python에서는 sys 라이브러리의 setrecursionlimit() 메소드를 사용해 재귀 깊이 제한을 설정할 수 있는데, Java에서도 같은 작업이 가능할까? 결론부터 말하자면, 그런 API는 Java에 존재하지 않는다. 다만, 이 글을 찾아온 사람이라면 궁금해 할 만한 내용을 소개하고자 한다. 재귀, 얼마나 깊게 할 수 있을까? Java에서 재귀 깊이 제한이라는 용어가 따로 있는지는 모르겠지만, 편의상 '런타임 에러를 일으키지 않는 재귀 호출 횟수의 최댓값'이라는 의미로 사용하겠다. (Python에서 재귀 깊이 제한은, 런타임 에러를 일으키기 위해 프로그래머가 명시적으로 설정할 수 있다는 점에서 다르다) 우선 재귀 깊이 제한은 JVM의 스택 메모리와 깊은 관련이 있다. JVM 스택 메모리의 크기 ..