ChatGPT로 코드 작성 시간 줄이는 프롬프트 10가지 (복붙 예제·검증 방법)

개발을 배우다 보면 “무엇을 만들어야 하는지는 알겠는데, 코드로 옮기는 데 시간이 너무 걸린다”는 벽에 부딪힙니다. ChatGPT 같은 대화형 AI는 그 간격을 줄여 주지만, 모호하게 시키면 모호한 코드가 나옵니다.
이 글에서는 제가 사이드 프로젝트(React + API 백엔드)에서 반복적으로 쓰는 프롬프트 10가지를 그대로 복사해 쓸 수 있게 정리했습니다. 각 항목마다 (1) 언제 쓰는지 (2) 프롬프트 전문 (3) 결과가 괜찮은지 확인하는 방법을 붙였습니다.
이 글에서 다루는 내용
- 프롬프트가 먹히지 않는 대표 실수
- 복붙용 프롬프트 10가지
- 결과를 검증하는 최소 체크리스트
- FAQ
준비물과 예상 소요 시간
- ChatGPT(무료 플랜으로도 가능, 긴 코드는 유료·최신 모델이 유리)
- 작업 중인 프로젝트 일부 코드 (민감 정보·API 키는 제거)
- 예상 시간: 프롬프트 1개 적용·검증 10~20분
프롬프트가 실패하는 대표 패턴
- 목표가 없음 — “로그인 코드 짜줘”만 쓰면 프레임워크·언어를 추측합니다.
- 컨텍스트 없음 — 기존 폴더 구조, 사용 중인 라이브러리를 안 알려 줍니다.
- 한 번에 전부 — 회원가입+결제+관리자까지 한 방에 요청하면 빈 껍데기 코드가 늘니다.
기본 템플릿 (모든 프롬프트 앞에 붙이면 품질이 안정됩니다):
언어/프레임워크: (예: TypeScript, React 18, FastAPI)제약: (예: 외부 UI 라이브러리 없이, REST만, 주석 한국어)출력: (예: 완성 코드 + 사용법 3줄 + 테스트 방법)금지: (예: 존재하지 않는 API 지어내지 말 것)복붙용 프롬프트 10가지
1) 시니어 관점 코드 리뷰
언제: PR 전, 또는 “동작은 하는데 불안할 때”
너는 10년 차 시니어 개발자다. 아래 코드를 성능·보안·가독성·에러 처리 기준으로 검토해라.- 개선점 최대 5개만, 우선순위 높은 순- 각 항목에 (문제) (이유) (수정 코드 스니펫)을 적어라- 추측이면 "추측"이라고 표시해라[코드 붙여넣기]검증: 제안 중 1개만 적용해 테스트가 통과하는지 확인. 한꺼번에 다 반영하지 말 것.
2) 초보자용 단계별 구현
언제: 처음 보는 패턴(폼, 인증, CRUD)을 배울 때
대상: React + TypeScript 초보목표: useState와 useEffect로 사용자 프로필 수정 폼요구:1) 단계별로 설명 (왜 이 훅을 쓰는지)2) 각 단계 끝에 동작 확인 방법3) 타입 정의 포함4) 한 파일 컴포넌트로 완성본도 마지막에 제공검증: 단계 1만 따라 해도 화면이 깨지지 않는지 확인 후 다음 단계로.
3) 함수·모듈 단위 생성
언제: “이 함수만 빨리 필요할 때”
다음 스펙의 순수 함수를 TypeScript로 작성해라.- 입력: ...- 출력: ...- 예외: 잘못된 입력이면 명확한 에러 메시지- 엣지 케이스 3개를 주석으로 명시- 외부 부수효과 없이 작성검증: 엣지 케이스 3개를 직접 호출해 보기.
4) 테스트 코드 초안
언제: 핵심 로직은 있는데 테스트가 없을 때
아래 함수에 대한 단위 테스트를 작성해라.프레임워크: (Jest / pytest / vitest 중 택1)포함: 정상 1, 실패 1, 경계값 1모킹이 필요하면 최소만 사용하고 이유를 주석으로.[함수 코드]검증: 테스트를 실제로 실행. 실패하면 실패 메시지를 AI에 붙여 “수정안” 요청.
5) 리팩토링 제안 (동작 유지)
언제: 긴 함수, 중복 코드
아래 코드의 동작을 바꾸지 말고 리팩토링안을 제시해라.우선순위: (1) 중복 제거 (2) 이름 명확화 (3) 함수 분리출력: before/after 핵심 부분만, 전체 재작성 금지[코드]검증: 기존 테스트 또는 수동 시나리오 2개가 동일하게 통과하는지.
6) 에러 메시지 해설 + 수정 방향
언제: 스택 트레이스를 이해할 수 없을 때
다음 에러를 초보자도 이해하게 설명해라.1) 한 줄 요약2) 흔한 원인 3가지 (가능성 높은 순)3) 각 원인별 확인 명령/코드4) 바로 시도할 수정 패치에러:[에러 전문 + 관련 코드]검증: 원인 후보를 위에서부터 하나씩만 적용. 동시 변경 금지.
7) 문서화 (JSDoc / docstring / README 절)
언제: 팀에 넘기거나 나중에 볼 코드
아래 코드에 대해:- 공개 함수마다 docstring/JSDoc- 파라미터·반환·예외- README용 "빠른 시작" 5줄과장 없이, 코드에 있는 사실만.[코드]8) 대안 비교 (가독성 vs 성능 등)
언제: 구현 방식이 두 가지 이상일 때
같은 요구사항을 구현하는 방법 A/B를 비교해라.기준: 가독성, 성능, 테스트 용이성, 유지보수각 방법 짧은 코드 예시 + 추천 상황 1줄요구사항: [작성]9) 성능 병목 가설
언제: 느리다는 느낌만 있을 때 (측정 전 가설)
아래 코드에서 성능 이슈가 날 수 있는 지점을 가설로 3개 제시해라.각 가설에: 근거, 확인 방법(로그/프로파일러), 성급한 최적화 금지 이유[코드]검증: 가설을 코드 수정 전에 측정으로 확인. AI 말만 믿고 최적화하지 말 것.
10) 보안 1차 점검
언제: 인증·입력값·비밀정보가 걸린 코드
보안 관점에서 1차 리뷰해라. OWASP 관점 키워드를 참고하되,이 코드에 실제로 보이는 문제만 적어라.항목: 입력 검증, 인증/인가, 비밀정보 노출, 인젝션, 로깅 민감정보각 이슈에 수정 예시.[코드] (키·토큰은 마스킹)검증: 비밀키가 프롬프트/응답/로그에 남았는지 재확인.
결과 검증 최소 체크리스트
- 프로젝트에 없는 패키지·API를 지어내지 않았는가
- 복사한 코드에 API 키·개인정보가 없는가
- 테스트 또는 수동 확인 1회 이상 했는가
- “전부 다시 작성”이 아니라 필요한 부분만 반영했는가
자주 하는 실수와 해결
| 실수 | 해결 |
|---|---|
| 긴 답변을 무비판 붙여넣기 | 파일 단위·함수 단위로 쪼개 적용 |
| 프로덕션 DB 스키마를 그대로 업로드 | 샘플 스키마로 치환 |
| 같은 프롬프트만 반복 | 실패 로그를 붙여 “이전 답의 문제”를 명시 |
FAQ
Q. 무료 모델로도 충분한가요? 간단한 함수·설명은 가능합니다. 대규모 리팩터·긴 컨텍스트는 유료·고성능 모델이 실패가 적습니다.
Q. 회사 코드를 올려도 되나요? 내부 규정·NDA를 확인하세요. 가능하면 민감 로직을 제거한 최소 재현 코드만 사용하세요.
Q. 프롬프트를 한국어로 해도 되나요? 네. 다만 코드 식별자·라이브러리 이름은 정확한 영어 표기를 유지하세요.
Q. Copilot과 무엇이 다른가요? ChatGPT는 설명·설계·리뷰 대화에 강하고, Copilot은 에디터 안 짧은 완성에 강합니다. (포스트 4 참고)
실습 체크 (발행 전 본인 확인)
- 글의 명령을 다른 폴더에서 한 번 더 실행해 보았는가
- 독자가 준비물 없이 막히지 않는가
- 관련 글과 역할이 겹치지 않는가

