첫 결과물 만들기
커피 내기 룰렛 ☕

개념만 배우던 시리즈 ①②를 졸업하고,
오늘은 Cursor로 실제 작동하는 웹앱을 직접 완성합니다.

☕ 오늘 완성할 것 미리보기

오늘 수업이 끝나면 여러분의 PC에는 이런 웹앱이 생깁니다.

  ┌──────────────────────────────────────────────┐
  │  ☕ 커피 내기 룰렛   |  AX팀                  │
  ├─────────────────────┬────────────────────────┤
  │                     │  ☕ 참가자 명단         │
  │    ▼ (포인터)         │                        │
  │   ┌──────────┐      │  [ 이름 입력   ] [추가] │
  │   │ 🎡 룰렛  │      │                        │
  │   │   휠     │      │  ● 김팀장  ✕           │
  │   └──────────┘      │  ● 이과장  ✕           │
  │                     │  ● 박대리  ✕           │
  │  [ 돌려라! ☕ ]      │  ● 최주임  ✕           │
  └─────────────────────┴────────────────────────┘
      

버튼 하나로 이름이 들어간 컬러풀한 휠이 돌아가고, 멈추면 당첨자 팝업이 뜹니다. 완성된 앱을 미리 볼 수 있어요.

🎡 완성된 룰렛 미리 보기 →
💡 이게 목표입니다. 위 링크와 똑같은 것을 오늘 수업에서 직접 만들어봐요. 코드 한 줄 직접 안 쳐도 됩니다.

🖥️ Cursor 준비하기

Cursor는 AI가 내장된 코드 편집기예요. 마이크로소프트 메모장처럼 파일을 열고 편집하는 프로그램인데, 여기에 AI 채팅창이 달려 있습니다.

1
작업 폴더 만들기
바탕화면 또는 문서 폴더에 coffee-roulette 폴더를 새로 만들어요. 오늘 만드는 파일이 여기 들어갑니다.
2
Cursor에서 폴더 열기
Cursor 실행 → 상단 메뉴 File → Open Folder → 방금 만든 coffee-roulette 폴더 선택. 왼쪽 파일 탐색창에 폴더 이름이 보이면 성공.
3
새 파일 만들기
왼쪽 탐색창에서 파일 아이콘(+) 클릭 → 파일 이름을 index.html 로 입력 → Enter. 가운데 에디터 영역에 빈 파일이 열립니다.
💡 파일 이름이 index.html인 이유: 브라우저는 폴더를 열 때 index.html을 가장 먼저 찾아요. 나중에 폴더 경로를 브라우저에 드래그하면 바로 열립니다.

🗺️ Plan 모드 켜기

Week 9에서 Plan 모드를 배웠죠. 오늘 직접 써봅니다.

Plan 모드 = AI가 코드 작성 전에 "이렇게 하겠습니다" 계획을 먼저 보여주는 기능. 사람이 승인하면 그때 코드를 씁니다.

Cursor에서 켜는 방법

1
Chat 창 열기
오른쪽 상단 채팅 아이콘 클릭 또는 단축키 Ctrl + L (Mac: ⌘L). 오른쪽에 채팅창이 열립니다.
2
모드 확인
채팅창 상단에 Agent 또는 Ask 모드 선택창이 보입니다. Agent 모드를 선택하세요. Agent 모드에서 Plan 기능을 사용할 수 있습니다.
3
요청 전에 계획 먼저 보기
프롬프트 입력란 아래에 🗓️ Plan 버튼이 있다면 ON으로 켜세요. 없으면 프롬프트 맨 앞에 "계획을 먼저 보여줘, 내가 승인하면 실행해" 라고 추가하면 됩니다.
⚠️ Cursor 버전마다 UI가 다를 수 있어요. Plan 버튼이 안 보이면 다음 섹션 프롬프트 예시처럼 "계획 먼저 보여줘"를 직접 써도 됩니다. 효과는 똑같아요.

✍️ 프롬프트 작성하기

AI에게 요청할 내용을 프롬프트(지시문)라고 해요. 아래 프롬프트를 그대로 복사해서 Cursor 채팅창에 붙여넣기 하세요.

