TypeScript 프로젝트 참조 이해하기
다중 패키지 빌드를 위해 composite와 references 설정을 사용합니다.
TypeScript 프로젝트 참조 이해하기은(는) CoddyKit의 무료 TypeScript Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 TypeScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
프로젝트 참조란 무엇입니까
프로젝트 참조를 사용하면 TypeScript 코드베이스를 서로 의존성을 선언하는 여러 tsconfig 프로젝트로 나눌 수 있으므로, 증분 방식의 격리된 빌드가 가능합니다.
// tsconfig.json (root)
{
"references": [
{ "path": "./packages/core" },
{ "path": "./packages/ui" }
]
}복합 프로젝트
참조되는 각 프로젝트는 tsconfig에 "composite": true를 설정해야 합니다. 이렇게 하면 선언 캐싱과 의존성 추적이 활성화됩니다.
// packages/core/tsconfig.json
{
"compilerOptions": {
"composite": true,
"declaration": true,
"outDir": "./dist"
}
}tsc --build로 빌드하기
루트에서 tsc --build(또는 tsc -b)를 실행하여 모든 참조 프로젝트를 의존성 순서에 따라 빌드하십시오.
# Build all projects
tsc --build
# Build and watch
tsc --build --watch
# Clean build outputs
tsc --build --clean증분 재빌드
첫 번째 빌드가 끝나면 tsc --build는 소스 파일이나 의존성이 변경된 프로젝트만 다시 컴파일하므로 대규모 저장소의 속도가 크게 향상됩니다.
# Only changed packages are rebuilt
tsc --build
# Output: 2/5 projects up to date — skipping선언 파일 사용
참조되는 프로젝트는 의존성을 소스 TypeScript 파일을 다시 구문 분석하는 대신 dist/에 생성된 .d.ts 파일을 통해 사용합니다.
// packages/ui imports from packages/core
import { Button } from "@myapp/core"; // resolved via dist/index.d.ts경로 구성
루트 tsconfig에서 paths를 설정하거나 package.json에서 exports를 사용하여 개발 중 TypeScript가 패키지 가져오기를 올바르게 확인하도록 하십시오.
{
"compilerOptions": {
"paths": {
"@myapp/core": ["./packages/core/src/index.ts"]
}
}
}빌드 순서 유지
TypeScript는 참조 그래프를 기반으로 빌드 순서를 자동으로 결정합니다. 순환 참조는 감지되어 오류로 보고됩니다.
// Circular reference error example:
// packages/core references packages/ui
// packages/ui references packages/core
// Error: Circular project referenceoutDir 및 rootDir
각 복합 프로젝트에는 출력 구조를 제어하고 패키지 경계를 넘어 파일이 유출되는 것을 방지하도록 outDir와 rootDir를 구성해야 합니다.
{
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist"
}
}빌드 도구와 통합하기
Turborepo, Nx, Lerna는 프로젝트 참조와 통합하여 의존성 그래프를 기반으로 빌드를 캐시하고 병렬화합니다.
// turbo.json — declare TypeScript build as a pipeline step
{
"pipeline": {
"build": { "dependsOn": ["^build"], "outputs": ["dist/**"] }
}
}여러 프로젝트 감시하기
tsc --build --watch는 참조된 모든 프로젝트를 감시하고 변경될 때마다 증분 방식으로 다시 컴파일하여 모노레포에서 거의 즉각적인 피드백을 제공합니다.
# Terminal: tsc --build --watch
# [9:00:01 AM] Found 0 errors. Watching for file changes.복습: 프로젝트 참조
프로젝트 참조는 TypeScript를 격리되고 캐시할 수 있는 빌드 단위로 나눕니다. composite: true를 설정하고, references를 선언하며, 모노레포에서 빠르고 올바른 증분 빌드를 위해 tsc --build를 사용하십시오.
빠른 확인
다른 프로젝트가 참조할 수 있으려면 어떤 tsconfig 옵션이 필요합니까?
학습 내용
TypeScript 프로젝트 참조를 사용하면 모노레포에서 빠르고 격리된 빌드를 수행할 수 있습니다. composite: true를 구성하고, references를 통해 의존성을 선언하며, 증분 컴파일을 위해 tsc --build로 빌드하십시오.
자주 묻는 질문
“TypeScript 프로젝트 참조 이해하기” 강의는 무료인가요?
네 — “TypeScript 프로젝트 참조 이해하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 TypeScript Academy 강의 전체를 잠금 해제할 수 있습니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“TypeScript 프로젝트 참조 이해하기”에서 뭘 배우나요?
다중 패키지 빌드를 위해 composite와 references 설정을 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
TypeScript Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 TypeScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“TypeScript 프로젝트 참조 이해하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 TypeScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 TypeScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- TypeScript 프로젝트 참조 이해하기
- TypeScript와 함께 사용하는 pnpm 작업 공간
- 공유 형식 패키지 전략
- 모노레포의 증분 빌드 및 캐시