Track 01 — Beginner

채팅으로
앱 만들어보기

ChatGPT나 Claude 무료 버전으로도 충분히 웹 앱을 만들 수 있어요.
AI는 주니어 개발자이고, 당신은 프로젝트 디렉터입니다.
그러니 결과를 검토하고, 필요한 수정을 AI에게 요청하는 역할을 맡아주세요.

ChatGPT Free Claude Web VS Code Vite + React GitHub Vercel

흐름은 다음과 같아요

유료 도구들은 AI가 내 파일을 직접 열어서 작업하지만, 초심자 트랙에서는 중간 역할이 필요합니다.
AI에게 코드를 받아서, 내가 파일에 붙여넣는 방식이에요.

01
AI 채팅창에서 기능 요청 ChatGPT나 Claude 웹사이트에서 원하는 기능을 설명합니다
02
AI가 코드를 작성해서 응답 코드 블록(회색 박스)으로 완성된 코드가 나옵니다
03
VS Code 해당 파일에 붙여넣기 AI가 알려주는 파일(예: App.jsx)을 열고 전체 내용을 교체합니다
04
브라우저에서 결과 확인 npm run dev로 켜둔 창에서 자동으로 변경사항이 반영됩니다
05
잘 안 되면 오류 메시지를 AI에게 전달 브라우저 콘솔의 빨간 오류를 그대로 복사해서 AI에게 붙여넣습니다
06
완성되면 GitHub → Vercel 배포 실제 인터넷 주소로 친구들과 공유할 수 있게 됩니다

장점도 있어요!
AI가 직접 파일을 고쳐주면 뭘 바꿨는지 놓치기 쉽습니다. 초심자의 방식은 코드를 직접 눈으로 보면서 붙여넣기 때문에, 구조를 자연스럽게 익히게 됩니다. 입문자에게는 오히려 더 좋은 방식일 수 있어요.


처음 한 번만 설정하면 끝

아래 도구들을 설치하면 개발 환경 준비가 완료됩니다.
이후 모든 프로젝트에서 계속 쓸 수 있어요.

🤖

AI 채팅 도구

ChatGPT, Claude, Gemini 중 하나. 브라우저에서 사용하니 별도 설치 없이 계정만 만들면 됩니다.

📝

VS Code

코드를 보고 편집하는 프로그램. code.visualstudio.com에서 무료로 다운로드합니다.

⚙️

Node.js

React 프로젝트를 실행하는 데 필요한 프로그램. nodejs.org에서 LTS 버전을 설치합니다.

🌐

GitHub + Vercel 가입하기

코드 저장(GitHub)과 인터넷 배포(Vercel). 둘 다 무료 계정으로 충분합니다.

설치 확인하기

VS Code를 열고, 상단 메뉴 → 터미널 → 새 터미널을 클릭하세요. 검은 창이 뜨면 아래 명령어를 입력해서 Node.js가 제대로 설치됐는지 확인합니다.

Terminal (VS Code 내장)
node -v   # v20.x.x 같은 숫자가 나오면 OK
npm -v    # 9.x.x 같은 숫자가 나오면 OK