📋 복사해서 사용할 기본 프롬프트
커피 내기 룰렛 웹 페이지를 HTML 파일 하나로 만들어줘. 기능: - 참가자 이름을 텍스트로 입력하고 추가/삭제할 수 있어야 해 - "돌려라!" 버튼을 누르면 룰렛 휠이 애니메이션과 함께 돌아가 - 멈추면 당첨자 이름이 팝업으로 크게 표시돼 - 다시 돌리기 버튼도 있어 디자인: - 배경은 어두운 다크 모드 - 룰렛 휠은 컬러풀하게 (참가자마다 다른 색) - 전체적으로 깔끔하고 현대적인 느낌 계획을 먼저 보여줘. 내가 승인하면 그때 코드 작성해줘.
💡 위 내용을 Ctrl+A → Ctrl+C로 복사한 뒤 채팅창에 Ctrl+V

왜 이렇게 쓰는 건가요?

프롬프트에는 두 가지가 들어 있어요:

항목 설명 예시
기능 설명 무엇을 만들지 "이름 추가/삭제", "휠 돌아감"
디자인 방향 어떻게 생겼으면 하는지 "다크 모드", "컬러풀"
제약 조건 형식, 파일 구조 "파일 하나로"
플랜 요청 계획 먼저 보기 "계획을 먼저 보여줘"
💡 '파일 하나로'가 중요해요. AI는 기본적으로 파일을 여러 개로 나눠 만들려 합니다. HTML/CSS/JS를 한 파일에 담으면 브라우저에서 바로 열 수 있어서 비전공자에게 훨씬 편해요.

🔍 AI 계획 검토하기

프롬프트를 보내면 AI가 코드 대신 단계별 계획을 먼저 보내줍니다. 이렇게 생겼어요.

🤖 AI가 보내는 계획 (예시)
  1. HTML 기본 구조 및 head 태그 설정
  2. 어두운 다크 모드 CSS 스타일 작성
  3. 참가자 이름 입력 · 추가 · 삭제 UI 구현
  4. Canvas를 이용한 컬러풀 룰렛 휠 그리기
  5. 스핀 버튼 + 회전 애니메이션 (ease-out) 구현
  6. 당첨자 팝업 모달 및 다시 돌리기 버튼 구현
진행할까요?

계획을 읽을 때 확인할 것들

✓
내가 요청한 기능이 다 들어 있나?
룰렛 휠, 이름 추가/삭제, 당첨자 팝업이 모두 언급되어 있으면 OK.
✓
이상한 단계가 끼어 있지 않나?
서버 설치, 데이터베이스, Node.js 같은 단어가 나오면 "파일 하나로만 만들어줘"라고 다시 말해야 해요.
✓
단계 수가 10개 이하인가?
단계가 너무 많으면 과도하게 복잡하게 만들 수 있어요. 간단히 해달라고 요청하세요.
💡 계획이 마음에 들면? 채팅창에 "좋아, 진행해줘" 또는 "OK"라고 보내세요. AI가 바로 코드를 작성합니다.
💡 계획이 마음에 안 들면? 다음 섹션 수정 요청하기를 참고하세요.

⚡ 실행하고 결과 보기

"좋아, 진행해줘"를 보내면 AI가 코드를 작성하기 시작합니다.

1
코드 생성 지켜보기
왼쪽 에디터에 코드가 자동으로 채워집니다. 직접 타이핑하지 않아도 돼요. 30초~2분 정도 걸립니다.
2
파일 저장
코드가 완성되면 Ctrl + S (Mac: ⌘S)로 저장하세요. 저장되지 않으면 브라우저에서 열어도 변경사항이 반영 안 됩니다.
3
브라우저에서 열기
탐색기(폴더)에서 index.html 파일을 더블 클릭하거나, Chrome에 드래그하면 바로 열립니다.
4
직접 테스트
이름 몇 개를 추가하고 "돌려라!" 버튼을 눌러보세요. 휠이 돌아가면 성공!
⚠️ 화면이 비어 있거나 오류가 보이면? Cursor 채팅창에 "브라우저에서 열었는데 아무것도 안 보여. 수정해줘"라고 말하면 AI가 고쳐줍니다.

✏️ 수정 요청하기

처음 결과가 완벽하지 않아도 괜찮아요. Vibe 코딩의 핵심은 대화로 다듬어 가는 것입니다.

바로 쓸 수 있는 수정 요청 예시

당첨자 팝업에 커피 이모지를 더 크게 넣어줘
이름이 휠 바깥 근처에 있는데, 더 가운데 쪽으로 옮겨줘
스핀이 너무 빠르게 끝나. 더 천천히 오래 돌아가게 해줘
참가자가 1명일 때 스핀 버튼이 눌리지 않게 막아줘
배경색을 좀 더 밝게 바꿔줘
이름 추가 후 입력창이 자동으로 비워지게 해줘
맨 위에 'AX팀 커피 내기 룰렛'이라는 제목을 더 크게 표시해줘