실습 체크리스트 (ChatGPT 코드 프롬프트)
- 언어·프레임워크·버전을 프롬프트에 적었는가
- 한 번에 한 기능만 요청했는가
- API 키·토큰·개인정보를 붙여넣지 않았는가
- 생성된 코드를 로컬에서 실행·테스트했는가
- 보안·예외 처리를 직접 확인했는가
이 글을 끝내면 할 수 있는 것
- 모호한 “코드 짜줘” 대신 상황·제약·검증 기준이 있는 프롬프트를 쓴다.
- 10가지 템플릿 중 오늘 필요한 2~3개를 골라 로컬에서 검증한다.
- 결과가 틀렸을 때 어느 입력이 부족했는지 스스로 짚는다.
ChatGPT(또는 동급 채팅형 모델)는 설계·설명·리뷰 대화에 강하고, 에디터 인라인 완성(Copilot류)과는 역할이 다릅니다. 이 글은 채팅 창 기준입니다.
프롬프트 품질을 올리는 4요소
- 역할: “시니어 백엔드”, “보안 리뷰어” 등
- 컨텍스트: 언어, 프레임워크, 관련 코드 일부
- 제약: 금지 라이브러리, 스타일, 성능 예산
- 출력 형식: 코드만 / 단계+코드 / 표
나쁜 출력 vs 좋은 출력 예시 (요약)
| 입력 문제 | 흔한 결과 | 교정 |
|---|---|---|
| 목표만 한 줄 | 추측 스택, 유령 API | 스택·파일 경로 명시 |
| 전체 앱 요청 | 빈 껍데기 수천 줄 | 함수 단위로 쪼갬 |
| 검증 기준 없음 | “완료”처럼 보이는 미검증 코드 | 테스트·수동 시나리오 요구 |
보안·회사 코드 주의
- 프로덕션 시크릿, 고객 데이터, 내부 URL을 붙이지 마세요.
- 라이선스·정책상 외부 AI 사용이 금지된 레포는 로컬 모델 또는 금지 준수.
- 생성된 의존성 설치 명령은 패키지명 오타·악성 유사명을 한 번 더 검색하세요.
트러블슈팅
| 증상 | 원인 | 해결 |
|---|---|---|
| 없는 메서드 호출 | 학습 데이터 환각 | 공식 문서 URL을 프롬프트에 포함 |
| 스타일 불일치 | 프로젝트 컨벤션 미제공 | eslint/prettier 규칙 요약 첨부 |
| 과도한 리팩터 | 범위 과다 | “동작 유지, public API 변경 금지” |
| 토큰 한도 | 코드 과다 첨부 | 관련 파일만, 요약 후 질문 |
| 한국어 설명만 길고 코드 부실 | 출력 형식 미지정 | “코드 펜스만, 설명 5줄 이내” |
FAQ 보강
Q. 무료 모델로도 충분한가요? 짧은 함수·설명은 가능합니다. 긴 멀티파일 설계는 최신·유료 모델이 유리하지만, 검증 습관이 모델보다 중요합니다.
Q. 프롬프트를 팀 위키에 공유해도 되나요? 가능합니다. 다만 사내 전용 경로·고객명이 들어간 예시는 마스킹하세요.
Q. 생성 코드를 그대로 커밋해도 되나요? 안 됩니다. 최소 실행·테스트·리뷰 후에 커밋하세요. AI 사용 여부는 팀 규범에 따라 PR에 고지합니다.
정리
생산성은 “더 멋진 문장”이 아니라 작은 단위로 시키고, 바로 검증하는 습관에서 납니다. 오늘 위 목록 중 리뷰(1)와 에러 해설(6) 두 가지만 실제 버그에 적용해 보세요.
참고: OpenAI Prompt engineering · Anthropic Prompt engineering
글 공유
이 글이 도움이 되셨다면 다른 사람들과 공유해 주세요!



