TypeScript는 JavaScript의 슈퍼셋으로, 정적 타입을 제공하여 더 안전한 코드 작성을 가능하게 합니다. 하지만 TypeScript 프로젝트를 시작할 때 반드시 설정해야 하는 파일이 바로 `tsconfig.js`입니다. 이 파일은 TypeScript 컴파일러에게 어떻게 코드를 변환하고 처리할지에 대한 지침을 제공하는 중요한 역할을 합니다. 이번 글에서는 `tsconfig.js` 파일의 역할, 주요 옵션, 설정 방법 등을 쉽게 설명하겠습니다.
tsconfig.js 파일이란?
`tsconfig.js` 파일은 TypeScript 프로젝트의 루트 디렉토리에 위치하며, 프로젝트 전반에 걸쳐 TypeScript 컴파일러(TSC)의 동작 방식을 정의합니다. 이 파일을 통해 컴파일 옵션, 파일 포함/제외 규칙, 경로 별칭 등을 설정할 수 있습니다.
기본 구조
`tsconfig.js` 파일은 JSON 형식으로 작성됩니다. 기본 구조는 다음과 같습니다:
{
"compilerOptions": {
// 컴파일러 옵션
},
"include": [
// 포함할 파일 또는 디렉토리
],
"exclude": [
// 제외할 파일 또는 디렉토리
],
"files": [
// 명시적으로 포함할 파일 목록
]
}
주요 옵션 설명
1. compilerOptions
`compilerOptions`는 TypeScript 컴파일러의 동작을 제어하는 다양한 옵션을 정의하는 곳입니다. 주요 옵션들을 살펴보겠습니다:
- target: 어떤 버전의 JavaScript로 컴파일할지를 설정합니다. 예: “es5”, “es6”.
- module: 모듈 시스템을 지정합니다. 예: “commonjs”, “es6”.
- strict: 모든 엄격한 타입 검사를 활성화합니다. 예: true.
- outDir: 컴파일된 파일이 저장될 디렉토리를 지정합니다.
- rootDir: 입력 파일의 루트 디렉토리를 설정합니다.
- baseUrl: 모듈 해석을 위한 기본 디렉토리를 지정합니다.
- paths: 모듈 경로 별칭을 설정합니다.
2. include
`include` 배열에는 TypeScript 컴파일러가 포함할 파일이나 디렉토리 패턴을 지정합니다. 예:
"include": ["src//*"]
3. exclude
`exclude` 배열에는 컴파일러가 무시할 파일이나 디렉토리 패턴을 지정합니다. 예:
"exclude": ["node_modules", "dist"]
4. files
`files` 배열에는 명시적으로 포함할 개별 파일을 지정합니다. 예:
"files": ["src/index.ts"]
경로 별칭(Alias) 설정 방법
프로젝트가 커짐에 따라 모듈의 경로가 길어지고 복잡해질 수 있습니다. 이때 경로 별칭(Alias)을 사용하면 코드를 더 깔끔하고 읽기 쉽게 만들 수 있습니다. `paths` 옵션을 통해 이를 설정할 수 있습니다.
1. 경로 별칭 설정 예시
예를 들어, `src/app` 디렉토리를 `@app`이라는 별칭으로 설정하려면 `tsconfig.js` 파일의 `compilerOptions`에 `baseUrl`과 `paths`를 다음과 같이 추가합니다:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"outDir": "./dist",
"rootDir": "./src",
"baseUrl": "./",
"paths": {
"@app/*": ["src/app/*"],
"@components/*": ["src/components/*"],
"@utils/*": ["src/utils/*"]
}
},
"include": ["src//*"],
"exclude": ["node_modules", "dist"]
}
2. Alias 사용 예시
이제 `src/app` 디렉토리 안의 모듈을 import할 때 절대 경로 대신 별칭을 사용할 수 있습니다:
import { MyComponent } from '@app/MyComponent';
import { Utility } from '@utils/Utility';
설정 예시
간단한 프로젝트의 `tsconfig.js` 파일 예시는 다음과 같습니다:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"outDir": "./dist",
"rootDir": "./src",
"baseUrl": "./",
"paths": {
"@app/*": ["src/app/*"],
"@components/*": ["src/components/*"],
"@utils/*": ["src/utils/*"]
}
},
"include": ["src//*"],
"exclude": ["node_modules", "dist"]
}
결론
`tsconfig.js` 파일은 TypeScript 프로젝트의 필수 구성 요소로, 올바르게 설정하면 개발 과정에서 많은 이점을 제공합니다. 이 파일의 다양한 옵션을 이해하고 적절히 활용하면 TypeScript의 강력한 기능을 최대한 활용할 수 있습니다. 이번 글을 통해 `tsconfig.js` 파일에 대한 기본 개념과 주요 옵션을 이해하는 데 도움이 되었기를 바랍니다.
TypeScript를 처음 접하는 개발자라도 이 가이드를 참고하여 설정 파일을 구성하고, 프로젝트를 시작해보세요. 올바른 설정은 개발의 효율성을 크게 향상시킬 것입니다.