파일별 변환 전략
아무것도 손상시키지 않고 .js를 .ts로 점진적으로 이름을 변경합니다.
파일별 변환 전략은(는) CoddyKit의 무료 TypeScript Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 TypeScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
점진적 접근 방식
파일 단위 변환은 한 번에 하나의 .js 파일 이름을 .ts로 바꾸고, 진행하면서 타입 오류를 수정하는 방식입니다. 이를 통해 모든 단계에서 프로젝트가 계속 컴파일되도록 할 수 있습니다.
# Step 1: rename
mv src/utils.js src/utils.ts
# Step 2: fix errors
npx tsc --noEmit
# Step 3: commit and repeat시작할 위치 선택하기
말단 모듈부터 시작합니다. 말단 모듈은 다른 프로젝트 파일을 가져오지 않는 파일입니다. 이러한 파일은 먼저 충족해야 할 하위 TypeScript 의존성이 없습니다.
# Find files with fewest imports from other project files:
grep -r "from './" src --include="*.js" | sort | uniq -c | sort -n
# Convert lowest-count files first암시적 any 오류 처리
JS 파일 이름을 .ts로 바꾸면 noImplicitAny: true일 때 타입이 없는 매개변수가 암시적 any 오류를 일으킵니다. 명시적 타입을 추가하거나 임시로 any를 사용합니다.
// Before: JS
function process(data) { return data.value; }
// After: TS (add annotation)
function process(data: { value: string }) { return data.value; }
// Or temporarily:
function process(data: any) { return data.value; }오류를 임시로 억제하기
수정하기 어려운 줄에는 // @ts-ignore를 사용하고, 잊지 않도록 TODO로 추적합니다.
// TODO: type this properly in follow-up PR
// @ts-ignore
const result = complexLegacyFunction(x);가져오기 문 업데이트하기
파일이 .ts가 되면 이 파일을 사용하는 코드에서 가져오기 문을 업데이트해야 할 수 있습니다. TypeScript는 가져오기 경로에 파일 확장자가 없어도 .ts 파일을 자동으로 해석합니다.
// No extension needed — TypeScript finds .ts
import { process } from "./utils";서드 파티 require 변환하기
TypeScript 모듈 해석 방식에 맞추기 위해 변환 과정에서 CommonJS require 호출을 ES 모듈 import 구문으로 바꿉니다.
// Before: CommonJS
const fs = require("fs");
// After: ES module
import fs from "fs";엄격 모드 단계적 적용
파일별 // @ts-strict-ignore 주석을 사용하거나 엄격 모드가 켜진 별도의 tsconfig로 마이그레이션하여 파일별로 엄격성 플래그를 점진적으로 활성화합니다.
// tsconfig.strict.json — points to converted files only
{
"extends": "./tsconfig.json",
"compilerOptions": { "strict": true },
"include": ["src/converted/**/*"]
}남은 파일 추적하기
체크리스트를 유지하거나 스크립트를 사용하여 남은 .js 파일의 개수를 세고 시간에 따른 마이그레이션 진행 상황을 추적합니다.
find src -name "*.js" | wc -l # remaining JS files
find src -name "*.ts" | wc -l # converted TS files대규모 PR 피하기
검토를 관리하기 쉽도록 PR 하나당 파일 하나를 변환합니다. TypeScript 대규모 마이그레이션도 개별 파일 단위로 범위를 제한하면 검토하고 되돌리기 쉬워집니다.
# Good: one file per PR
# Bad: 50 files renamed in one PR변환할 때마다 검사 실행하기
각 파일을 변환한 후 검사 모음을 실행하여 TypeScript 타입 검사로는 발견하지 못할 수 있는 실행 시 회귀를 찾아냅니다.
npm test
# Ensure all tests pass after each .js → .ts rename복습: 파일 단위 전략
먼저 말단 파일을 변환하고, 오류를 수정하거나 억제하며, 모든 단계에서 프로젝트가 계속 컴파일되도록 합니다. 남은 JS 파일을 추적하고, 관리하기 쉬운 검토를 위해 PR 하나당 파일 하나를 제출합니다.
빠른 확인
파일 단위 마이그레이션에서 어떤 파일을 먼저 TypeScript로 변환해야 하나요?
학습 내용
파일 단위 마이그레이션에서는 말단 모듈부터 시작하여 .ts로 이름을 바꾸고, 오류를 수정하거나 억제하며, 프로젝트가 계속 컴파일되도록 하고 진행 상황을 추적합니다. PR마다 작은 단위로 변환하면 마이그레이션을 안전하게 진행하고 검토하기 쉽습니다.
자주 묻는 질문
“파일별 변환 전략” 강의는 무료인가요?
네 — “파일별 변환 전략” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 TypeScript Academy 강의 전체를 잠금 해제할 수 있습니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“파일별 변환 전략”에서 뭘 배우나요?
아무것도 손상시키지 않고 .js를 .ts로 점진적으로 이름을 변경합니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
TypeScript Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 TypeScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“파일별 변환 전략” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 TypeScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 TypeScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.