목록2016/06/25 (1)
따..딱히 공부하려고 포스팅하는 건 아니니까..!
꼬리 재귀 최적화(Tail Recursion)
재귀함수란 자기 자신을 호출하는 함수를 말합니다. 코드가 짧아져 가독성을 높일 수 있다는 장점이 있지만, 스택 오버 플로우를 일으킬 수 있는 엄청난 위험성도 내재하고 있습니다. 함수를 호출할 때 함수의 입력 값(매개변수), 리턴값, 그리고 리턴됐을 때 돌아갈 위치값 등을 스택에 저장합니다. 재귀함수를 사용하면 함수가 끝나지 않은 채 연속적으로 함수를 호출하므로 스택에 메모리가 쌓이게 됩니다. 이 때문에 스택의 최대 크기 이상의 메모리가 쌓이게 되면 스택 오버 플로우가 일어나게 됩니다. 또한, 잦은 점프의 반복으로 성능이 저하될 위험도 가지고 있습니다. 이런 재귀의 특징을 정리하자면 다음과 같습니다.- 무한 루프에 빠지지 않기 위해 일정한 탈출 조건이 있어야 한다.- 코드를 단순화 할 수 있다.- 재귀 함..
프로그래밍
2016. 6. 25. 02:45