TypeScript Academy · 강의

CI에서 형식 검사하기: 전략과 도구

지속적 통합 파이프라인에서 형식 검사를 효율적으로 실행합니다.

레슨 4/413개 단계

CI에서 형식 검사하기: 전략과 도구은(는) CoddyKit의 무료 TypeScript Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 TypeScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

CI에서 타입 검사를 해야 하는 이유

CI에서 TypeScript 타입 검사를 실행하면 개발자가 로컬에서 놓친 타입 오류를 찾아냅니다. 특히 대규모 팀에서는 한 패키지의 변경이 다른 패키지를 망가뜨릴 수 있습니다.

# Simple CI type check step
npx tsc --noEmit

--noEmit 플래그

tsc --noEmit은 전체 타입 검사기를 실행하지만 JavaScript 출력을 건너뜁니다. 파일을 생성하지 않고 CI에서 타입 검사를 수행하기에 적합합니다.

# GitHub Actions step
- name: Type Check
  run: npx tsc --noEmit

CI에서 증분 타입 검사

CI 캐싱과 함께 --incremental을 사용하여 .tsbuildinfo 파일을 복원하면 변경된 파일만 다시 검사할 수 있습니다.

# Cache .tsbuildinfo in CI (GitHub Actions)
- uses: actions/cache@v3
  with:
    path: .tsbuildinfo
    key: tsc-${{ hashFiles('src/**/*.ts') }}

CI의 프로젝트 참조

모노레포에서 tsc --build --noEmit은 프로젝트 참조 종속성을 준수하면서 모든 패키지의 타입을 검사합니다.

# Type-check all project references
npx tsc --build --noEmit

Nx를 사용한 변경 영향 범위만 타입 검사

Nx는 PR의 영향을 받는 패키지를 감지하고 해당 패키지만 타입 검사하여 변경되지 않은 패키지는 건너뛸 수 있습니다.

# Only type-check affected projects
npx nx affected --target=typecheck --base=origin/main

Turborepo를 사용한 타입 검사

각 패키지에 typecheck 스크립트를 추가하고 캐싱과 병렬화를 지원하는 Turborepo를 통해 실행하십시오.

// package.json
{ "scripts": { "typecheck": "tsc --noEmit" } }

// turbo.json pipeline
{ "typecheck": { "dependsOn": ["^typecheck"], "outputs": [] } }

// Run:
npx turbo typecheck

타입 검사 병렬화

서로 독립적인 패키지의 경우 concurrently 또는 npm-run-all 같은 도구를 사용하여 타입 검사를 병렬로 실행하십시오.

npx concurrently \
  "tsc -p packages/core/tsconfig.json --noEmit" \
  "tsc -p packages/ui/tsconfig.json --noEmit"

타입 오류 발생 시 CI 실패시키기

종료 코드를 확인하여 TypeScript 오류가 하나라도 있으면 CI가 실패하도록 하십시오. 오류가 있으면 tsc --noEmit은 종료 코드 1로 종료됩니다.

# CI step — fails if tsc exits 1
- name: Type Check
  run: npx tsc --noEmit
  # No continue-on-error: true here

PR만 타입 검사

GitHub Actions를 사용하여 PR에서 변경된 파일만 타입 검사하면 대규모 저장소에서 CI 시간을 줄일 수 있습니다.

# Use ts-affected or custom script to detect changed TS files
# Then run tsc only for affected tsconfig projects

PR 댓글로 타입 오류 보고

danger-js 같은 도구는 tsc 출력을 분석하고 더 쉽게 확인할 수 있도록 인라인 PR 검토 댓글로 타입 오류를 게시할 수 있습니다.

// dangerfile.ts
import { danger, fail } from "danger";
// Parse tsc --noEmit output and report errors inline

CI 타입 검사 요약

정확성을 위해 CI에서 tsc --noEmit을 실행하십시오. 속도를 위해 --incremental과 캐시를 사용하십시오. 모노레포에서는 tsc --build, Turborepo 또는 Nx의 변경 영향 분석을 사용하여 PR마다 필요한 작업을 최소화하십시오.

빠른 확인

출력 파일을 생성하지 않고 타입을 검사하는 tsc 플래그는 무엇입니까?

배운 내용

CI 타입 검사는 파일을 내보내지 않고 정확성을 확인하기 위해 tsc --noEmit을 사용합니다. --incremental, 프로젝트 참조, 캐싱 도구(Turborepo, Nx)를 함께 사용하면 대규모 모노레포에서도 빠르고 확장 가능한 타입 검사를 수행할 수 있습니다.

무료로 시작

AI 튜터와 함께 TypeScript을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
101
레슨
352

자주 묻는 질문

“CI에서 형식 검사하기: 전략과 도구” 강의는 무료인가요?

네 — “CI에서 형식 검사하기: 전략과 도구” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 TypeScript Academy 강의 전체를 잠금 해제할 수 있습니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“CI에서 형식 검사하기: 전략과 도구”에서 뭘 배우나요?

지속적 통합 파이프라인에서 형식 검사를 효율적으로 실행합니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

TypeScript Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 TypeScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“CI에서 형식 검사하기: 전략과 도구” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 TypeScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 TypeScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 느린 TypeScript 컴파일 프로파일링
  2. 비용이 큰 형식 연산 피하기
  3. skipLibCheck 및 격리된 선언
  4. CI에서 형식 검사하기: 전략과 도구
← TypeScript Academy(으)로 돌아가기