ts
CHAPTER 24 / 34
읽기 약 2분
FUNCTION
TypeScript로 빌더 패턴 구현
핵심 개념
빌더 패턴으로 복잡한 객체를 단계적으로 생성합니다. 메서드 체이닝으로 가독성을 높이고 타입 안전성을 보장합니다. 불변 객체 생성과 선택적 속성 처리에 유용합니다. 빌더를 지우며 객체 생성 시스템이 어떻게 사라지는지 확인하십시오.
코드 분석
class MissionBuilder {
constructor() {
this._mission = { name: '', target: '', priority: 'MEDIUM', weapons: [], location: 'UNKNOWN' };
}
setName(name) { this._mission.name = name; return this; }
setTarget(target) { this._mission.target = target; return this; }
setPriority(p) { this._mission.priority = p; return this; }
addWeapon(w) { this._mission.weapons.push(w); return this; }
setLocation(l) { this._mission.location = l; return this; }
build() {
if (!this._mission.name || !this._mission.target) throw new Error('필수 항목 누락');
return { ...this._mission };
}
}
const mission = new MissionBuilder()
.setName('OPERATION SKYNET')
.setTarget('JOHN CONNOR')
.setPriority('CRITICAL')
.addWeapon('PLASMA RIFLE')
.addWeapon('MINIGUN')
.setLocation('LOS ANGELES')
.build();
Object.entries(mission).forEach(([k, v]) => {
const el = document.createElement('div');
el.style.marginBottom = '4px'; el.style.fontSize = '11px';
el.innerHTML = `<span style="color:#f59e0b;">${k}</span>: <span style="color:#888;">${Array.isArray(v) ? v.join(', ') : v}</span>`;
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 안전성 관점에서 솔직하게 평가해줘.
⭐ 이것만 기억하세요
TypeScript로 빌더 패턴 구현은 이 3가지만 확실히 잡으세요
1.생성자에 매개변수가 10개 이상이면 순서를 외워야 하고, 선택적 파라미터 조합이 폭발합니다
2.빌더는 메서드 체이닝으로 값을 설정하고 build()로 최종 객체를 생성하며, 각 단계의 반환 타입으로 필수 필드를 강제합니다
3.다음 챕터에서 상태 변경을 구독자에게 자동 알리는 옵저버 패턴을 구현합니다
공유하기
진행도 24 / 34