AI 코딩 프롬프트 작성법을 모르면, 같은 도구를 써도 결과가 천지차이입니다. Cursor나 Claude Code 같은 AI 코딩 도구에서 원하는 코드를 빠르게 얻는 10가지 프롬프트 작성법을 비전공자 눈높이로 정리했습니다. 실수 패턴과 실전 예시까지 함께 담았으니 바로 적용해 보세요.
• AI로 코딩을 시작했는데 원하는 결과가 안 나와서 답답한 분
• “로그인 만들어줘”라고 요청했다가 엉뚱한 코드를 받은 경험이 있는 분
• 프롬프트 엔지니어링이라는 말은 들었지만 어디서부터 시작할지 모르는 분
📖 목차
🤔 AI 코딩에서 프롬프트가 중요한 이유
AI 코딩 도구를 처음 써보면 같은 도구인데도 어떤 사람은 5분 만에 원하는 결과를 얻고, 어떤 사람은 30분 동안 같은 말을 반복하다 포기합니다. 둘의 차이는 도구 성능이 아니라 프롬프트, 즉 AI에게 무엇을 어떻게 요청하느냐에 있습니다.
AI는 마음을 읽지 못하기 때문에 모호한 요청을 받으면 가장 일반적인 답을 만들어 냅니다. “이거 좀 만들어줘” 같은 요청은 매번 다른 결과로 돌아옵니다. 반대로 목표, 스택, 제약 조건을 한두 줄만 더 적어 주면 AI가 거의 모든 작업을 정확히 대신해 줍니다. 코드를 한 줄도 못 짜도 괜찮습니다. 대신 “무엇을 만들고 싶은지”를 명확히 전달하는 연습이 바이브코딩의 핵심입니다.
AI에게 원하는 결과를 얻기 위해 입력 텍스트(프롬프트)를 체계적으로 설계하는 기술입니다. 거창한 것이 아니라 “요청을 더 잘 적는 방법”이라고 이해하면 됩니다.
📋 AI 코딩 프롬프트 작성 10가지 원칙 한눈에 보기
| 번호 | 원칙 | 한 줄 요약 |
|---|---|---|
| 1 | 목표를 한 문장으로 | “무엇을 왜 만드는지”부터 적기 |
| 2 | 기술 스택 명시 | Next.js, React 등 사용할 도구 적기 |
| 3 | 입력과 출력 정의 | 어떤 데이터를 받고 어떤 결과를 내는지 |
| 4 | 제약 조건 적기 | 외부 라이브러리 금지, 한국어 지원 등 |
| 5 | 단계로 쪼개기 | 한 번에 하나의 작업만 요청 |
| 6 | 컨텍스트 제공 | 기존 코드/파일 구조를 함께 첨부 |
| 7 | 예시 보여주기 | “이런 형태를 원해요” 샘플 첨부 |
| 8 | 에러는 그대로 붙이기 | 에러 메시지 전체 복사 |
| 9 | 역할 부여 | “초보에게 설명하는 선배 개발자처럼” |
| 10 | 검증 방법 함께 요청 | 테스트나 확인 방법까지 같이 받기 |
🎯 1. 목표를 한 문장으로 정리하세요
좋은 프롬프트는 첫 문장에서 “무엇을 왜 만드는지”가 드러납니다. 모호한 요청을 받으면 AI는 가장 일반적인 답을 추측해서 만들어 내기 때문에 결과가 매번 흔들립니다. 요청을 보내기 전에 “누가 / 무엇을 / 왜” 형태로 한 문장을 정리해 보세요.
❌ 나쁜 예 vs ✅ 좋은 예
❌ 나쁜 예: 로그인 만들어줘
✅ 좋은 예: Next.js 15 앱에 이메일/비밀번호로 로그인하는 페이지를 만들고 싶어요.
로그인 성공 시 /dashboard로 이동하고, 실패하면 에러 메시지를 보여줍니다.
첫 응답이 의도와 90% 이상 맞아떨어지면 목표 문장이 잘 잡힌 것입니다. 결과가 엉뚱하다면 목표 문장을 다시 점검하세요.
🛠️ 2. 사용할 기술 스택을 분명히 적으세요
같은 “버튼 만들기”라도 React, Vue, 순수 HTML, Flutter에 따라 코드가 완전히 다릅니다. 기술 스택을 적지 않으면 AI가 가장 흔한 형식을 추측해서 답을 주는데, 자기 프로젝트에 붙여 넣으면 작동하지 않을 가능성이 큽니다.
프롬프트 첫 줄에 Next.js 15 + TypeScript + Tailwind CSS처럼 사용 중인 환경을 적어 두세요. 프로젝트마다 같은 표현을 반복하기 귀찮다면 Cursor의 Rules 파일이나 Claude Code의 CLAUDE.md에 한 번만 적어 두면 매번 자동으로 반영됩니다.
Cursor는 프로젝트 루트에
.cursorrules 파일을, Claude Code는 CLAUDE.md 파일을 인식합니다. 여기에 기술 스택, 코딩 컨벤션, 금지 사항 등을 적어 두면 매번 프롬프트에 반복할 필요가 없습니다.
📥 3. 입력과 출력을 함께 알려 주세요
함수나 화면은 결국 “무엇을 받아서 무엇을 보여주는가”가 핵심입니다. 입력 형태와 결과 형태를 같이 적으면 AI가 추측 없이 코드를 만들 수 있습니다. 비전공자라도 “사용자가 무엇을 누르고, 화면에 무엇이 떠야 하는가”를 일상어로 적으면 충분합니다.
# 입력/출력 명시 예시
"사용자가 별점 1~5를 클릭하면 평균 별점이 실시간으로 화면에 표시되는 컴포넌트를 만들어 주세요.
0이나 6 같은 범위 밖 값은 무시합니다."
입력값의 범위, 잘못된 입력 처리 같은 가장자리 상황도 1~2줄 덧붙이면 훨씬 안전한 결과를 받을 수 있습니다.
🚧 4. 제약 조건을 미리 알려 주세요
요청에 적지 않은 조건은 거의 무시된다고 봐야 합니다. AI가 최신 라이브러리를 마음대로 추가해 버리거나, 한국어 폰트가 없는 디자인을 만드는 경우가 흔합니다. 특히 금지 조건은 명시적으로 적어 줘야 반영됩니다.
자주 사용하는 제약 조건 예시입니다.
- 외부 패키지는 추가하지 말고 기존 의존성 안에서 해결해 주세요.
- 한국어 텍스트와 모바일 화면을 기본으로 가정해 주세요.
- 데이터베이스는 사용하지 않고 메모리에서만 처리해 주세요.
- 함수형 컴포넌트만 사용하고 class 컴포넌트는 쓰지 마세요.
이런 한 줄 한 줄이 결과 코드의 방향을 크게 바꿉니다. 막힐 것 같은 부분일수록 미리 못 박아 두는 편이 안전합니다.
🪜 5. 한 번에 하나의 작업만 요청하세요
비전공자가 가장 많이 하는 실수가 “회원가입, 로그인, 마이페이지, 결제까지 다 만들어 줘”입니다. AI가 받아들일 수는 있지만 결과 코드가 길어질수록 한 곳이 어긋나면 다른 곳도 어긋나는 연쇄 오류가 생깁니다.
큰 작업을 의뢰할 때는 먼저 “이 일을 어떤 단계로 나누면 좋을지 먼저 알려 주세요”라고 묻고, 단계 목록을 받은 다음 각 단계를 따로 요청하세요. 한 단계가 잘 동작하는 것을 확인한 뒤 다음 단계로 넘어가면 디버깅 시간이 크게 줄어듭니다.
코드가 200줄을 넘어가면 AI도 앞뒤 맥락을 놓치기 쉽습니다. 기능 하나당 요청 한 번, 확인 한 번이 가장 효율적인 패턴입니다.
📂 6. 기존 코드와 파일 구조를 보여 주세요
AI는 보지 못한 코드는 알지 못합니다. “이전에 만든 함수를 재사용해 줘”라고 요청해도 그 함수가 어떻게 생겼는지 모르면 새로 만들어 버립니다. Cursor와 Claude Code는 파일을 직접 첨부하거나 경로를 지정할 수 있으니 적극적으로 활용하세요.
가장 효과적인 방법은 관련 파일 1~3개를 명시적으로 같이 첨부하는 것입니다. 폴더 구조가 복잡하다면 tree 명령으로 만든 디렉터리 트리만 함께 보여 줘도 AI가 전체 구조를 파악하는 데 큰 도움이 됩니다.
# 프로젝트 구조를 함께 보여주는 예시
"현재 프로젝트 구조는 이렇습니다:
src/
app/
page.tsx
layout.tsx
components/
Header.tsx
Footer.tsx
Header.tsx에 모바일 햄버거 메뉴를 추가하고 싶어요."
🖼️ 7. 결과 예시를 보여 주세요
말로 설명하기 어려운 디자인이나 데이터 형태는 예시를 보여 주는 것이 가장 빠릅니다. JSON 출력 형태, 화면 스크린샷, 닮고 싶은 사이트 URL, 표 모양 등 어떤 형태든 좋습니다. 예시 1개는 설명 10줄보다 강력합니다.
// 원하는 출력 형태를 JSON으로 보여주는 예시
{
"id": 1,
"title": "오늘의 할 일",
"done": false,
"createdAt": "2026-04-12T09:00:00+09:00"
}
이렇게 적어 두면 필드 이름, 타입, 시간 형식까지 한 번에 전달됩니다. 디자인 요청은 참고 사이트 URL을 첨부하거나 “Notion 카드처럼 둥근 모서리에 옅은 그림자”처럼 친숙한 비유를 쓰면 좋습니다.
🐛 8. 에러 메시지는 한 글자도 빼지 말고 그대로 붙이세요
코드를 실행하다가 에러가 나면 “안 돼요”라고만 적지 말고, 터미널이나 브라우저 콘솔에 뜬 에러 메시지를 그대로 복사해서 같이 보내세요. 메시지에는 어디서 어떤 종류의 문제가 발생했는지 단서가 들어 있어서 AI가 훨씬 정확한 원인을 짚어 줍니다.
에러를 보낼 때는 다음 세 가지를 함께 적으면 좋습니다.
- 무엇을 하려고 했는지 — 예:
pnpm dev실행 - 어떤 결과가 나왔는지 — 에러 메시지 전체 복사
- 직전에 바꾼 코드 — 있다면 해당 파일 함께 첨부
이 패턴이 익숙해지면 디버깅 시간이 절반 이하로 줄어듭니다. 에러를 두려워하지 말고 AI에게 넘기는 재료라고 생각하세요.
🎓 9. AI에게 역할을 부여해 보세요
같은 질문이라도 “초보자에게 친절히 설명하는 선배 개발자처럼”이라고 덧붙이면 답변의 톤과 깊이가 달라집니다. 기술 용어를 쉽게 풀어 주거나, 왜 그런 코드가 나왔는지 이유를 함께 설명해 주는 빈도가 높아집니다.
역할 부여는 거창할 필요가 없습니다. 다음 같은 짧은 한 문장이면 충분합니다.
- “코드를 처음 보는 비전공자에게 설명하듯 답해 주세요.”
- “보안에 신경 쓰는 시니어 개발자처럼 검토해 주세요.”
- “Next.js 공식 문서를 잘 아는 강사처럼 알려 주세요.”
코드를 받기만 하는 단계를 넘어 조금씩 이해하고 싶다면 “왜 이렇게 작성했는지 한 줄씩 주석으로 설명해 주세요”를 함께 적는 것도 추천합니다.
✅ 10. 검증 방법까지 같이 받으세요
코드를 받고도 “이게 잘 작동하는 건지” 확신이 없는 경우가 가장 답답합니다. 코드 자체뿐 아니라 “제대로 동작하는지 확인하는 방법”까지 함께 요청하는 습관을 들여 보세요.
최소한 다음 중 하나는 같이 받아 두세요.
- 어떤 명령어를 실행하면 결과를 볼 수 있는지
- 어떤 화면/숫자가 보이면 정상인지
- 예외 상황(빈 입력, 네트워크 오류 등)에서 어떻게 동작해야 하는지
테스트 코드를 같이 만들어 달라고 요청하면 더 안전합니다. 직접 실행해 보고 결과가 나오면 한 단계가 끝난 것이고, 결과가 다르면 그 차이 자체가 다음 프롬프트의 재료가 됩니다.
😅 자주 하는 실수 패턴과 대안
| 실수 | 왜 문제인가 | 대안 |
|---|---|---|
| “잘 안 돼요”라고만 보내기 | AI가 원인을 추측해야 함 | 에러 메시지 + 직전 동작 함께 첨부 |
| 한 번에 5가지 기능 요청 | 코드가 길어지고 디버깅 어려움 | 단계별로 쪼개서 하나씩 요청 |
| 기술 스택 안 적기 | 잘못된 프레임워크 코드를 받음 | 첫 줄에 스택 명시 또는 Rules 사용 |
| 같은 요청 반복하기 | AI는 비슷한 답을 반복함 | 부족한 정보 1가지를 추가해서 재요청 |
| 코드를 그대로 붙여넣기만 함 | 기존 코드와 충돌 발생 | “내 파일은 이렇게 생겼어요” 컨텍스트 첨부 |
에러가 났을 때 “다시 해줘”만 반복하는 것입니다. AI는 추가 정보 없이 같은 접근을 반복할 가능성이 높습니다. 에러 메시지, 현재 파일 상태, 기대 결과 중 최소 하나를 추가해서 다시 보내세요.
🛟 막혔을 때 진단 순서
프롬프트를 다시 다듬어도 원하는 결과가 나오지 않는다면 다음 5가지를 순서대로 점검해 보세요.
- 목표 문장이 한 줄에 들어가는가? — 두 가지 이상이 섞여 있다면 분리하세요.
- 사용 중인 기술 스택과 버전이 적혀 있는가? — Next.js 14와 15는 코드 패턴이 다릅니다.
- 입력과 출력이 구체적으로 적혀 있는가? — “뭔가 보여주는” 수준은 모호합니다.
- 관련 파일이 컨텍스트로 첨부되어 있는가? — AI는 보지 못한 코드를 모릅니다.
- 검증 방법이 함께 요청되어 있는가? — 확인법이 없으면 성공 여부를 판단하기 어렵습니다.
대부분 막히는 이유는 5개 중 1~2개가 빠져 있기 때문입니다. 빠진 항목 한 가지만 더 보태서 다시 요청해 보세요. 그래도 같은 결과라면 단계를 더 잘게 쪼개는 것이 다음 수입니다.
🧪 도구별 컨텍스트 활용법 비교
| 도구 | 컨텍스트 첨부 방법 | 추천 사용 패턴 |
|---|---|---|
| Cursor | @파일명, @폴더, @docs |
인라인 편집 + 채팅 병행 |
| Claude Code | 파일 경로 직접 언급, CLAUDE.md |
큰 작업을 단계별 대화로 진행 |
| GitHub Copilot Chat | 열려 있는 파일이 자동 컨텍스트 | VS Code 안에서 짧은 질문 위주 |
도구마다 컨텍스트를 다루는 방식은 다르지만 “프롬프트를 잘 쓰는 원칙” 자체는 동일합니다. 어떤 도구를 쓰든 위 10가지를 떠올리며 요청을 다듬으면 결과 품질이 눈에 띄게 좋아집니다.
처음에는 간단한 컴포넌트(버튼, 카드, 폼)부터 시작하세요. 같은 기능을 프롬프트만 바꿔가며 요청하면 어떤 표현이 더 좋은 결과를 만드는지 감이 잡힙니다. 10번 정도 반복하면 자신만의 프롬프트 템플릿이 생깁니다.
프롬프트는 도구마다 반응이 조금씩 달라요. 도구별 차이는 AI 코딩 도구 비교 가이드에서 확인할 수 있어요.
⚠️ 면책 고지
여기까지 읽어 주셔서 감사합니다. 10가지 원칙을 한 번에 다 적용하기보다, 가장 자주 빠뜨리는 1~2가지부터 습관으로 만들어 보세요.
❓ FAQ
질문을 누르면 답변이 펼쳐집니다.
Q. 프롬프트를 영어로 써야 더 좋은 결과가 나오나요?
Q. 프롬프트가 너무 길면 AI가 무시하나요?
Q. Cursor와 Claude Code 중 어떤 도구가 프롬프트에 더 민감한가요?
Q. 코드를 전혀 모르는데 프롬프트만으로 앱을 만들 수 있나요?
Q. AI가 만든 코드에 버그가 있으면 어떻게 하나요?
Q. 프롬프트 템플릿을 만들어 두면 좋나요?
Q. 같은 프롬프트를 보내도 매번 결과가 다른 이유는?
Q. 프롬프트 작성법을 배우면 코딩 공부는 안 해도 되나요?
Q. AI에게 “잘 모르겠어요”라고 솔직히 말해도 되나요?
Q. 회사 코드를 AI에게 보내도 괜찮나요?
🔗 관련 글
- Claude Design 사용법+완전 정복 — 비전공자도 30분 만에 프로토타입
- Cursor vs Claude Code: 비전공자에게 더 나은 선택은?
- Cursor 설치 방법과 첫 프로젝트 만들기
- Claude Code 설치부터 첫 코딩까지 비전공자 가이드
- 바이브코딩 도구별 개발환경 요구사항 총정리 (2026)
- 바이브코딩 시작 전 개발환경 세팅 완벽 가이드
📚 참고 자료
IT 기획 10년차 / 비전공자를 위한 바이브코딩 블로그 운영 / vibe-start.com 제작
Building VibeStart — the fastest path for non-devs into AI coding. Launching on Product Hunt 2026-05-26.

