OPEN HYPER STEP
← 목록으로 (TypeScript)
TS · 18 / 34
ts
CHAPTER 18 / 34
읽기 약 2
SYNTAX

모듈 & 네임스페이스 해부


핵심 개념

TypeScript 모듈은 ES 모듈과 동일합니다. import/export로 모듈을 사용합니다. namespace는 전역 스코프 오염을 방지하는 구 방식입니다. 선언 파일(.d.ts)로 외부 라이브러리 타입을 정의합니다. 모듈 시스템을 지우며 의존성이 어떻게 끊기는지 확인하십시오.

코드 분석
TS📋 코드 (33줄)
// 모듈 시스템 시뮬레이션
  // utils.ts
  const Utils = {
    formatUnit: (model, threat) => `[${model}] 위협도:${threat}`,
    calculateRisk: (units) => units.reduce((s, u) => s + u.threat, 0),
  };

  // types.ts
  const Types = {
    createUnit: (model, threat) => ({ model, threat, active: true }),
    createMission: (name, priority) => ({ name, priority, timestamp: Date.now() }),
  };

  // namespace 패턴
  const Cyberdyne = {
    Systems: { version: '2.0', codename: 'SKYNET' },
    Units: { count: 1000, active: 847 },
    format: (unit) => `${Cyberdyne.Systems.codename} v${Cyberdyne.Systems.version}: ${unit.model}`,
  };

  const units = [Types.createUnit('T-800', 8), Types.createUnit('T-1000', 10)];
  const results = [
    ...units.map(u => Utils.formatUnit(u.model, u.threat)),
    `총 위협도: ${Utils.calculateRisk(units)}`,
    Cyberdyne.format(units[0]),
  ];

  results.forEach(r => {
    const el = document.createElement('div');
    el.style.color = '#888'; el.style.fontSize = '11px'; el.style.marginBottom = '4px';
    el.textContent = r;
    document.currentScript.parentElement.appendChild(el);
  });

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 TS '모듈 & 네임스페이스' 코드에서
타입 에러·any 남용·타입 안전성 누락을 찾아
엄격한 타입으로 리팩토링해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'모듈 & 네임스페이스'를 실무에서 사용하는
패턴 3가지를 비교표로 보여주고
각각의 적합한 케이스를 알려줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 TS '모듈 & 네임스페이스' 관련 코드 전체의 타입 구조를
분석하고 제네릭·유틸리티 타입으로
개선할 포인트를 정리해줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

TypeScript '모듈 & 네임스페이스'를 꼭 써야 하는지
개발 속도 vs 안전성 관점에서
솔직하게 평가해줘.

⭐ 이것만 기억하세요
모듈 & 네임스페이스 해부 이 3가지만 확실히 잡으세요
1.모든 타입과 함수를 한 파일에 넣으면 이름 충돌이 발생하고, 파일이 커질수록 관리가 불가능합니다
2.ES 모듈의 import/export가 표준이며, namespace는 레거시 코드에서 전역 스코프를 분리할 때 사용합니다
3.다음 챕터에서 컴파일러 동작을 결정하는 tsconfig.json을 배웁니다


공유하기
진행도 18 / 34