[typescript] 타입 추론 성능 테스트 방법

타입스크립트는 정적 타입 지정을 통해 프로그램의 안정성을 높이고 개발자의 실수를 줄여줍니다. 이를 가능하게 하는 주요 메커니즘이 바로 “타입 추론”입니다. 하지만 타입 추론은 완전한 타입 지정 없이도 문맥을 기반으로 타입을 유추하는 기능으로, 이로 인해 코드를 실행할 때 성능 부하를 일으킬 수 있습니다. 따라서 우리는 타입 추론이 성능에 미치는 영향을 테스트하고, 최적화하는 방법을 알아볼 것입니다.

타입 추론 성능 테스트를 위한 예제 프로젝트 생성

첫 번째로, TypeScript를 사용하여 간단한 예제 프로젝트를 생성해보겠습니다. 여기서는 Node.js 환경을 기준으로 설명하겠습니다.

먼저 프로젝트 폴더를 생성하고, package.json 파일을 만듭니다. 그리고 나서 typescript 패키지를 설치합니다.

mkdir 타입추론성능테스트
cd 타입추론성능테스트
npm init -y
npm install typescript

그리고 간단한 index.ts 파일을 생성하고, 아래와 같이 코드를 작성합니다.

function add(a, b) {
  return a + b;
}

const result = add(10, 5);
console.log(result);

이제 package.json 파일에 스크립트를 추가하여 타입스크립트를 실행할 수 있도록 합니다.

"scripts": {
  "start": "tsc index.ts && node index.js"
}

타입 주석 추가하기

이제 타입 추론을 최적화하기 위해 타입 주석을 추가해보겠습니다.

function add(a: number, b: number): number {
  return a + b;
}

const result: number = add(10, 5);
console.log(result);

성능 테스트

타입 주석이 추가된 코드와 추가되지 않은 코드 간에 성능을 비교하기 위해, ts-nodebenchmark 라이브러리를 사용하여 성능 테스트를 수행해볼 것입니다.

npm install ts-node benchmark

그리고 다음과 같이 index.ts 파일을 수정하여 각각의 경우에 대한 성능을 측정할 수 있습니다.

import { suite } from 'benchmark';

const addWithoutType: Function = () => {
  function add(a, b) {
    return a + b;
  }
  const result = add(10, 5);
  console.log(result);
};

const addWithType: Function = () => {
  function add(a: number, b: number): number {
    return a + b;
  }
  const result: number = add(10, 5);
  console.log(result);
};

const bench = new suite();

bench
.add('Add without type', addWithoutType)
.add('Add with type', addWithType)

.on('cycle', (event: { target: any }) => {
  console.log(String(event.target));
})
.on('complete', function(this: { filter: (arg0: (tx: any) => any) => any; }) {
  console.log('Fastest is ' + this.filter('fastest').map('name'));
})
.run({ 'async': true });

npm start 명령어로 성능 테스트를 실행할 수 있습니다. 결과를 통해 타입 주석이 추가된 경우의 성능이 개선되었음을 확인할 수 있습니다.

마무리

타입 추론은 타입스크립트의 강력한 기능 중 하나이지만, 이로 인해 성능 저하가 발생할 수 있습니다. 이러한 상황에서는 타입 주석을 추가하여 타입 추론을 최적화함으로써 성능을 향상시킬 수 있습니다. 이를 통해 안정성과 성능을 모두 확보할 수 있습니다.

성능 테스트를 통해 최적화된 코드를 작성하는 것은 매우 중요합니다. 이를 통해 프로젝트의 성능을 향상시키고, 사용자들에게 더 나은 경험을 제공할 수 있을 것입니다.

이상으로 타입 추론 성능 테스트에 대한 내용을 마치도록 하겠습니다. 감사합니다.

참고 자료