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

개념만 배우던 시리즈 ①②를 졸업하고,
오늘은 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 모드로 계획 먼저
✍️ 프롬프트로 요청
🔍 계획 검토 후 승인
✏️ 대화로 다듬기

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