PCOSSAM
0/7
바이브 코딩 실습 · 배포 편

가입은 끝났습니다.
여기서부터 여섯 단계
명함 주소가 생깁니다.

만든 명함 파일을 인터넷에 올려서, 문자로 보낼 수 있는 주소로 바꾸는 방법입니다.

2026년 7월 화면 기준 · 깃허브와 버셀은 화면이 가끔 바뀝니다. 버튼 위치가 달라 보여도 영문 버튼 이름은 대체로 그대로이니 이름으로 찾으세요.

이미 하다가 막혔다면

처음부터 읽지 마시고, 지금 내 화면과 같은 증상을 누르세요.

00

올리기 전, 파일 이름부터 고칩니다

배포 실패의 절반은 여기서 이미 결정됩니다.

  1. 명함 파일 이름은 반드시 index.html — 전부 소문자입니다.
  2. 사진 파일 이름은 영문 소문자로, 띄어쓰기 없이. my-photo.jpg 처럼요. (한글·공백·대문자는 나중에 사진이 깨지는 원인이 됩니다)
  3. 폴더를 만들지 마세요. index.html과 사진 파일이 나란히 놓인 상태여야 합니다.
왜 대소문자까지 따지나요 내 컴퓨터는 Photo.jpgphoto.jpg를 같은 파일로 봅니다. 그런데 인터넷 서버는 다른 파일로 봅니다. 내 컴퓨터에서만 잘 보이는 사고가 여기서 납니다.
01

깃허브에 보관함을 만듭니다

깃허브는 내 파일을 인터넷에 보관하는 창고입니다. 그 창고 한 칸을 저장소(리포지토리)라고 부릅니다.

  1. 깃허브에 로그인하면 첫 화면 왼쪽에 초록색 New 버튼이 있습니다. 누릅니다.
  2. Repository name 칸에 영문 소문자로 이름을 씁니다. 예: mycard
  3. Choose visibilityPublic인지 확인합니다. 처음부터 Public이면 그대로 두면 됩니다. (공개 설정입니다. 명함은 남에게 보여줄 거라 공개가 맞고, 비공개로 하면 무료 배포가 막힐 수 있습니다)
  4. Add READMEOff 그대로, 그 아래 Add .gitignoreAdd license도 손대지 않습니다.
  5. 맨 아래 초록색 Create repository를 누릅니다.
11왼쪽 위 초록색 New 버튼을 누릅니다
01단계 실제 화면 · 로그인 직후 첫 화면입니다. 가려진 부분은 계정 정보입니다.
12341영문 소문자로 짧게. 예: mycard2Public 그대로 둡니다3Add README는 Off 그대로4맨 아래 Create repository를 누릅니다
01단계 실제 화면 · 나머지 칸은 하나도 건드리지 않습니다.
여기까지 맞으면“…quick setup”이라고 쓰인 텅 빈 화면이 나옵니다. 비어 있는 게 정상입니다.
02

파일을 올리고, 반드시 저장 버튼을 누릅니다

가장 많이 탈락하는 지점입니다. 끌어다 놓는 것만으로는 저장되지 않습니다.

  1. 저장소 화면에서 Add fileUpload files를 누릅니다. 저장소가 완전히 비어 있으면 uploading an existing file 글자가 대신 보이는데, 같은 기능입니다.
  2. index.html과 사진 파일을 한꺼번에 끌어다 놓습니다. 폴더째로 끌지 말고 파일만 선택해서 끕니다.
  3. 화면을 아래로 끝까지 내립니다.
  4. 초록색 Commit changes 버튼을 누릅니다. 이게 저장 버튼입니다.
121Add file을 누르고2Upload files를 고릅니다
02단계 실제 화면 · 저장소가 완전히 비어 있으면 “uploading an existing file” 글자가 대신 보입니다.
파일을 여기로끌어다 놓기1폴더 말고파일만 끌기index.htmlmy-photo.jpg2아래로 끝까지Commit changes3여기를 눌러야 저장됩니다안 누르면 저장소가 텅 빕니다
02단계 · 실제 캡처가 아직 없는 화면입니다. 구조만 그린 그림이니 위치 감만 잡으세요. 3번 버튼은 화면을 아래로 내려야 보입니다.
여기까지 맞으면저장소 화면에 index.html목록 맨 위에 그대로 보입니다. 폴더 이름이 하나 보이고 그 안에 들어 있다면 잘못된 것이니, 폴더를 지우고 파일만 다시 올리세요.
03

