코드스테이츠 백엔드 20일~22일차 | 재귀함수

hyoreal·2022년 7월 21일
0

CodeStates

목록 보기
19/32

드디어 Spring에 첫 발을 내딛는다!!
그 첫 발이 재귀함수라는게ㅜㅜ 슬프지만!!
나는 잘 할 수 있을거다!!


재귀함수

재귀(再歸) : 원래의 자리로 되돌아가거나 되돌아옴.

재귀는 위 이미지와 같이 계속 원 상태로 돌아오는, 거울속의 거울과도 비슷한 느낌이다.

재귀함수의 장점

  • 여러 반복문을 사용하지 않아 코드가 간결해짐.
  • 변수를 여러개 사용할 필요가 없음.

재귀함수의 단점

  • 코드를 직관적으로 파악하기 어려움.
  • 반복하여 메서드를 호출하므로 지역변수,매개변수,반환값을 모두 process stack에 저장. 메모리 과다 사용.
  • 메서드 호출 종료 후 복귀를 워한 컨텍스트 스위칭 비용 발생.

컨텍스트 스위칭 (Context Switching)

프로세스1과 프로세스2가 존재할 때, 프로세스1이 CPU를 점유중이고 프로세스2가 대기상태이다가 얼마 후 프로세스2가 실행되고 프호세스1이 대기상태가 되는데, 이때 프로세스1이 작업하던 내용들을 PCB에 저장하고 프로세스2가 갖고있던 데이터는 PCB에서 가져온다.

이 과정, 즉 프로세스1과 프로세스2가 서로 번갈아가며 대기와 실행을 반복하는 것을 컨텍스트스위칭이라고 한다.

재귀함수 사용 조건
1. 문제 크기를 점점 더 작은 단위로 쪼갤 수 있어야함.
2. 재귀호출이 종료되는 시점 존재.


재귀....어렵도... 내일 과제...잘할수있으까..?
그리고 29일차가 먼저 올라온 이유는.. 아직 정리를 못해서랄까..? 내용이 정말 많고 복잡하기에 정리하기가 빡세다ㅠㅠ

profile
좌충우돌 코린이 성장기

0개의 댓글