기획: 아이디어를 설계로
“만들기 전에 정해야 하는 것들”
02이 차시를 마치면
- 1.만들고 싶은 서비스의 요구사항을 사용자 스토리 형태로 정리할 수 있다.
- 2.Claude Code와 대화하며 PRD를 처음부터 끝까지 작성할 수 있다.
- 3.완성된 화면 목록과 화면 간 이동을 흐름도로 정리할 수 있다.
- 4.지금 만들 것과 나중에 만들 것을 가르는 MVP 기준을 세울 수 있다.
03왜 필요한가
아이디어가 떠오르자마자 바로 AI에게 '이런 서비스 만들어줘'라고 시켰다. 처음엔 순조로웠지만 대화가 길어질수록 신청 기능에 재고 관리가 붙고, 재고 관리에 승인 절차가 붙고, 승인 절차에 통계 대시보드까지 붙었다. 정작 첫 배포는 하지 못한 채, 지금 무엇을 만들고 있었는지조차 스스로 헷갈리는 상태가 됐다.
- 계획 없이 코드부터 짜면 기능이 끝없이 늘어나 완성 시점을 정할 수 없다.
- 대화창에서만 논의를 이어가면 이전에 정한 내용이 스크롤 위로 사라져 나중에 다시 찾기 어렵다.
- 처음부터 모든 조건을 혼자 적으려 하면 놓치는 부분이 생기고, 그 부분은 한참 만들다가 뒤늦게 발견된다.
- 화면 흐름을 정하지 않고 화면부터 만들면 화면 사이 이동 경로가 꼬이거나 빠진 화면이 생긴다.
04개념 설명
요구사항을 사용자 스토리로 적는다
요구사항을 '재고 관리 기능이 필요함' 같은 명사형으로 적으면 왜 필요한지가 빠져 있어 우선순위를 판단할 수 없다. 사용자 스토리는 '누가, 무엇을 하고 싶고, 왜 그런지'를 한 문장으로 묶어 적는 방식이다. 예를 들어 '비품 담당자는, 신청이 들어오면 한눈에 목록으로 보고 싶다. 왜냐하면 매번 메일함을 뒤지기 번거롭기 때문이다'처럼 적는다.
이렇게 적으면 이 기능이 지금 꼭 필요한지, 누구를 위한 것인지가 문장 안에 이미 드러난다. 나중에 MVP 범위를 자를 때도 '이 스토리가 없으면 누가 불편한가'로 바로 판단할 수 있다.
| 요소 | 예시 |
|---|---|
| 누가 | 비품 담당자는 |
| 무엇을 | 신청 목록을 한눈에 보고 싶다 |
| 왜 | 매번 메일함을 뒤지기 번거로워서 |
- '누가·무엇을·왜'를 한 문장으로 묶어 적는다
- 명사형 기능 목록보다 우선순위 판단이 쉬워진다
Claude Code로 PRD를 쓰는 이유
일반 채팅 대신 Claude Code로 PRD를 쓰는 이유는 크게 네 가지다. 대화창에 흩어지지 않고 PRD.md 파일로 프로젝트 폴더에 남는다. 코드를 쓰기 전에 방향을 문서로 먼저 맞춰, 다 만들고 나서 '이게 아닌데'를 겪지 않는다. 이미 있는 코드·문서를 참고해 현실적인 질문을 던진다. 그리고 열린 질문 대신 선택지를 만들어 되묻게 하면 결정 속도가 훨씬 빨라진다.
지금 여러분이 보고 있는 이 교육 웹사이트 자체가, 바로 이 방식으로 만들어진 PRD.md를 기반으로 제작됐다. 요청을 던지고, 되묻는 질문에 답하고, 파일로 저장해 훑어보고, 재검토하는 과정을 그대로 거쳐 지금의 커리큘럼 구조가 확정됐다.
| 포인트 | 의미 |
|---|---|
| 파일로 남는다 | 대화가 아니라 PRD.md |
| 먼저 합의한다 | 코드를 쓰기 전에 방향을 문서로 |
| 프로젝트를 안다 | 기존 코드·문서를 참고해 되묻는다 |
| 객관식으로 좁힌다 | 결정 속도가 빨라진다 |
- 대화가 아니라 파일(PRD.md)로 남는다
- 코드를 쓰기 전에 방향을 문서로 먼저 합의한다
- 프로젝트를 아는 상태에서 현실적인 질문을 되묻는다
- 열린 질문 대신 객관식으로 좁혀 결정 속도를 높인다
화면 흐름 설계
PRD에 기능이 다 나열돼 있어도, 사용자가 화면을 어떤 순서로 거쳐 목표를 달성하는지가 정리돼 있지 않으면 막상 화면을 만들 때 이동 경로가 꼬인다. 화면 흐름도는 서비스에 필요한 화면 목록을 뽑고, 시작 화면부터 목표 달성 화면까지 화살표로 연결한 그림(또는 텍스트)이다.
처음부터 모든 화면을 다 그리려 하지 않는다. 사용자가 가장 자주 거치는 '핵심 경로' 하나(예: 로그인 → 신청 → 완료)를 먼저 그리고, 나머지 화면은 그 경로에 곁가지로 붙인다.
- 필요한 화면 목록을 먼저 뽑는다
- 핵심 경로 하나를 화살표로 먼저 그린다
- 나머지 화면은 핵심 경로에 곁가지로 붙인다
MVP 범위를 자르는 기준
MVP(Minimum Viable Product)는 핵심 목적을 달성하는 데 반드시 필요한 최소한의 기능만 담은 버전이다. 아이디어를 구상하다 보면 '있으면 좋은 기능'이 계속 떠오르는데, 이걸 전부 지금 만들 것에 넣으면 정해진 차시 안에 완성하지 못한다.
기준은 단순하다. '이 기능이 없으면 서비스 핵심 목적을 달성할 수 없는가'를 묻는다. 답이 '그렇다'면 지금 만들 것(Now), '아니다'면 나중에 만들 것(Later)으로 분류한다. 이 기준 하나만 있어도 끝없이 늘어나는 기능 목록에 제동을 걸 수 있다.
Now
지금 만든다
Later
나중으로 미룬다
- '이게 없으면 핵심 목적을 달성할 수 없는가'가 유일한 기준
- 그렇다 → Now, 아니다 → Later
05실습 가이드
1. 아이디어를 한 문장으로 던지기
- P7-1 프롬프트의 대괄호를 채워 Claude Code에 첫 요청을 보낸다.
- 처음부터 모든 조건을 적으려 하지 말고, 한 문장 + 확실한 것 2가지 정도로만 시작한다.
예상 결과 — AI가 대상·목표·범위·제약 등을 묻는 질문 목록(가급적 객관식)을 돌려준다.
안 될 때 — 질문 없이 바로 PRD 초안을 만들어버리면, '확실하지 않은 부분은 임의로 채우지 말고 객관식으로 물어봐줘'라고 다시 요청한다.
2. 되묻는 질문에 답하기
- 질문 하나하나에 실제로 고민해서 답한다.
- 답이 애매하면 '다 좋아요'로 넘기지 말고, '잘 모르겠다, 네 생각엔 뭐가 나을 것 같아?'라고 되묻는다.
예상 결과 — 답변을 반영해 PRD 문서의 해당 절이 점점 채워진다.
안 될 때 — 질문이 너무 많아 압도되면 '가장 중요한 질문 3개만 먼저 답할게'라고 우선순위를 정해 진행한다.
3. PRD.md로 저장하고 전체 훑어보기
- 대화가 어느 정도 쌓이면 'PRD.md 파일로 저장해줘'라고 요청한다.
- 저장된 파일을 열어 처음부터 끝까지 한 번 읽는다.
예상 결과 — 프로젝트 폴더에 PRD.md 파일이 생기고, 목차와 절 구조가 눈에 들어온다.
안 될 때 — 파일이 안 만들어지면 '파일로 저장해줘'라고 명확히 지시했는지 확인한다. 대화형 채팅만으로는 파일이 남지 않는다.
4. 열린 질문을 결정 목록으로 정리하기
- P7-2 프롬프트로 아직 정해지지 않은 부분을 객관식 목록으로 다시 요청한다.
- AI가 추천한 답을 참고해 실제 결정을 내린다.
예상 결과 — '결정 사항' 목록이 만들어지고, 각 항목에 실제 선택이 표시된다.
안 될 때 — 추천 답이 마음에 안 들면 이유를 물어본 뒤 다른 선택지를 요청한다.
5. 결정 사항이 문서에 반영됐는지 검증하기
- P7-3 프롬프트로 PRD.md 전체를 검토받는다.
- 지적된 불일치·누락을 하나씩 확인해 반영을 요청한다.
예상 결과 — 앞뒤가 안 맞는 부분, 반영 안 된 결정, 구체화가 더 필요한 부분의 목록을 받는다.
안 될 때 — 지적이 애매하면 '몇 절 몇 번째 문장이 문제인지 구체적으로 짚어줘'라고 재요청한다.
6. 화면 흐름도 그리기
- P7-4 프롬프트로 PRD에 정리된 화면 목록을 바탕으로 화면 간 이동을 흐름도로 요청한다.
예상 결과 — 시작 화면부터 핵심 화면까지 화살표로 연결된 흐름도가 만들어진다.
안 될 때 — 화면이 너무 많아 복잡해지면 '핵심 경로(로그인 → 신청 → 완료) 하나만 먼저 그려줘'라고 범위를 좁힌다.
7. MVP 범위 자르기
- P7-5 프롬프트로 지금까지 나온 기능 목록을 '지금 반드시 있어야 하는 것'과 '나중에 추가할 것'으로 나눠 달라고 요청한다.
예상 결과 — Now/Later로 나뉜 기능 목록이 PRD에 반영된다.
안 될 때 — 나눈 기준이 애매하면 '이 기능이 없으면 서비스 핵심 목적을 달성할 수 없는가'를 기준으로 다시 나눠 달라고 요청한다.
8. 완성된 한 페이지 PRD로 정리하기
- 지금까지 만든 PRD와 화면 흐름도를 한 페이지로 요약해 달라고 요청한다.
- 다음 차시부터 이 문서를 기준 문서로 삼기로 한다.
예상 결과 — 목표·대상·MVP 범위·화면 흐름이 한 페이지에 정리된 문서가 완성된다.
안 될 때 — 한 페이지에 안 들어가면 '핵심만 남기고 나머지는 부록으로 빼줘'라고 요청한다.
06실전 프롬프트
07이것만은 주의
무슨 일이 생기나 — 처음부터 완벽한 문서를 쓰려다 시간을 다 쓰고, 정작 AI가 되물어야 할 부분을 스스로 임의로 채워 나중에 뒤집힌다.
대처 — 한 문장 + 확실한 것 몇 가지로 시작하고, 나머지는 되묻는 질문에 답하며 채운다(P7-1).
무슨 일이 생기나 — 애매한 승인은 나중에 산출물이 기대와 완전히 달라지는 가장 흔한 원인이 된다.
대처 — 객관식 질문 하나하나에 실제로 고민해서 답하거나, 모르겠으면 '네 생각엔 뭐가 나을 것 같아?'라고 되묻는다.
무슨 일이 생기나 — 대화 중에는 분명히 결정했는데, 정작 PRD.md 본문에는 예전 내용이 그대로 남아 나중에 다시 헷갈린다.
대처 — P7-3 프롬프트로 재검토를 습관화하고, 결정 목록과 본문을 대조해 반영 여부를 확인한다.
무슨 일이 생기나 — 대화창에만 의존하면 이전 결정과 새 결정이 충돌해도 알아채지 못한다.
대처 — PRD.md로 저장한 뒤 처음부터 끝까지 한 번은 눈으로 훑는다.
무슨 일이 생기나 — '다 중요해 보여서' 모든 기능을 지금 만들 것에 넣으면 남은 차시 안에 완성하지 못한다.
대처 — '이게 없으면 핵심 목적을 달성할 수 없는가'를 기준으로 Now/Later를 가른다(P7-5).
08자가 점검
09과제
자신이 만들고 싶은 서비스(또는 자동화하고 싶은 업무) 아이디어로 실습에서 다룬 5단계 워크플로를 그대로 실행해, 한 페이지 PRD와 화면 흐름도를 완성한다. 마땅한 아이디어가 없다면 이번 실습에서 다룬 '사내 비품 신청 서비스'를 자신의 팀 상황에 맞게 바꿔 진행해도 된다.
제출 형식 — ① 완성된 PRD.md 파일 ② 화면 흐름도(텍스트 또는 그림) ③ 사용한 프롬프트와 AI 응답 중 핵심 결정 부분 캡처를 하나의 문서로 정리해 제출한다.
10더 알아보기
- 이 웹사이트의 PRD.md — 이 교육과정 자체가 이번 차시의 절차로 작성된 실제 예시 문서
- 사용자 스토리
- — '누가, 무엇을 하고 싶고, 왜 그런지'를 한 문장으로 정리한 요구사항 서술 형식.
- MVP(Minimum Viable Product)
- — 핵심 목적을 달성하는 데 반드시 필요한 최소한의 기능만 담은 버전.
- 계획 모드(Plan Mode)
- — 코드를 바로 작성하지 않고 방향을 먼저 문서로 합의하는 Claude Code의 작업 모드.
다음 차시 예고 — 다음 차시에서는 이번에 만든 PRD와 화면 흐름도를 바탕으로, 실제로 동작하는 화면을 HTML/CSS/JS로 구현합니다.