AI로 코드를 효과적으로 생성하는 프롬프트 패턴을 알아봅니다.
기본 구조
[언어/프레임워크]로 [기능]을 하는 코드를 작성해줘.
요구사항:
1. [요구사항 1]
2. [요구사항 2]
3. [요구사항 3]
제약사항:
- [제약 1]
- [제약 2]
함수 생성
기본 함수
Python으로 다음 함수를 작성해줘:
함수명: calculate_discount
기능: 가격과 할인율을 받아 할인된 가격 반환
매개변수: price (float), discount_rate (float, 0-100)
반환값: 할인된 가격 (float)
예외처리: 음수 가격, 100 초과 할인율
예시:
calculate_discount(100, 20) → 80.0
상세 함수
TypeScript로 함수를 작성해줘:
함수명: searchUsers
목적: 사용자 검색 (이름 또는 이메일로)
매개변수:
- query: string (검색어)
- options?: { limit?: number, offset?: number }
반환값: Promise<User[]>
요구사항:
- 대소문자 구분 없이 검색
- 부분 일치 지원
- 페이지네이션 지원
- 타입 정의 포함
클래스 생성
JavaScript로 클래스를 작성해줘:
클래스명: ShoppingCart
속성:
- items: 장바구니 아이템 배열
- discount: 할인 코드
메서드:
- addItem(product, quantity)
- removeItem(productId)
- updateQuantity(productId, quantity)
- getTotal()
- applyDiscount(code)
- clear()
요구사항:
- 수량은 1 이상이어야 함
- 총액 계산 시 할인 적용
- 에러 처리 포함
API/엔드포인트
Express.js로 REST API 엔드포인트를 작성해줘:
리소스: /api/posts
기능:
- GET /posts - 목록 조회 (페이지네이션)
- GET /posts/:id - 단일 조회
- POST /posts - 생성 (인증 필요)
- PUT /posts/:id - 수정 (작성자만)
- DELETE /posts/:id - 삭제 (작성자만)
요구사항:
- 입력값 유효성 검사
- 에러 핸들링
- 응답 형식 통일
- 간단한 미들웨어
데이터 처리
Python으로 데이터 처리 스크립트를 작성해줘:
입력: CSV 파일 (날짜, 제품, 수량, 가격)
처리:
1. 날짜별 매출 합계
2. 제품별 판매량 순위
3. 월간 트렌드 분석
출력: 처리된 데이터 + 간단한 요약 통계
라이브러리: pandas 사용
React 컴포넌트
React + TypeScript로 컴포넌트를 작성해줘:
컴포넌트: SearchInput
기능: 디바운싱이 적용된 검색 입력창
Props:
- onSearch: (query: string) => void
- placeholder?: string
- debounceMs?: number (기본값 300)
요구사항:
- 입력 중 로딩 표시
- 취소 버튼 (입력값 있을 때만)
- 접근성 고려 (ARIA)
- Tailwind CSS로 스타일링
유틸리티 함수
다음 유틸리티 함수들을 TypeScript로 작성해줘:
1. formatDate(date, format) - 날짜 포맷팅
2. debounce(fn, ms) - 디바운스
3. throttle(fn, ms) - 쓰로틀
4. deepClone(obj) - 깊은 복사
5. isEmpty(value) - 빈 값 체크
각 함수에 대해:
- 타입 정의
- JSDoc 주석
- 간단한 사용 예시
프롬프트 향상 팁
명확한 입출력
입력: [정확한 입력 형태]
출력: [예상 출력]
예시:
입력 → 출력
엣지 케이스 명시
처리해야 할 케이스:
- 빈 입력
- null/undefined
- 잘못된 타입
- 경계값
코드 스타일 지정
스타일:
- ESLint 규칙 준수
- 함수형 스타일 선호
- 명명 규칙: camelCase
- 주석: 필요한 경우만
팁
| 팁 | 설명 |
|---|---|
| 구체적으로 | 함수명, 매개변수 명시 |
| 예시 제공 | 입출력 예시 포함 |
| 제약 명시 | 사용 가능한 라이브러리 |
| 스타일 지정 | 코딩 컨벤션 명시 |
| 점진적 요청 | 큰 기능은 나눠서 |
구체적인 요청이 좋은 코드를 만듭니다.