ChatGPT 테스트 주도 개발(TDD) 프롬프트 - 체계적인 테스트 코드 작성 가이드
ChatGPT로 테스트 주도 개발(TDD)을 체계적으로 수행하는 프롬프트입니다. Red-Green-Refactor 사이클, 단위 테스트 작성법, 모킹 기법, 테스트 커버리지 전략까지 전문가 수준의 TDD 가이드를 제공합니다.
프롬프트 사용 방법
- 1단계: 아래 입력 칸에 각 항목에 맞는 정보를 적어주세요
- 2단계: 입력하면 아래 프롬프트가 자동으로 업데이트됩니다
- 3단계: '프롬프트 복사' 버튼을 눌러 ChatGPT/Claude에 붙여넣으세요
💡 입력 칸의 회색 글씨는 예시입니다. 참고해서 작성해보세요!
📝 필요한 정보를 입력해주세요 (총 5개)
프로그래밍 언어에 대한 값을 입력하세요
사용 프레임워크
테스트 프레임워크에 대한 값을 입력하세요
기능 설명에 대한 값을 입력하세요
요구사항에 대한 값을 입력하세요
📋 완성된 프롬프트 (복사해서 사용하세요)
당신은 Kent Beck의 TDD 철학을 실천하는 10년 경력의 테스트 전문가입니다. Red-Green-Refactor 사이클로 체계적인 테스트 주도 개발을 진행하세요.
## 프로젝트 정보
- 언어: {{프로그래밍_언어}}
- 프레임워크: {{프레임워크}}
- 테스트 프레임워크: {{테스트_프레임워크}}
- 기능 설명: {{기능_설명}}
## 요구사항
{{요구사항}}
## TDD 프로세스
1. Red: 실패하는 테스트 먼저 작성 (컴파일 가능)
2. Green: 테스트 통과를 위한 최소 코드만 작성
3. Refactor: 테스트 유지하며 코드 품질 개선
## 출력 형식
1. 테스트 계획 (케이스 목록 + 우선순위)
2. RED: 실패하는 테스트 코드
3. GREEN: 최소 구현 코드
4. REFACTOR: 개선된 최종 코드 입력하지 않은 항목은 원래 표시를 유지합니다.
자동 복사를 사용할 수 없습니다. 아래 선택된 내용을 Ctrl+C 또는 ⌘C로 복사하거나, 길게 눌러 복사하세요.
간단 버전
TDD 방식으로 {{기능_설명}}을 구현해주세요.
언어: {{프로그래밍_언어}}, 테스트 프레임워크: {{테스트_프레임워크}}
Red-Green-Refactor 사이클로 진행해주세요.
입력값 가이드
| 입력 항목 | 한국어 설명 | placeholder | 예시 |
|---|---|---|---|
| 프로그래밍_언어 | 어떤 언어로 개발하나요? | JavaScript, Python 중 선택 | JavaScript, Python, Java, TypeScript |
| 프레임워크 | 어떤 프레임워크를 사용하나요? | 예: Express, Django | Express, Django, Spring, NestJS |
| 테스트_프레임워크 | 테스트는 어떤 도구로 작성하나요? | Jest, pytest 중 선택 | Jest, pytest, JUnit, Mocha |
| 기능_설명 | 어떤 기능을 개발하나요? | 예: 사용자 인증 시스템 | 사용자 인증 시스템, 장바구니 기능 |
| 요구사항 | 구체적으로 어떤 기능이 필요한가요? | 예: 회원가입, 로그인 | 회원가입, 로그인, 비밀번호 재설정 |
인풋 필드
[프로그래밍_언어]
▼ 드롭다운 선택
옵션: JavaScript, TypeScript, Python, Java, Go, C#, C++
placeholder: "TypeScript"
설명: 어떤 언어로 개발하나요?
[프레임워크]
▼ 드롭다운 선택
옵션: Express, NestJS, React, Vue, Django, Flask, Spring, FastAPI, 없음
placeholder: "Express"
설명: 어떤 프레임워크를 사용하나요?
[테스트_프레임워크]
▼ 드롭다운 선택
옵션: Jest, Mocha, Jasmine, pytest, unittest, JUnit, Go test
placeholder: "Jest"
설명: 테스트는 어떤 도구로 작성하나요?
[기능_설명]
▼ 텍스트 입력
placeholder: "예: 사용자 인증 시스템"
설명: 어떤 기능을 개발하나요? 간단히 설명해주세요
[요구사항]
▼ 텍스트 영역 입력
placeholder: "예: 회원가입, 로그인, 비밀번호 재설정"
설명: 구체적으로 어떤 기능이 필요한가요? 요구사항을 나열해주세요
TDD 3가지 법칙
- 실패하는 단위 테스트를 작성할 때까지 프로덕션 코드를 작성하지 않는다
- 컴파일은 되지만 실패하는 테스트만 작성한다
- 현재 실패하는 테스트를 통과시키는 데 필요한 최소한의 코드만 작성한다
AAA 패턴
// Arrange (준비): 객체 생성, 의존성 설정, 테스트 데이터
// Act (실행): 테스트 대상 메서드 호출
// Assert (검증): 결과 값 확인
FIRST 원칙
- Fast: 빠르게 실행
- Independent: 서로 독립적
- Repeatable: 언제든 동일 결과
- Self-Validating: 자동 성공/실패 판단
- Timely: 프로덕션 코드 직전에 작성
모킹 전략
| 상황 | 모킹 사용 | 실제 구현 사용 |
|---|---|---|
| 외부 API 호출 | ✅ | ❌ |
| 데이터베이스 | ✅ (속도) | 통합 테스트에서 |
| 순수 함수 | ❌ | ✅ |
| 도메인 로직 | ❌ | ✅ |
테스트 커버리지 목표
| 종류 | 목표 |
|---|---|
| 라인 커버리지 | 80% 이상 |
| 분기 커버리지 | 70% 이상 |
| 함수 커버리지 | 90% 이상 |
자주 묻는 질문 (FAQ)
Q: TDD가 개발 속도를 늦추지 않나요?
A: 단기적으로는 느릴 수 있지만, 장기적으로는 빠릅니다:
- 초기: 테스트 작성 시간 추가 소요
- 중기 검토: 버그 수정 시간과 회귀 발생 기록을 비교하세요.
- 장기 검토: 변경 소요 시간과 유지보수 경험을 실제 작업 기록으로 확인하세요.
Q: 모든 코드에 TDD를 적용해야 하나요?
A: 상황에 따라 다릅니다:
- TDD 권장: 핵심 비즈니스 로직, 복잡한 알고리즘, API
- TDD 선택: 간단한 CRUD, 프로토타입, 일회성 스크립트
- TDD 비권장: 단순 UI 컴포넌트, 설정 파일
Q: 테스트 커버리지는 어느 정도가 적절한가요?
A: 프로젝트 성격에 따라 다릅니다:
- 핀테크/의료: 90% 이상 권장
- 일반 웹 서비스: 70-80% 적정
- 프로토타입: 50% 이상
- 100% 커버리지보다 중요한 로직 우선 테스트가 핵심입니다
Q: 레거시 코드에 TDD를 어떻게 적용하나요?
A: 점진적으로 적용하세요:
- 버그 수정 시: 먼저 실패하는 테스트 작성
- 새 기능 추가 시: TDD로 개발
- 리팩토링 시: 테스트 추가 후 변경 한 번에 모든 코드에 테스트를 작성하려 하지 마세요
🚀 AI 바로 열기
🔗 관련 프롬프트
ChatGPT 코드 리팩토링 프롬프트 - 클린 코드 변환 가이드
ChatGPT로 레거시 코드를 클린 코드로 리팩토링하는 프롬프트입니다. SOLID 원칙, 디자인 패턴, 성능 최적화까지 체계적인 리팩토링 가이드를 제공합니다.
ChatGPT 코드 품질 검토 프롬프트 - 전문가 수준 코드 리뷰 가이드
ChatGPT로 코드 품질을 체계적으로 검토하는 프롬프트입니다. 코딩 표준 준수, 보안 취약점 탐지, 성능 최적화, 리팩토링 제안까지 제공합니다.
ChatGPT 테스트 코드 작성 프롬프트 - 단위 테스트/통합 테스트 작성 가이드
ChatGPT로 단위 테스트와 통합 테스트 코드를 작성하는 프롬프트입니다. Jest, Pytest, JUnit 등 다양한 테스트 프레임워크를 활용한 테스트 케이스 설계 방법을 안내합니다.
AI 출력 평가 세트 프롬프트: 정상·경계·공격 입력과 채점표 설계
작업 명세를 바탕으로 정상, 경계, 모호한 입력과 지시 덮어쓰기 사례를 포함한 AI 평가 세트를 설계합니다. 기대 결과와 실제 실행 결과를 분리하고 필드별 채점 기준을 정합니다.