버셀에 깃허브를 연결합니다

버셀은 창고에 있는 파일을 인터넷 주소로 바꿔주는 서비스입니다.

  1. 버셀에 로그인합니다. 깃허브 계정으로 로그인하는 게 가장 편합니다.
  2. 오른쪽 위 Add New를 누르고, 목록 맨 위 Project를 고릅니다.
  3. Import Git Repository 아래 내 깃허브 계정 이름을 확인합니다. 계정 목록이 아래로 펼쳐져 있으면 Esc를 눌러 닫습니다. 닫아야 뒤에 가려진 저장소 목록이 보입니다.
  4. 내 저장소 오른쪽 Import를 누릅니다. 목록이 길면 Search 칸에 이름을 쳐서 거릅니다.
  5. 저장소가 안 보이면 목록 아래 Adjust GitHub App Permissions를 눌러 All repositories(전체 허용)로 바꿉니다.
11오른쪽 위 Add New를 누릅니다
03단계 실제 화면 · 버셀 첫 화면 오른쪽 위입니다.
Add New 메뉴: Project, Domain, Store, Integration, Team Member
03단계 실제 화면 · 맨 위 Project를 고릅니다. 아래 항목은 쓰지 않습니다.
121내 저장소 오른쪽 Import를 누릅니다2저장소가 안 보이면 여기를 눌러 전체 허용으로
03단계 실제 화면 · 계정 목록이 펼쳐져 있으면 닫아야 이 목록이 보입니다.
목록에 내 저장소가 없다면 저장소 목록 아래쪽의 깃허브 권한 조정 링크를 눌러 All repositories(전체 허용)로 바꾸세요. 처음 연결할 때 Only select repositories를 골랐다면 나중에 만든 저장소가 목록에 안 뜹니다.
04

아무것도 바꾸지 말고 배포합니다

설정 화면이 복잡해 보이지만, 명함 한 장은 손댈 게 없습니다.

  1. Project Name 칸에 이름이 자동으로 채워져 있습니다. 이 이름이 그대로 주소가 됩니다. 바꾸려면 지금이 가장 쉽습니다.
  2. Application PresetOther인지 확인합니다. 다른 게 적혀 있으면 Other로 바꿉니다. (화면에 따라 Framework Preset이라고 적혀 있기도 한데 같은 칸입니다)
  3. Root Directory, Build and Output Settings, Environment Variables절대 건드리지 않습니다.
  4. Deploy를 누르고 기다립니다. 보통 1분 안에 끝납니다.
  5. 축하 화면이 나오면 Continue to Dashboard를 누릅니다.
12341여기 적힌 이름이 그대로 주소가 됩니다2Other인지 확인. 다르면 Other로 바꿉니다3이 세 칸은 절대 손대지 않습니다4Deploy를 누르고 1분쯤 기다립니다
04단계 실제 화면 · 예전에 Framework Preset이던 칸 이름이 지금은 Application Preset입니다.
여기까지 맞으면Domains 아래에 내이름.vercel.app 형태의 주소가 생깁니다. 눌러서 내 명함이 나오면 성공입니다.
05

주소를 다듬고 문자로 보냅니다

이게 이번 실습의 진짜 목적입니다.

  1. 주소가 길고 지저분하면 버셀에서 SettingsGeneralProject Name을 짧은 이름으로 바꿉니다. 주소도 같이 바뀝니다. (04단계에서 미리 바꿔뒀다면 건너뜁니다)
  2. 주소를 복사해 휴대폰 문자 앱에 붙여넣고 나에게 먼저 보내봅니다.
  3. 보낸 문자를 다른 사람 폰에서도 한 번 열어보게 하세요. 내 폰에서만 열리는 경우는 없지만, 사진 깨짐은 남의 폰에서 먼저 보입니다.
Domainsmycard.vercel.app1이게 진짜문자에 이걸mycard-h7f3k9x2-user.vercel.app2임시 확인용보내지 마세요
05단계 · 실제 캡처가 아직 없는 화면입니다. 짧은 쪽이 계속 살아있는 주소입니다.
문자·카톡에 미리보기 이미지를 띄우고 싶다면 index.html<head> 안에 아래 두 줄을 넣고 다시 저장하면 됩니다.
<meta property="og:title" content="홍길동 명함"> <meta property="og:image" content="https://내주소/my-photo.jpg">
06

