Lee Jaeyoon2
재유니버스
Lee Jaeyoon2
전체 방문자
오늘
어제
  • 분류 전체보기 (228)
    • TIL (165)
    • 생각 (11)
    • 서평 (1)
    • JavaScript & TypeScript (4)
    • React (0)
    • C (45)
    • 에러 핸들링 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • JavaScript
  • 코드숨 리액트
  • 플래그
  • TiL
  • C언어 코딩 도장
  • c언어
  • 실수
  • 코드숨 리액트 8기
  • map
  • dotenv-webpack
  • dotenv
  • 코드숨
  • 심사 문제
  • C
  • 5F
  • 회고
  • 객체
  • react
  • 변수
  • 코딩 도장

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Lee Jaeyoon2

재유니버스

TIL - 20220711
TIL

TIL - 20220711

2022. 7. 11. 16:24

 오늘은 모던 JavaScript 튜토리얼에서 재귀와 스택(https://ko.javascript.info/recursion)에 대해서 공부했다. 

 

재귀는 하나의 큰 목표 작업을 동일하면서 간단한 작업 여러 개로 나눌 수 있을 때 사용하면 좋다.

 

가장 처음 하는 호출을 포함한 중첩 호출의 최대 개수를 재귀 깊이라고 부르며, 깊이는 일단 10,000까지 가능하지만 대다수의 엔진이 100,000을 넘길 수 없다.

 

실행 중인 함수의 실행 절차에 대한 정보는 실행 컨텍스트에 저장된다.

 

함수 내부에 중첩 호출이 존재하면 다음과 같은 절차로 수행된다.

  1. 실행 중인 함수가 중지된다.
  2. 중지된 함수와 연관있는 실행 컨텍스트가 실행 컨텍스트 스택에 저장된다.
  3. 중첩 호출이 실행된다.
  4. 중첩 호출이 끝난 이후에 실행 컨텍스트 스택에서 일시 중단한 함수의 실행 컨텍스트를 꺼내오고, 중단한 함수의 실행을 다시 이어간다.

 

실행 컨텍스트는 메모리 요구사항에 유의해야 한다. 재귀 깊이만큼의 실행 컨텍스트가 저장될 메모리 공간이 필요하기 때문이다.

 

아직까지 재귀 함수를 사용한 적이 없어서 제대로 공부하는건 이번이 처음이었다. 사용할 일이 없어서 배울 필요가 있을까란 생각이 들어도 중첩 함수의 동작 과정을 실행 컨텍스트 스택이라는 개념과 함께 배울 수 있어서 좋았다.

'TIL' 카테고리의 다른 글

TIL - 20220713  (0) 2022.07.13
TIL - 20220712  (0) 2022.07.12
TIL - 20220710  (0) 2022.07.10
TIL - 20220709  (0) 2022.07.09
TIL - 20220708  (0) 2022.07.08
    'TIL' 카테고리의 다른 글
    • TIL - 20220713
    • TIL - 20220712
    • TIL - 20220710
    • TIL - 20220709
    Lee Jaeyoon2
    Lee Jaeyoon2

    티스토리툴바