• 모닥위키모닥위키
  • 모닥위키
위키
  • 임의문서
  • 주간인기
  • 문서
  • 시리즈
    AAAdddvvveeerrrtttiiissseeemmmeeennntttAdvertisement

    © 2025 modak.wiki All rights reserved.

      콜 스택

      Chapter 1

      컴퓨터/IT학습
      lu

      luasenvy (luasenvy)

      CC BY 4.0 국제규약

      Stack

      스택

      스택

      스택은 자료구조의 하나로 위 그림처럼 입력과 출력이 한 곳에서만 이루어진다. 입력과 출력을 한 곳에서만 이루어지기 때문에 순서대로 입력되고 역순으로 출력된다. 'Last In First Out'(LIFO), '후입선출' 등의 이름으로 불리기도 한다.

      stack.js
      const store = [];
      // 배열의 마지막 부분을 통해서만 입력한다.
      store.push(1);
      store.push(2);
      store.push(3);
      
      let cursor;
      // 배열의 마지막 부분을 통해서만 출력한다.
      cursor = store.pop(); // 3
      cursor = store.pop(); // 2
      cursor = store.pop(); // 1
      

      Call Stack

      자바스크립트에서는 함수(Function)가 호출(call)되면 내부적으로 '콜 스택'이라고 하는 저장공간을 사용한다. 이름에서 볼 수 있듯이 스택 방식으로 관리되며 이곳에는 실행중인 함수들이 순서대로 저장된다. 함수가 호출될 때마다 호출된 함수를 스택에 입력하고 함수가 종료되면 스택으로부터 출력(제거)된다.

      Function Call
      const B = (num) => num + Math.trunc(Math.random() * 100);
      
      const A = () => B(Math.trunc(Math.random() * 50))
      
      A();
      

      위 예제코드처럼 함수 내에서 다시 함수를 호출하는 경우가 있다고 가정한다면 가장 먼저 호출된 A가 저장공간에 할당되고 A가 종료되기 전 B가 호출되기 때문에 A, B 순서로 콜 스택에 저장된다. 이렇게 실행되는 함수들은 자연스럽게 역순으로 종료되는데 스택의 입출력 형식과 동일한 것을 확인할 수 있다.

      초판: 2024. 08. 12. 17:47:40

      © 2024 이 문서는 "CC BY 4.0 국제규약" 라이선스로 배포 되었습니다. 모든 권리는 저자에게 있습니다.

      콜 스택

      Stack
      Call Stack