내용을 고치고 다시 반영합니다

수업이 끝난 뒤 혼자서 관리하려면 이 단계가 핵심입니다.

  1. 깃허브 저장소에서 index.html을 누릅니다.
  2. 오른쪽 위 연필 모양 아이콘을 누르면 바로 고칠 수 있습니다.
  3. 다 고쳤으면 Commit changes를 누릅니다.
  4. 1~2분 뒤 내 주소를 새로고침하면 바뀌어 있습니다.
파일을 통째로 다시 올릴 때 반드시 같은 이름(index.html)으로 올려야 덮어써집니다. index(1).html처럼 이름이 달라지면 사이트는 그대로 옛날 것을 보여줍니다.

증상별 해결

내 화면과 같은 문장을 펼쳐 보세요.

배포는 됐는데 404 / NOT_FOUND 화면이 떠요
원인 · index.html이 폴더 안에 들어갔습니다 깃허브 저장소 첫 화면에서 index.html이 바로 보여야 합니다. 폴더 이름만 하나 보인다면 버셀은 명함 파일을 찾지 못합니다. 폴더를 지우고 파일만 다시 올린 뒤(02단계) 저장하세요. 1~2분이면 자동으로 다시 배포됩니다.
사진이 안 보이고 깨진 아이콘만 나와요
원인 · 파일 이름이 코드에 적힌 것과 다릅니다 index.html 안에 적힌 사진 이름과, 실제로 올린 사진 이름이 대소문자까지 똑같아야 합니다. Photo.JPGphoto.jpg는 서버에서 다른 파일입니다. 한글 이름이나 띄어쓰기가 있어도 같은 증상이 납니다. 영문 소문자로 바꿔서 다시 올리세요.
파일을 올렸는데 저장소가 비어 있어요
원인 · Commit changes를 누르지 않았습니다 깃허브는 파일을 끌어다 놓는 것만으로 저장되지 않습니다. 화면을 아래로 끝까지 내려 초록색 Commit changes 버튼을 눌러야 그때 저장됩니다. 02단계를 다시 하세요.
버셀 목록에 내 저장소가 안 보여요
원인 · 깃허브 권한이 일부 저장소로 제한돼 있습니다 버셀 Import Git Repository 화면에서 깃허브 옆 Configure(또는 Adjust GitHub App Permissions)를 누르고, All repositories를 선택한 뒤 저장하세요. 돌아오면 목록에 나타납니다.
내용을 고쳤는데 사이트는 그대로예요
원인 · 셋 중 하나입니다 ① 파일 이름이 index(1).html처럼 달라졌습니다 — 같은 이름으로 덮어써야 합니다.
② 아직 반영 중입니다 — 1~2분 기다리세요.
③ 브라우저가 옛날 화면을 기억하고 있습니다 — PC는 Ctrl+Shift+R, 휴대폰은 창을 완전히 닫았다가 다시 여세요.
주소가 여러 개인데 뭘 문자로 보내야 하나요
원인 · 확인용 주소와 진짜 주소가 따로 있습니다 버셀 대시보드 Domains 항목에 있는 짧은 주소가 진짜 주소입니다. 중간에 알 수 없는 영문·숫자가 길게 붙은 주소는 그때그때 확인용으로 만들어지는 임시 주소라, 나중에 안 열릴 수 있습니다. 문자에는 짧은 주소를 보내세요.
배포가 빨간 Error로 끝났어요
원인 · 설정을 하나 건드렸을 가능성이 큽니다 HTML 파일 한 장짜리 명함은 Application Preset(예전 이름 Framework Preset)이 Other여야 하고, 나머지는 비어 있어야 합니다. 버셀 SettingsBuild and Output Settings에서 직접 입력한 값이 있으면 지우고, Deployments에서 Redeploy를 누르세요.

참고로 무료 요금제는 하루 배포 횟수에 한도가 있습니다. 수정을 수십 번 반복하면 잠시 막힐 수 있으니, 고칠 내용을 모아서 한 번에 저장하는 습관이 좋습니다.