Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

Node.js script.createCachedData() 메서드 완벽 정리

Node.js에서 script.createCachedData() 메서드는 코드 캐시(code cache)를 생성하는 데 사용됩니다. 이렇게 생성된 캐시는 스크립트 생성자의 cachedData 옵션과 함께 활용할 수 있으며, 한 번 생성된 캐시 데이터는 지연 시간 없이 여러 번 호출하여 사용할 수 있습니다. 이 메서드는 Node.js의 vm 모듈에 내장된 프로그래밍 인터페이스입니다.

문법

script.createCachedData()

매개변수

이 메서드는 단순히 데이터를 캐싱하는 역할만 수행하기 때문에 사용자로부터 별도의 입력값을 필요로 하지 않습니다. 대신 캐시된 데이터를 Buffer 형태로 반환합니다.

예제 1: 기본적인 캐시 생성

createCachedData.js라는 이름의 파일을 생성하고 아래 코드를 복사한 뒤, 다음 명령어로 실행해 보겠습니다.

node createCachedData.js

createCachedData.js

// script.createCachedData() 메서드의 동작을 확인하는 Node.js 예제

// vm 모듈 가져오기
const vm = require("vm");

// 두 숫자의 차이를 계산하는 함수가 포함된 스크립트 정의
const script = new vm.Script(`
    function add(a, b) {
        return a - b;
    }
    const x = add(2, 1);
`);

// 변수 x를 실행하지 않은 상태에서 캐시 데이터 생성
const cacheWithoutx = script.createCachedData();
console.log(cacheWithoutx);

출력 결과

C:\home\node>> node createCachedData.js
<Buffer b5 03 de c0 8a f4 d4 f4 3d 00 00 00 ff 03 00 00 d5 a2 f5 b7 06 00 00
00 00 00 00 00 28 02 00 00 8f 87 4d e3 59 55 98 f9 00 00 00 80 20 00 00 80 00
03 ... >

예제 2: runInThisContext() 실행 후 캐시 생성

이번에는 runInThisContext() 메서드로 스크립트를 먼저 실행한 후 캐시를 생성해 보겠습니다.

// script.createCachedData() 메서드의 동작을 확인하는 Node.js 예제

// vm 모듈 가져오기
const vm = require("vm");

// 두 숫자의 차이를 계산하는 함수가 포함된 스크립트 정의
const script = new vm.Script(`
    function add(a, b) {
        return a - b;
    }
    const x = add(2, 1);
`);

// 스크립트를 현재 컨텍스트에서 실행
script.runInThisContext();

// 스크립트 실행 후 캐시 데이터 생성
const cacheWithx = script.createCachedData();
console.log(cacheWithx);

출력 결과

C:\home\node>> node createCachedData.js
<Buffer b5 03 de c0 8a f4 d4 f4 3d 00 00 00 ff 03 00 00 d5 a2 f5 b7 06 00 00
00 00 00 00 00 00 03 00 00 15 80 fd 5d 69 21 3a a9 00 00 00 80 20 00 00 80 38
04 ... >

정리

createCachedData() 메서드는 V8 엔진이 스크립트를 컴파일한 결과물을 버퍼 형태로 저장합니다. 이 캐시를 재사용하면 동일한 스크립트를 다시 로드할 때 컴파일 과정을 생략할 수 있어 애플리케이션의 시작 속도를 크게 향상시킬 수 있습니다. 특히 자주 실행되는 스크립트나 대용량 코드를 다루는 환경에서 성능 최적화에 유용하게 활용됩니다.