TypeScript로 만드는 대표기업 서비스
Microsoft·Slack·Airbnb·Stripe·Vercel이 사용하는 TS 기법과 기초→중급→심화 프롬프트를 사례별로 분석한다.
TypeScript는 단순한 타입 시스템이 아닙니다. Microsoft·Slack·Airbnb·Stripe·Vercel 같은 기업들이 TS를 어떻게 활용해 안정적인 거대 코드베이스를 만드는지 살펴보고, 같은 기법을 적용하는 AI 프롬프트를 단계별로 제공합니다.
1. Microsoft — VS Code (TS로 만든 최대 프로젝트)
사용 기술: 100% TypeScript, Monorepo, 엄격한 strict 옵션, 자체 LSP
VS Code는 TypeScript의 창시자 Microsoft가 만든 가장 큰 TS 프로젝트입니다. 50만 줄 이상의 TS 코드로 운영되며, 매주 수백 명의 기여자가 안전하게 코드를 추가합니다.
🟢 기초
VS Code 확장 프로그램의 기본 구조를
activate 함수와 명령 등록 코드로 보여줘.
타입 정의의 역할을 주석으로.🟡 중급
VS Code 확장의 메시지 통신을 TS로 설계해줘.
Webview ↔ Extension 양방향 메시지의 타입 안전성을
유니온 + 디스크리미네이터 패턴으로 보장.🔵 심화
VS Code 수준의 대규모 TS 프로젝트 아키텍처를 설계해줘.
포함: monorepo / 의존성 관리 / 모듈 경계 /
점진적 strict 도입 / build 캐싱 / type-check 분리.2. Slack — 데스크톱 앱 (Electron + TS)
사용 기술: Electron + React + TypeScript, IPC 타입 동기화
Slack 데스크톱은 Electron + TS로 만들어졌습니다. 메인 프로세스와 렌더러 프로세스 간 통신(IPC)을 타입으로 안전하게 보호합니다.
🟢 기초
Electron의 메인 vs 렌더러 프로세스 차이를
비유 + 다이어그램으로 설명해줘.
IPC가 왜 필요한지도.🟡 중급
IPC 메시지를 TS 인터페이스로 정의하고
양쪽에서 같은 타입을 공유하는 코드를 만들어줘.
Discriminated Union으로 메시지 종류 식별.🔵 심화
Slack 수준 데스크톱 앱의 TS 아키텍처를 설계해줘.
포함: 모노레포 / 공유 타입 패키지 /
IPC 코드 자동 생성 / 보안(contextIsolation) /
zero-runtime 검증.3. Airbnb — 프론트엔드 타입 안전 (JS → TS 마이그레이션)
사용 기술: 점진적 strict 도입, codemod, allowJs, tsc-noEmit
Airbnb는 수백만 줄 JavaScript를 단계적으로 TS로 전환한 사례를 공개했습니다. 한 번에 바꾸지 않고 파일별 점진적 도입이 핵심입니다.
🟢 기초
JS 파일을 TS로 바꾸는 가장 작은 단계를 알려줘.
.js → .ts 변경 + 함수 시그니처에 타입 추가만으로
시작하는 예시.🟡 중급
JS → TS 마이그레이션 전략을 단계별로 정리해줘.
1) allowJs / 2) any 우선 / 3) strict 점진 도입 /
4) codemod로 일괄 변환. 각 단계의 위험과 측정 지표.🔵 심화
100만 줄 JS 코드베이스의 TS 마이그레이션 로드맵을 설계해줘.
포함: tsconfig 분할 / per-file 옵션 / CI 게이트 /
팀별 진척 측정 / 점진적 strict / 롤백 전략.4. Stripe — API SDK (타입 기반 개발자 경험)
사용 기술: 자동 생성 타입, OpenAPI → TS, JSDoc, 디스크리미네이터
Stripe SDK는 'TS를 안 쓰는 개발자도 쓰고 싶게 만드는' 기준점입니다. API 스펙에서 타입을 자동 생성해 항상 최신 상태를 유지합니다.
🟢 기초
Stripe SDK 사용 예시(stripe.charges.create)에서
타입 자동완성이 어떻게 도움이 되는지
실수 예시 vs 자동완성 예시로 비교.🟡 중급
OpenAPI 스펙에서 TS 타입을 자동 생성하는 흐름을 만들어줘.
openapi-typescript 사용 + 타입 안전 fetch 래퍼 +
에러 응답까지 디스크리미네이터로 분기.🔵 심화
Stripe 수준 SDK 개발자 경험(DX)을 설계해줘.
포함: 자동 생성 / JSDoc 풍부화 / 디프리케이션 표시 /
버전 호환성 / TS·JS 동시 지원 / Tree-shakable.5. Vercel — Next.js 에코시스템 (TS 퍼스트)
사용 기술: Next.js의 강한 TS 통합, 자동 라우트 타입, env 타입
Vercel/Next.js는 TS 퍼스트 프레임워크입니다. 라우트 파라미터·환경변수·검색 파라미터 모두 자동 타입화됩니다.
🟢 기초
Next.js에서 페이지 props의 params/searchParams 타입을
어떻게 정의하는지 예시 코드로 보여줘.🟡 중급
Zod로 환경변수 + 폼 입력 + API 요청을
런타임 검증 + 컴파일 타입 동시 확보하는
패턴을 코드로 보여줘.🔵 심화
Next.js + tRPC + Zod + Prisma 풀스택을 설계해줘.
포함: DB 스키마 → 클라이언트 자동 타입 / Server Actions /
edge runtime 호환 / 캐시·재검증 전략.💡 기업 TS의 공통 원칙
| 원칙 | 설명 | 기업 |
|---|---|---|
| strict 모드 | 모든 옵션 켜기 | MS, Stripe |
| 디스크리미네이터 | 유니온 분기 안전 | Slack, Stripe |
| 점진적 도입 | 한 번에 바꾸지 않기 | Airbnb |
| 자동 생성 | 스펙 → 타입 | Stripe, tRPC |
| 모노레포 타입 공유 | 패키지 간 일관성 | MS, Slack |
💻 5가지 기법 미니 데모
// 기업 TS 기법 5가지 — 미니 데모
// 1. MS: strict 모드 + 모듈 경계
// tsconfig.json: { "strict": true, "noUncheckedIndexedAccess": true }
function safeGet<T>(arr: T[], i: number): T | undefined {
return arr[i]; // strict 옵션으로 자동으로 T | undefined로 좁혀짐
}
// 2. Slack: IPC Discriminated Union
type IpcMessage =
| { type: 'open-file'; path: string }
| { type: 'save-file'; path: string; content: string }
| { type: 'delete-file'; path: string };
function handle(msg: IpcMessage) {
switch (msg.type) {
case 'open-file': return readFile(msg.path);
case 'save-file': return writeFile(msg.path, msg.content);
case 'delete-file': return removeFile(msg.path);
// 새 타입 추가 시 컴파일 에러 → 안전
}
}
declare function readFile(p: string): unknown;
declare function writeFile(p: string, c: string): unknown;
declare function removeFile(p: string): unknown;
// 3. Airbnb: 점진적 마이그레이션 (allowJs)
// tsconfig: { "allowJs": true, "checkJs": false }
// .js 파일은 그대로 두고 .ts 파일부터 점진적 도입
// 4. Stripe: Zod로 런타임 + 컴파일 타입 동시 확보
import { z } from 'zod';
const Charge = z.object({
id: z.string(),
amount: z.number().positive(),
currency: z.enum(['usd', 'krw']),
});
type Charge = z.infer<typeof Charge>; // {id: string; amount: number; currency: 'usd' | 'krw'}
async function fetchCharge(id: string): Promise<Charge> {
const res = await fetch(`/api/charges/${id}`);
return Charge.parse(await res.json()); // 런타임 검증 + 타입 자동
}
// 5. Vercel: Next.js 페이지 props 자동 타입
// app/posts/[id]/page.tsx
interface PageProps {
params: { id: string };
searchParams: { [key: string]: string | string[] | undefined };
}
async function Page({ params }: PageProps) {
// params.id는 자동으로 string 타입
return null;
}
// 💡 이 5가지 패턴만 잘 써도 대규모 TS 프로젝트의 안전성 80%는 확보됩니다.무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6
Microsoft, Slack, Airbnb, Stripe, Vercel의 TS 사용 패턴에서 공통적으로 쓰이는 타입 설계·제네릭 활용 기법을 분석해줘.
무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro
TS로 만든 실전 서비스 사례를 SaaS/라이브러리/디자인시스템 3유형 × 3개씩 실제 회사 이름과 함께 보여줘.
무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro
Microsoft·Slack·Airbnb·Stripe·Vercel의 TS 코드를 타입 엄격도, 제네릭 활용, 빌드 시간 측면에서 비교 리포트로 만들어줘.
무료: Grok 4.1 / SuperGrok $30/mo
2026년 한국 채용 시장에서 TS 능력이 React·Node 개발자 연봉에 실제로 얼마나 영향을 주는지 솔직히 알려줘.