고급 TypeScript - 타입스크립트와 Node.js: 타입 정의 파일 사용

타입스크립트와 Node.js: 타입 정의 파일 사용

타입스크립트는 JavaScript의 상위 집합으로, 정적 타입을 제공하여 코드의 안정성과 가독성을 높여줍니다. Node.js는 서버 사이드에서 JavaScript를 실행할 수 있는 환경을 제공합니다. 이 두 가지 기술을 결합하면 강력한 웹 애플리케이션 개발이 가능합니다.

1. 모듈 시스템

Node.js에서는 CommonJS 모듈 시스템을 사용하여 코드를 모듈화합니다. 각 파일은 독립적인 스코프를 가지고 있으며, 필요한 기능이나 변수를 require로 가져오고, 다른 파일에 노출하려면 module.exports를 사용합니다.

예제:

// math.ts
export function add(a: number, b: number): number {
    return a + b;
}

// app.ts
import { add } from './math';

console.log(add(5, 3)); // 출력: 8

위 예제에서 math.ts 파일은 덧셈 기능을 정의하고 있습니다. 이를 app.ts에서 가져와 사용할 수 있습니다.

2. 타입 정의 파일 사용

타입스크립트는 JavaScript 라이브러리와 프레임워크에 대한 타입 정보를 제공하기 위해 .d.ts 확장자를 가진 타입 정의 파일을 사용합니다. 이러한 파일들은 외부 라이브러리나 패키지의 API에 대한 정보가 포함되어 있어 IDE에서 자동 완성 및 오류 검사를 지원합니다.

  • 타입 정의 파일 생성: 프로젝트 내에 직접 작성하거나 DefinitelyTyped 같은 저장소에서 다운로드받아 사용할 수 있습니다.

예제:

// myLibrary.d.ts (사용자 정의 타입 선언)
declare module 'myLibrary' {
    export function greet(name: string): string;
}

위와 같이 사용자 정의 라이브러리에 대한 기본적인 타입 정보를 제공할 수 있습니다.

3. npm과 함께 사용하는 타입 패키지

많은 인기 있는 npm 패키지는 이미 TypeScript용으로 작성된 공식 또는 커뮤니티 기반의 타입 정의를 제공합니다. 이러한 패키지는 보통 @types/패키지명 형태로 설치할 수 있습니다.

설치 예시:

npm install @types/express --save-dev

이렇게 하면 Express.js 라이브러리에 대한 타이핑 정보가 추가되어 더 안전하게 사용할 수 있습니다.

4. 실용적인 예시 - Express 앱 구축

Express.js를 이용한 간단한 웹 서버를 만들어보겠습니다:

import express, { Request, Response } from 'express';

const app = express();
const PORT = process.env.PORT || 3000;

// 라우터 설정 
app.get('/', (req: Request, res: Response) => {
    res.send('Hello World!');
});

// 서버 시작 
app.listen(PORT, () => {
    console.log(`서버가 http://localhost:${PORT} 에서 실행 중입니다.`);
});

위 코드에서 TypeScript는 요청(Request)과 응답(Response) 객체의 형식을 명확히 하여 개발자가 쉽게 이해하고 활용할 수 있도록 도와줍니다.

요약

타입스크립트를 Node.js와 함께 사용하는 것은 코드 품질과 유지보수성을 크게 향상시킵니다. 모듈 시스템을 통해 코드를 구조화하고, 사용자 지정 및 외부 라이브러리를 위한 타이핑 정보를 활용함으로써 더욱 효율적이고 안전한 프로그래밍 경험을 할 수 있습니다.

Subscribe to shimdh.log

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe