5. 현재 실행중인 코드의 위치 가져오기(코드 실행 속도 늦추기)
현재 실행중인 코드의 위치 가져오기(코드 실행 속도 늦추기)
Section titled “현재 실행중인 코드의 위치 가져오기(코드 실행 속도 늦추기)”달빛약속 런타임은 코드 실행 과정을 시각화할 수 있도록, 현재 실행중인 코드의 위치를 알리는 기능을 제공합니다. 이 기능은 흐름제어 문법(조건문, 반복문)를 배우거나, 코드 오류를 수정할 때 유용하게 사용할 수 있습니다.
::: warning 달빛약속 런타임은 코드 실행 위치 시각화를 직접 제공하지 않고, 실행중인 코드의 위치를 가져오는 이벤트를 제공합니다. 코드 실행 위치 시각화는 각 서비스의 개발자가 직접 구현해야 합니다. :::
코드 실행 속도 늦추기
Section titled “코드 실행 속도 늦추기”프로그램이 실행되는 속도는 매우 빠르기에, 코드 실행 과정을 시각화하기 위해서는
코드 실행 속도를 늦춰야 합니다. 코드 실행 속도는 각 모듈별로 설정되며, addModule
메소드와 executionDelay 속성을 사용하여 지정합니다. executionDelay 속성은
코드 실행 속도를 늦추는 시간을 밀리초 단위로 설정합니다.
import { YaksokSession } from '@dalbit-yaksok/core'
const session = new YaksokSession()
session.addModule( 'main', `"안녕, 세상!" 보여주기"잠시 후에 출력됩니다" 보여주기`, { executionDelay: 500, // 코드 실행 속도를 500밀리초로 설정 },)
await session.runModule('main')위 코드는 코드 실행 속도를 500밀리초로 설정합니다. 이제 코드는 500ms에 한 줄씩 실행됩니다.
실행중인 코드 위치 가져오기
Section titled “실행중인 코드 위치 가져오기”sessionConfig 객체의 events.runningCode 이벤트를 사용하여 현재 실행중인
코드의 위치를 가져올 수 있습니다.
import { SessionConfig, yaksok } from '@dalbit-yaksok/core'
const sessionConfig: SessionConfig = { events: { runningCode: (start, end, scope, tokens) => { console.log(start, end, scope, tokens) }, },}
const session = new YaksokSession(sessionConfig)
session.addModule( 'main', `1 보여주기1 + 2 보여주기`,)
await session.runModule('main')
/*{ line: 2, column: 1 } { line: 2, column: 7 } Scope { .. } [{ type: "NUMBER_LITERAL", value: "1" } ... ]{ line: 3, column: 1 } { line: 3, column: 11 } Scope { .. } [{ type: "NUMBER_LITERAL", value: "1" } ... ]*/위 코드는 runningCode 이벤트를 사용하여 현재 실행중인 코드의 위치를 콘솔에
출력합니다.