수정 요청 잘 하는 법

이렇게 말하면 이렇게 말하면 더 좋아요
"예뻐 보이게 해줘" "버튼 색을 초록색으로 바꾸고 둥글게 해줘"
"좀 고쳐줘" "당첨자 이름 글자가 너무 작아. 두 배로 키워줘"
"이상해" "스핀 버튼을 눌러도 아무 반응이 없어. 고쳐줘"
💡 눈에 보이는 것으로 설명하세요. "멋있게" 보다는 "빨간색" "더 크게" "가운데 정렬" 처럼 구체적일수록 AI가 정확하게 수정합니다.

🎉 완성! & 팀 공유

룰렛이 마음에 들면 완성입니다! 이제 팀원들과 공유해봐요.

파일로 공유하기

1
index.html 파일 찾기
아까 만든 coffee-roulette 폴더 안에 index.html 파일이 있어요.
2
팀 채팅에 첨부하기
카카오톡, Slack, Teams 등 팀 채팅에 파일을 첨부해서 보내세요. 받는 사람이 HTML 파일을 더블클릭하면 바로 룰렛이 열립니다.
💡 파일 용량이 작아요. HTML 파일 하나는 보통 50KB 이하. 카카오톡으로도 가볍게 전송됩니다.

팀원 이름 미리 넣어서 공유하기

공유 전에 이름 목록을 팀원 전체로 미리 채워두면 받는 사람이 바로 쓸 수 있어요. Cursor 채팅창에 이렇게 요청하세요.

📋 이름 미리 넣기 요청
기본으로 들어가는 참가자 이름을 김팀장, 이과장, 박대리, 최주임, 정사원 으로 바꿔줘.

❓ FAQ

Q. AI가 만든 코드라 내 것이 아닌 느낌이에요.
무엇을 만들지 결정하고, 프롬프트를 쓰고, 계획을 검토하고, 수정을 지시한 것은 다 여러분이에요. AI는 도구입니다. 문서 작성에 Word를 쓴다고 "내 글이 아니다"라고 하지 않죠.
Q. 코드가 길어서 무서운데, 다 이해해야 하나요?
지금은 안 해도 됩니다. Vibe 코딩의 장점은 "어떻게 만들지"보다 "무엇을 만들지"에 집중할 수 있다는 것이에요. 시리즈가 진행되면서 자연스럽게 코드가 눈에 들어오기 시작해요.
Q. 50회 제한을 다 쓰면 어떻게 하나요?
Cursor 무료 플랜의 프리미엄 모델(Claude/GPT-4급)은 월 50회 slow 요청이 무료예요. 50회를 다 쓰면 저사양 모델로 자동 전환됩니다. 결과 품질이 약간 떨어질 수 있지만 기본적인 작업은 가능해요. 또는 Claude.ai 웹버전(claude.ai)에서 비슷하게 작업할 수 있습니다.
Q. 인터넷이 없는 환경에서도 열 수 있나요?
네! 완성된 index.html 파일은 PC에 저장되기 때문에 인터넷 없이도 더블클릭으로 열립니다. 오프라인 완전 사용 가능.
Q. AI가 계획과 다르게 만들면 어떻게 하나요?
"계획에서 3번 항목이 빠진 것 같아. 당첨자 팝업을 추가해줘"처럼 구체적으로 지적하면 됩니다. 또는 처음부터 다시 요청해도 OK — "처음부터 다시 만들어줘"는 Vibe 코딩에서 아주 자연스러운 요청입니다.

🎓 핵심 요약

오늘 배운 것 핵심
Cursor 준비 폴더 열기 → index.html 만들기 → 시작
Plan 모드 코드 전에 계획 먼저 → 검토 → "좋아, 진행해"
프롬프트 작성 기능 + 디자인 + 제약 조건 + "계획 먼저"
결과 확인 Ctrl+S 저장 → HTML 더블클릭 → 브라우저에서 테스트
수정 요청 구체적으로 ("빨간색으로", "더 크게", "오른쪽에")
공유 index.html 파일 하나를 팀 채팅에 첨부

🎭 Vibe 코딩 시리즈 ③ 완료!

📋 Plan 모드로 계획 먼저
✍️ 프롬프트로 요청
🔍 계획 검토 후 승인
✏️ 대화로 다듬기

오늘로 개념 → 실전 전환을 완료했습니다.
다음 수업부터는 오늘 만든 룰렛을 업그레이드하거나,
새로운 미니 프로젝트에 도전해봐요!