ts
CHAPTER 23 / 34
읽기 약 2분
FUNCTION
TypeScript로 유효성 검사 시스템 구현
핵심 개념
타입 가드와 사용자 정의 유효성 검사 함수로 런타임 데이터를 검증합니다. is 키워드로 타입 서술어(type predicate)를 정의합니다. 폼 데이터, API 응답 등 외부 데이터를 안전하게 처리합니다. 유효성 검사를 지우며 데이터 안전성이 어떻게 사라지는지 확인하십시오.
코드 분석
<div style='font-family:monospace; padding:16px; background:#0d1117; color:#e8e8e8;'>
<div style='color:#10b981; margin-bottom:12px;'>VALIDATION SYSTEM</div>
<div style='margin-bottom:12px;'>
<input id='v-model' placeholder='모델명 (T-XXX)' style='background:#1a1a1a; color:#e8e8e8; border:1px solid #333; padding:6px; font-family:monospace; font-size:11px; width:100%; box-sizing:border-box; margin-bottom:4px;'/>
<input id='v-threat' placeholder='위협도 (1-10)' type='number' style='background:#1a1a1a; color:#e8e8e8; border:1px solid #333; padding:6px; font-family:monospace; font-size:11px; width:100%; box-sizing:border-box; margin-bottom:8px;'/>
<button onclick='validate()' style='background:#10b981; color:#080808; border:none; padding:6px 16px; cursor:pointer; font-family:monospace; font-size:10px;'>VALIDATE</button>
</div>
<div id='v-result' style='font-size:11px;'></div>
<script>
function isValidModel(val) { return typeof val === 'string' && /^T-\d+$/.test(val); }
function isValidThreat(val) { const n = Number(val); return !isNaN(n) && n >= 1 && n <= 10; }
function validate() {
const model = document.getElementById('v-model').value;
const threat = document.getElementById('v-threat').value;
const out = document.getElementById('v-result');
out.innerHTML = '';
const checks = [
{ label: '모델명 형식 (T-XXX)', ok: isValidModel(model), value: model },
{ label: '위협도 범위 (1-10)', ok: isValidThreat(threat), value: threat },
{ label: '전체 유효성', ok: isValidModel(model) && isValidThreat(threat), value: '검증 완료' },
];
checks.forEach(c => {
const el = document.createElement('div');
el.style.color = c.ok ? '#22c55e' : '#10b981';
el.style.marginBottom = '4px';
el.textContent = `${c.ok ? '✓' : '✗'} ${c.label}: ${c.value}`;
out.appendChild(el);
});
}
</script>
</div>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 안전성 관점에서 솔직하게 평가해줘.
⭐ 이것만 기억하세요
TypeScript로 유효성 검사 시스템 구현은 이 3가지만 확실히 잡으세요
1.검증 규칙을 if문으로 나열하면 규칙 추가마다 함수가 비대해지고, 규칙 조합이 어렵습니다
2.각 규칙을 (value: T) => boolean 함수로 분리하고, 제네릭 체인으로 조합하면 재사용 가능한 검증 파이프라인이 됩니다
3.다음 챕터에서 복잡한 객체를 단계적으로 생성하는 빌더 패턴을 구현합니다
공유하기
진행도 23 / 34