터미널이 처음이라면: VS Code에서 Ctrl + ` (백틱, 숫자 1 왼쪽 키)를 누르면 터미널이 열립니다. 명령어를 입력하고 Enter를 누르면 실행됩니다.


첫 프로젝트 만들기

이제 실제 프로젝트를 만들어봅시다. VS Code 터미널에서 아래 명령어를 순서대로 입력하세요. 처음엔 낯설지만 금방 익숙해집니다.

Terminal — 프로젝트 생성
# 1. 원하는 위치로 이동 (예: 바탕화면)
cd Desktop

# 2. 프로젝트 폴더 생성
#    my-first-app 부분이 프로젝트 이름입니다
npm create vite@latest my-first-app

# 3. 질문이 나오면 키보드로 선택
#    Select a framework:  → React 선택 (방향키로 이동, Enter)
#    Select a variant:    → JavaScript 선택 (TypeScript 말고)

# 4. 만들어진 폴더로 이동
cd my-first-app

# 5. 필요한 파일들 설치 (잠깐 기다림)
npm install

# 6. 개발 서버 실행
npm run dev

성공 확인: http://localhost:5173 주소가 터미널에 나오면 성공입니다. 브라우저에서 그 주소를 열면 Vite + React 로고가 보입니다. 이 창은 계속 켜두세요 — 코드를 바꿀 때마다 자동으로 새로고침됩니다.

폴더 구조 이해하기

VS Code에서 방금 만든 폴더를 열면 이런 구조가 보입니다. 처음엔 복잡해 보이지만 실제로 건드릴 파일은 딱 두 곳입니다.

폴더 구조
my-first-app/
├── src/
│   ├── App.jsx   ← 여기가 메인! 대부분의 작업은 이 파일
│   ├── App.css    ← 디자인 (나중에 건드려요)
│   └── main.jsx   ← 건드리지 않아도 됨
├── public/        ← 이미지 파일 넣는 곳
├── index.html
└── package.json
💡 팁: 처음에는 src/App.jsx 하나만 건드려도 됩니다. AI에게 요청할 때 "App.jsx 파일을 수정해줘"라고 하면, AI가 이 파일의 내용을 통째로 새로 써줍니다.

AI에게 잘 부탁하는 방법

바이브코딩에서 가장 중요한 스킬은 AI에게 원하는 걸 정확하게 전달하는 것입니다. 막연하게 요청하면 엉뚱한 결과가 나오고, 구체적으로 말할수록 원하는 결과에 가까워집니다.

첫 번째 요청 — 이렇게 시작해보세요

ChatGPT나 Claude 채팅창에 아래와 같은 형식으로 요청하면 됩니다.

프로젝트 디렉터처럼 요청하세요: "할 일 앱 만들어줘"가 아니라 먼저 요구사항을 정의하고, 그 다음 AI에게 구현을 맡기세요. AI는 방향이 있을 때 훨씬 정확하게 일합니다.

💬 요구사항 정의 → 구현 요청 (예시: 할 일 목록 앱)
[요구사항 정의]
나는 React + Vite 프로젝트를 방금 만든 입문자야.
할 일 목록(Todo) 앱의 요구사항을 먼저 정리할게:

사용자: 나 혼자 쓸 앱
핵심 기능 3가지:
1. 입력창에 할 일 입력 + 추가 버튼
2. 각 항목에 완료 체크박스와 삭제 버튼
3. 완료 항목은 취소선으로 표시

[구현 요청]
위 요구사항으로 src/App.jsx 파일 하나에 구현해줘.
- CSS는 인라인 스타일로 간단하게
- 전체 코드를 한 번에 출력
- 완료 후: 어느 파일에 넣는지 + 동작 방식 한 줄 요약

좋은 요청 vs 나쁜 요청

아래 비교를 보면 어떻게 요청해야 할지 감이 잡힐 거예요.

❌ 이렇게 하면 결과가 애매해요
앱 만들어줘.

버튼 추가해줘.

안 되는데 고쳐줘.

예쁘게 만들어줘.
✅ 이렇게 하면 결과가 명확해요
React + Vite 프로젝트의 src/App.jsx에 타이머 기능을 추가해줘. 시작/멈춤 버튼이 있고, mm:ss 형식으로 표시돼야 해.

App.jsx에 파란색(#3b82f6) 버튼을 추가해줘. 클릭하면 "안녕하세요!"라는 alert가 뜨게 해줘.

아래 오류가 났어: [오류 내용 붙여넣기]. 현재 App.jsx 코드는 이래: [코드 붙여넣기]. 원인을 설명하고 고쳐줘.

코드를 받은 다음에는

  1. 1
    AI가 알려준 파일을 VS Code에서 엽니다

    보통 src/App.jsx입니다. 왼쪽 파일 목록에서 클릭하면 열립니다.

  2. 2
    Ctrl+A로 전체 선택 후 Delete로 삭제

    기존 내용을 전부 지웁니다.

  3. 3
    AI가 준 코드를 Ctrl+V로 붙여넣기

    AI 응답의 회색 코드 박스 오른쪽 상단 복사 버튼을 누르면 쉽게 복사됩니다.

  4. 4
    Ctrl+S로 저장

    저장하면 브라우저가 자동으로 새로고침되어 변경사항이 보입니다.

  5. 5
    브라우저에서 확인

    localhost:5173에서 내가 요청한 기능이 잘 동작하는지 테스트합니다.

꿀팁: 브라우저와 VS Code를 나란히 배치하면 더 편합니다. 코드를 수정하자마자 바로 결과를 볼 수 있어요. 윈도우 키 + 방향키로 창을 반반 나눌 수 있습니다.

기능을 하나씩 추가하기

처음부터 모든 기능을 한 번에 만들려 하지 마세요. 기능 하나를 완성하고 확인한 다음, 그 다음 기능을 요청하는 게 훨씬 안전합니다.

💬 단계별 요청 예시
[1단계] 지금까지 만든 App.jsx에서 로컬스토리지 저장 기능을 추가해줘.
페이지를 새로고침해도 할 일 목록이 사라지지 않아야 해.
현재 App.jsx 코드는 이래: [현재 코드 붙여넣기]

[2단계] App.jsx에 필터 탭을 추가해줘.
'전체', '진행중', '완료' 탭이 있고, 각 탭을 클릭하면 해당 항목만 보여줘.
현재 App.jsx 코드는 이래: [현재 코드 붙여넣기]

오류가 났을 때 당황하지 마세요

개발 중에 오류는 피할 수 없습니다. 중요한 건 오류를 봤을 때 어떻게 AI에게 전달하느냐입니다. "안 돼요"라고 하면 AI도 뭘 고쳐야 할지 모릅니다.

오류 메시지 찾는 방법

  1. 1
    브라우저에서 F12 키를 누릅니다

    개발자 도구가 열립니다. 처음엔 낯설지만 걱정하지 마세요.

  2. 2
    상단에서 "Console" 탭을 클릭합니다

    여기에 빨간색 오류 메시지가 표시됩니다.

  3. 3
    빨간 텍스트를 마우스로 드래그해서 복사합니다

    오류 메시지 전체를 선택해서 복사합니다. 짧게 자르지 마세요.

  4. 4
    AI에게 오류 + 현재 코드를 함께 전달합니다

    오류만 주면 AI가 현재 코드를 모릅니다. 반드시 코드도 같이 줘야 해요.

💬 오류 발생 시 AI에게 이렇게 요청하기
App.jsx를 수정했더니 이런 오류가 났어:

오류 메시지:
Cannot read properties of undefined (reading 'map')
at App (App.jsx:15:18)

현재 App.jsx 코드:
[코드 전체 붙여넣기]

원인이 뭔지 설명해주고, 수정된 전체 App.jsx 코드를 다시 써줘.

이것만은 하지 마세요: "오류가 났어요"처럼 오류 메시지 없이 요청하거나, "고쳐줘"만 하면 AI가 원인을 추측해야 해서 엉뚱한 결과가 나올 수 있습니다. 항상 오류 메시지 + 현재 코드를 세트로 전달하세요.

흰 화면만 나올 때 (화면이 아무것도 안 보임)

이런 경우는 대부분 코드 문법 오류입니다.


코드를 안전하게 저장하기

GitHub는 코드를 인터넷에 저장하는 공간입니다. 저장된 코드로 Vercel에서 배포도 하고, 실수로 코드를 망쳐도 이전 버전으로 돌아갈 수 있어요.

GitHub 계정 & 저장소 만들기

  1. 1
    github.com에서 계정을 만듭니다 (이미 있으면 로그인)
  2. 2
    오른쪽 상단 + 버튼 → New repository 클릭

    Repository name에 프로젝트 이름 입력 (예: my-first-app). Public 선택. Create repository 클릭.

  3. 3
    나오는 명령어를 VS Code 터미널에 붙여넣기

    GitHub가 안내해주는 "...or push an existing repository" 쪽 명령어들을 순서대로 입력합니다.

Terminal — GitHub 업로드
# 프로젝트 폴더에서 실행 (npm run dev 중이면 Ctrl+C로 멈추고)
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/내계정/내저장소.git
git push -u origin main

저장소 주소는 GitHub에서 복사하세요. 위 명령어에서 https://github.com/내계정/내저장소.git 부분은 GitHub 저장소 만들고 나서 나오는 주소를 복사해 쓰면 됩니다.

이후에 수정할 때마다

Terminal — 코드 변경 후 저장
git add .
git commit -m "변경 내용 메모"   ← 예: "할일 삭제 기능 추가"
git push
# Vercel이 자동으로 새 버전을 배포해줍니다

실제 인터넷에 올리기

Vercel은 GitHub 저장소를 연결하면 코드가 바뀔 때마다 자동으로 배포해주는 서비스입니다. 무료로 사용할 수 있고, 설정도 아주 간단해요.

  1. 1
    vercel.com 접속 → GitHub 계정으로 로그인
  2. 2
    Add New → Project 클릭

    GitHub 저장소 목록이 뜨면 방금 만든 저장소를 Import 합니다.

  3. 3
    설정은 기본값 그대로 → Deploy 클릭

    Vite + React 프로젝트는 Vercel이 자동으로 인식합니다. 따로 설정할 게 없어요.

  4. 4
    1~2분 기다리면 배포 완료!

    내프로젝트.vercel.app 같은 주소가 생깁니다. 이 링크를 공유하면 누구나 볼 수 있어요.

이제부터는: 코드를 수정하고 git add . && git commit -m "변경사항" && git push만 하면 Vercel이 자동으로 새 버전을 배포합니다. 보통 1~2분이면 최신 버전이 반영됩니다.

배포 전 꼭 확인하기

로컬(내 컴퓨터)에서는 잘 되는데 Vercel에서 안 되는 경우가 있습니다. 배포 전에 아래 명령어로 빌드 테스트를 꼭 해보세요.

Terminal — 배포 전 테스트
# 빌드 테스트 (오류 없이 완료되면 Vercel도 성공)
npm run build

# 오류가 나면 메시지를 AI에게 전달해서 먼저 해결하세요

AI가 쓴 코드, 어떻게 읽나요?

코드를 직접 쓸 줄 몰라도 됩니다. 하지만 AI가 만들어준 코드의 구조는 눈으로 파악할 수 있어야 합니다. 이 세 가지만 알면 Intermediate로 넘어갈 준비가 됩니다.

📦

변수 (Variable)

정보를 담는 상자입니다. constlet이 보이면 변수입니다. const name = "홍길동"처럼 값에 이름을 붙여 저장합니다.

⚙️

함수 (Function)

반복되는 동작을 묶어둔 것입니다. function 또는 화살표 =>가 보이면 함수입니다. 특정 이름으로 불러서 실행합니다.

🔴

오류 메시지 (Error)

빨간 글씨로 나타납니다. 보통 TypeError, ReferenceError처럼 시작하고, 뒤에 원인과 파일·줄 번호가 나옵니다. AI에게 그대로 넘기면 됩니다.

코드 한 토막 읽어보기

읽기 연습 — App.jsx (할 일 앱 일부)
// 변수: todos라는 빈 배열(목록)을 선언
const [todos, setTodos] = useState([])

// 함수: "추가" 버튼 클릭 시 할 일을 목록에 넣는 동작 정의
function addTodo(text) {
  setTodos([...todos, { text, done: false }])
}

// 화면: todos 배열을 li 태그로 하나씩 출력
todos.map(todo => <li>{todo.text}</li>)
💡 팁: 코드를 전부 이해할 필요가 없습니다. "이 부분이 화면, 이 부분이 클릭 동작, 이 부분이 데이터" 정도만 파악하면 됩니다. 더 알고 싶은 부분은 AI에게 "이 코드에서 버튼 색상 바꾸는 부분이 어디야?"라고 물어보세요.

Context is King: Intermediate 트랙부터는 파일이 여러 개로 나뉩니다. AI에게 요청할 때 "어느 파일을 수정하는지"를 항상 명시하는 습관이 중요해집니다. 지금부터 파일 이름을 신경 써서 보세요.


AI가 엉뚱한 걸 만들었을 때

AI가 항상 원하는 결과를 내주지는 않습니다. 두 가지 상황이 자주 발생합니다. 당황하지 말고 아래 정정 프롬프트를 사용하세요.

상황 1 — 존재하지 않는 라이브러리를 사용했을 때

AI가 실제로 없는 패키지 이름이나 함수를 코드에 넣는 경우가 있습니다. npm install 시 "not found" 오류가 나거나 함수 호출 시 undefined 오류가 나면 의심해보세요.

❌ AI가 만든 문제 코드
import { magicSort } from 'react-magic-tools'

→ npm install 해도 "Package not found" 오류 발생
✅ 정정 프롬프트
"react-magic-tools 라이브러리가 실제로 존재하지 않는 것 같아. npm에서 찾을 수 없어. 이 기능을 구현하는 실제로 존재하는 라이브러리를 사용하거나, 라이브러리 없이 직접 구현해줘."

상황 2 — 요청한 것과 다른 기능을 만들었을 때

❌ 이렇게 정정하면 안 됨
"아니야, 다시 해줘."

→ AI가 무엇이 틀렸는지 모름. 같은 실수 반복.
✅ 구체적 정정 프롬프트
"삭제 버튼이 클릭한 항목 하나만 지워야 하는데, 지금 코드는 전체 목록을 지우고 있어. 해당 인덱스의 항목만 제거하도록 수정해줘. 현재 코드: [코드 붙여넣기]"
💡 디버거 마인드셋: AI가 틀렸을 때 "AI가 못하는구나"가 아니라 "내가 더 구체적으로 설명해야겠구나"로 생각하세요. 리드 개발자는 주니어에게 더 명확한 지시를 내립니다.

Intermediate로 넘어가기 전에

이 페이지의 방식(복붙 개발)에 익숙해졌다면, 다음 단계를 준비할 시간입니다. Intermediate 트랙은 AI가 파일을 직접 수정하는 환경입니다. 아래를 모두 경험해야 다음 단계가 수월합니다.

🎓

졸업 프로젝트

AI가 만든 코드에서 딱 한 줄을 직접 수정해보세요. 버튼 색상 하나, 텍스트 하나. 저장하고 브라우저에서 변화를 확인하면 졸업입니다.

⚙️

도구 설치

Cursor 설치 완료. Git 로그인 완료. 터미널에서 node -vgit --version 모두 확인 완료.

🌐

배포 경험

만든 프로젝트를 Vercel에 한 번이라도 배포해보세요. 내프로젝트.vercel.app URL이 생기고 친구에게 공유해보면 됩니다.

🔍

오류 해결 경험

오류 메시지를 AI에게 넘겨서 해결해본 경험이 있으면 됩니다. 오류는 실패가 아니라 개발 과정의 일부입니다.

다음 단계 예고: Intermediate 트랙에서는 Cursor로 AI가 직접 파일을 수정합니다. 더 빠르고 강력하지만, "AI가 뭘 바꿨는지 직접 확인"하는 리뷰어 역할이 더 중요해집니다. 준비되셨나요?


무료 트랙 바이브코딩 원칙

🎯

한 번에 하나씩

기능 하나를 완성하고 확인한 후 다음 기능을 요청하세요. 한 번에 10가지를 요청하면 꼬입니다.

📋

파일 이름을 명시하기

요청할 때 항상 어느 파일을 수정하는지 말해주세요. 대부분은 src/App.jsx입니다.

🔍

오류는 그대로 전달

"안 돼요"가 아니라 오류 메시지와 현재 코드를 세트로 AI에게 전달하세요.

만들고 바로 확인

코드를 붙여넣을 때마다 브라우저에서 직접 확인하세요. 나중에 몰아서 확인하면 디버깅이 어렵습니다.

이것만은 하지 마세요: AI가 코드를 줬는데 실행도 안 해보고 바로 Git push하는 것. 반드시 npm run dev로 확인하고, npm run build도 통과시킨 다음에 push하세요.

추천 첫 프로젝트

기억하세요: 완벽한 코드를 한 번에 만들려 하지 마세요. AI와 함께 조금씩 고쳐나가는 과정 자체가 바이브코딩입니다. 동작하는 결과물을 빠르게 만드는 게 목표예요.

← 트랙 선택으로 다음: 유료 사용자 트랙 →