프론트엔드 개발자가 되기위한 여정- 37

이정우·2022년 10월 22일
0

frontend-bootcamp

목록 보기
39/60

밸~하!

밸로그 여러분 안녕하세요

이번의 포스팅주제는 바로바로
자주 만나게되는 Recursive Function입니다!

자 한국어로 쉽게 풀어쓰면 재귀함수라고도 표현하는 바로 그것인데요
과연 무엇일까요??

지금부터 한번 알아볼까요??

Recursive function 재귀함수란?

재귀함수에 대해서 알기이전에 먼저
재귀라는것에 대해서 알아보겠습니다

여러분은 재귀라는 단어에 대해서 들어보신적 있으실까요??
아시는 분들도 계시겠지만

재귀라는것은 원래의 자리로 되돌아가거나 되돌아온다는 뜻을 가지고 있습니다

그렇다면 이것을 함수에 적용을 시켜볼까요??

재귀함수란 원래의 자리로 되돌아가거나 되돌아도는 함수라고 할수있겠죠??

한번 예시를 통해서 봐볼까요??

 functio result(n){
 	if(0){
    	return result() 
    }
 }

자 바로 이렇게 함수가 자기 자신을 호출하게 된다면 나왔던곳으로 그래도 돌아가게되니
재귀라고 할수있는것이겠죠

또한 이떄 무한하게 반복하는 재귀함수를 특정 조건일때 break시켜준다면??

그렇다면 훨씬 쉽게 볼수있겠죠??

그럼 재귀함수의 장단점에 대해서 봐볼까요??

먼저 장점입니다!

  1. 짧다
    앞서 보여드렸던 예시를 for문으로 한개씩 조건을 걸어주면서 반복을 시켜준다면 코드의 길이가 길어질것입니다
    그리고 당장 지금은 간단히 적었지만 나중가서 복잡한 알고리즘같은것을 구현하려면 재귀함수를 통해서 훨씬 간결하게 작성할수가 있게된다는거죠!

  2. 쉽다
    쉽다는게 무슨말일까요??
    즉 코드가 짧다보니 가독성이 뛰어나고 유지보수가 편하다는 장점이 있습니다
    하지만 단점은 무엇일까요??

바로

1.시간이 많이 걸린다
입니다!
왜 그럴까요?

처음부터 한개씩 탐색을 하기때문에 어떻게 보면은 간단한 조건 한개만으로도 구할수 있는것을 처음부터 한개씩 확인을 해야하기 때문에 시간이 기존의 코드에 비해 더 오래걸릴수밖에 없다는 겁니다!

그다음으로는
2.공간을 많이 차지한다
는 겁니다
즉 재귀함수를 사용하면 처음부터 다 탐색을 하기때문에 메모리를 더욱 사용할수밖에 없습니다!

이렇게 두가지의 장단점이 있는데요!

시간복잡도 또는 공간복잡도가 중요하지 않는경우에는
재귀함수를 통해서 사용해보면 더욱 좋겠죠??

오늘의 포스팅은 여기까지입니다!

오늘도 부족한 지식이지만 한개씩 채워가봐요!

그럼 밸~ 바!

profile
주니어 프론트엔드 개발자

0개의 댓글