[javascript] 실행 컨텍스트와 프로미스(Promise) 처리의 동작 방식은 무엇인가?

자바스크립트에서 실행 컨텍스트(execution context)와 프로미스(Promise)는 중요한 개념입니다. 실행 컨텍스트는 코드가 실행되는 환경을 추적하고 관리하는데 사용되며, 프로미스는 비동기 작업을 처리하는데 사용됩니다.

실행 컨텍스트

실행 컨텍스트는 코드가 실행될 때 생성되는 개별적인 환경을 나타냅니다. 이 환경에는 변수, 함수 선언 및 스코프 등이 포함됩니다. 실행 컨텍스트는 스택(Stack)으로 관리되며, 현재 활성화된 컨텍스트는 스택 상단에 위치합니다.

함수가 호출될 때마다 새로운 실행 컨텍스트가 생성되고 스택에 쌓이게 됩니다. 함수의 실행이 끝나면 해당 컨텍스트가 스택에서 제거됩니다.

프로미스(Promise) 처리

프로미스는 비동기 작업의 결과를 나타내는 객체입니다. 프로미스는 보류(pending), 이행(fulfilled), 거부(rejected)의 세 가지 상태를 가집니다.

프로미스를 생성하고 비동기 작업이 완료되면, 해당 작업이 성공했는지 또는 실패했는지에 따라 프로미스 상태가 변경됩니다. 성공 시에는 이행(fulfilled) 상태로, 실패 시에는 거부(rejected) 상태로 변경됩니다.

프로미스의 then() 메서드를 사용하여 성공 또는 실패한 경우에 대한 처리를 할 수 있습니다. then() 메서드는 콜백 함수를 사용하여 프로미스의 상태에 따라 다른 동작을 수행할 수 있게 해줍니다.

이렇게 프로미스는 비동기 상황에서 보다 강력하고 구조화된 방식으로 상태 및 결과를 처리할 수 있는 기능을 제공합니다.

위와 같은 방식으로 실행 컨텍스트와 프로미스는 각각 코드 실행 환경을 추적하고 비동기 작업을 처리하는데 사용됩니다.