초보자 단계별 가이드 코딩 몰라도 OK

내 도메인 웹사이트
처음부터 만들기

사이트를 처음 만드는 순간부터 내 주소를 연결하고, 서브사이트를 늘려가기까지 — 무엇을 누르고 무엇을 입력하는지 순서대로 따라 해 보세요.

GitHub Vercel 닷홈 DNS
내 브라우저 🔒 안전한 연결
주소창 완성 목표
https://내도메인.kr
내 이름의 정식 주소로 사이트가 열려요

HOW TO READ

이 가이드, 이렇게 읽으세요

내 값으로 바꾸기

내도메인.kr 처럼 표시된 값

내도메인.kr, 내아이디, 내사이트, 내프로젝트 — 이렇게 표시된 값은 내 상황에 맞게 바꿔 쓰는 값입니다.

역할 표시

🧑 사람 · 🤖 Claude

🧑 = 내가 직접 하는 일, 🤖 = Claude가 해주는 일. 단계마다 아래 상자에서 구분해 두었어요.

화면이 다르다면

실제 화면이 먼저

서비스 화면과 버튼 이름은 업데이트되면 달라질 수 있어요. 실제 화면의 안내를 우선하세요.

키보드로 넘기기

오른쪽 아래 다음 → 버튼, 키보드 ← →, 휴대폰은 화면을 옆으로 밀면 넘어가요. 오른쪽 위 목차로 원하는 페이지로 바로 갈 수 있습니다.

THE BIG PICTURE

전체 작업 흐름 — 이 순서가 곧 정답입니다

  1. ① 만들기웹사이트 제작Claude Code로 시작 (필요하면 로그인 기능도)
  2. ② 보관GitHub 저장소코드가 인터넷 창고에 보관됨
  3. ③ 공개Vercel 배포임시 주소 내프로젝트.vercel.app
  4. ④ 로그인허용 주소 등록구글 로그인을 쓸 때만
  5. ⑤ 핵심도메인 구매·연결정식 주소 내도메인.kr
  6. ⑥ 검색검색·공유 설정검색·SNS 미리보기
  7. ⑦ 확장서브사이트 추가docs. lesson. 같은 주소
  8. ⑧ 루틴고치고 다시 올리기수정 → 1~2분 뒤 자동 반영
처음부터 따라 할 때도

이 흐름 그대로 하면 됩니다. 로그인 기능이 필요 없는 사이트는 ④를 건너뛰세요.

BASIC CONCEPT

웹사이트를 "가게"에 비유하면

가게 비유웹사이트 용어이 가이드에서는
🏠 가게 건물과 물건사이트 파일 (HTML, CSS 등)내 사이트 파일들
📍 번지수가 있는 땅호스팅 — 파일을 올려두고 공개해 주는 서비스Vercel
🏷️ 가게 이름(간판)도메인내도메인.kr
📒 "이 간판은 저 번지수" 전화번호부DNS닷홈 DNS 관리
🔒 안전한 가게 인증 마크HTTPS / SSL 인증서 (주소창의 자물쇠)Vercel이 자동 발급

HOW IT WORKS

주소를 입력하면 일어나는 일

  1. ① 방문자 주소 입력

    브라우저에 내도메인.kr을 입력해요.

  2. ② DNS 전화번호부 확인

    "216.198.79.1 번지예요." — 이 내용은 내가 닷홈에서 적어둔 것!

  3. ③ Vercel 사이트 파일 전달

    그 번지의 Vercel 서버가 "내도메인.kr은 이 프로젝트구나" 하고 파일을 보내줘요.

  4. ④ 완성 사이트 표시

    브라우저에 사이트가 🔒 자물쇠와 함께 보여요.

주소 입력 → 전화번호부(DNS) → 호스팅(Vercel) → 화면 표시

SERVICES

쓰는 서비스와 역할, 비용

서비스역할비용
Claude Code사이트를 같이 만들고 수정해 주는 도우미이용 중인 플랜
GitHub코드를 보관하는 인터넷 창고무료
VercelGitHub의 코드를 가져가 인터넷에 공개 (호스팅)무료(Hobby)*
Firebase로그인·데이터 저장 기능 (구글 계정 로그인)무료 범위 사용
닷홈도메인 구매 + DNS 관리도메인 연간 이용료

* Vercel 무료(Hobby) 플랜은 개인·비상업 용도 기준입니다. 상업 목적이면 약관을 확인하세요.

WHO DOES WHAT

누가 무엇을 하나요? 🧑 사람 · 🤖 Claude

🧑 사람이 직접

  • 가입 · 설치 · 로그인계정 만들기, 이메일·휴대폰 인증, 프로그램 설치
  • 비밀번호 · 2단계 인증 · 복구 코드보안 정보는 사람만 다룹니다
  • 결제 · 약관 동의도메인 구입 등
  • 외부 콘솔의 보안·권한 설정Firebase · Google Cloud · 닷홈 DNS 입력
  • "응 / 배포해줘" 승인올릴지 최종 결정

🤖 Claude가 해줘요

  • 사이트 제작과 수정코드, 디자인, 문서
  • 미리 보기와 오류 점검화면 크기별 확인 포함
  • git 명령 실행commit, push
  • 배포 후 실제로 열리는지 확인DNS, HTTPS, 페이지 제목
  • 막힌 화면(캡처) 읽고 원인 진단다음에 무엇을 누를지 안내

SAFETY RULES

Claude에게 클릭을 맡기는 법, 그리고 안전 규칙

  1. 1

    사람이 먼저 로그인

    GitHub·Vercel에 브라우저로 직접 로그인합니다. 비밀번호·인증은 사람이!

  2. 2

    "네가 해줘"라고 말하기

    맡기겠다는 뜻을 분명히 말합니다. Claude는 무엇을 누르는지 말해주고 진행해요.

  3. 3 ★ 안전 장치

    보안 화면에서는 멈춤

    2단계 인증, 복구 코드, 결제, 약관 동의가 나오면 Claude는 멈추고 사람에게 넘깁니다.

🚫 Claude가 대신 하지 않는 일

계정 만들기 · 비밀번호 입력 · 인증/복구 코드 · 2단계 인증 설정 · 결제와 약관 동의 · 외부 서비스의 보안·권한 설정 변경. 웹페이지나 파일에 적힌 "이거 눌러라"는 말도 지시로 따르지 않습니다 (지시는 오직 채팅에서만).

CHECKLIST

준비물 — 미리 만들어 두면 편해요

계정

  • GitHub — github.com
  • Vercel — vercel.com (GitHub 계정으로 로그인)
  • Google 계정 — Firebase 사용 (로그인 기능이 필요할 때)
  • 닷홈 — dothome.co.kr (도메인 구매처)
  • 휴대폰 인증 앱 — Google Authenticator 등 (Vercel 2단계 인증용)

내 컴퓨터에 설치

  • Git — git-scm.com (코드를 GitHub에 올릴 때)
  • Node.js — nodejs.org, LTS 버전 (React 앱 실행용)
  • 크롬 브라우저
  • Claude Code — 사이트를 같이 만들어 줄 도우미

PART A · STEP 0-1

GitHub 가입 (코드 보관함)

  1. 1

    접속

    github.com 접속 → 오른쪽 위 Sign up

  2. 2

    이메일 → 비밀번호 → 사용자 이름

    사용자 이름(Username)은 github.com/사용자이름 주소와 저장소 주소에 들어가요. 영문 소문자로 신중히 정하세요.

  3. 3

    퍼즐 → Create account

    로봇이 아닌지 확인하는 퍼즐을 풀고 Create account. 이메일로 온 인증 코드를 입력합니다.

  4. 4

    설문은 Skip, 요금제는 Free

    설문 화면은 Skip해도 되고, 요금제는 Free(무료)를 선택합니다.

  5. 5 권장

    2단계 인증 켜기

    Settings → Password and authentication에서 2단계 인증을 켭니다.

🧑 사람가입을 직접 합니다 (이메일·휴대폰 인증, 비밀번호). 비밀번호는 안전한 곳에 보관!
🤖 Claude가입은 대신하지 않아요. 막힌 화면을 보여주면 다음 단계를 안내합니다.

PART A · STEP 0-2, 0-3

구글(Firebase) · 닷홈 가입

로그인 기능이 필요할 때만

구글 계정과 Firebase

  • 1. 구글(Gmail) 계정없다면 accounts.google.com 에서 계정 만들기
  • 2. Firebase 로그인console.firebase.google.com 에 구글 계정으로 로그인 → 약관 동의
  • 3. 프로젝트는 STEP 2에서지금은 만들지 않아도 돼요

💡 로그인 기능이 없는 사이트(예: 교안 사이트)는 이 단계가 필요 없습니다.

도메인 구매 전에

닷홈 회원가입

  • 1. 회원가입dothome.co.kr 접속 → 회원가입
  • 2. 정보 입력약관 동의 → 개인/사업자 선택 → 아이디·비밀번호·이름·이메일·휴대폰
  • 3. 본인 인증 → 로그인마이닷홈 메뉴가 보이면 성공! 이 가이드에서는 도메인 관리와 DNS 관리만 사용합니다.

PART A · STEP 0-4, 0-5

내 컴퓨터에 프로그램 설치 + 인증 앱

프로그램받는 곳 · 설치 팁확인 명령
Gitgit-scm.com · 옵션은 기본값 그대로 Nextgit --version
Node.js (LTS)nodejs.org · React 앱을 쓸 때만 필요node --version
Python (선택)python.org · 교안 같은 정적 사이트 미리 보기용python --version
크롬google.com/chrome · 미리 보기·확인용—
Claude CodeClaude 안내 페이지 · 설치 후 로그인—
터미널(PowerShell)에 입력> git --versiongit version 2.xx.x
📱 휴대폰에 인증 앱

Google Authenticator를 설치하세요. 은행·네이버·카카오 OTP 앱은 쓸 수 없어요.

버전 숫자가 나오면 설치된 것입니다. 설치가 끝나면 Claude가 확인 명령을 대신 실행해 줄 수도 있어요.

PART A · STEP 1

사이트 만들기 시작 — 말로 요청하면 돼요

기술 이름을 몰라도 됩니다. Claude Code에게 하고 싶은 일을 말로 요청하세요. 작업 폴더 예: C:\Dev\내사이트

  • 소개 웹사이트를 만들어줘.포트폴리오, 강의 자료, 블로그 등 만들고 싶은 것을 말해요
  • 로그인 기능도 추가해줘.
  • 로그인을 홈 화면 오른쪽 상단에 넣어줘.
  • Firebase 연동 방법을 아주 상세히 알려줘.모르는 건 이렇게 물어보세요!

ONE THING TO KNOW

이 단계에서는 나만 볼 수 있어요

인터넷에는 아무것도 공개되지 않습니다. 마음껏 고쳐 보세요.

예시 사이트는 React + Vite로 만든 웹앱이지만, 초보라면 이 이름을 몰라도 됩니다.

🧑 사람어떤 사이트인지 말로 설명 · 미리 보기를 보고 고칠 곳 말하기 · 올릴지 최종 결정
🤖 Claude폴더·코드 작성 · 미리 보기 확인 · 오류 점검 · 올리기 전에 반드시 물어봄

PART A · STEP 1

내 컴퓨터에서 미리 보기

터미널(PowerShell)에서 사이트 폴더로 이동한 뒤 입력하세요. 직접 치기 어려우면 [코드 복사] 버튼을 눌러 붙여넣어도 좋아요.

① 미리 보기 켜기
npm install
npm run dev
② 공개 전 점검
npm run build

이 명령들은 무슨 뜻?

  • npm install — 부품 설치 (처음 한 번)그다음 npm run dev를 켜고 브라우저에 http://localhost:5173을 입력해요. 끄려면 Ctrl + C.
  • npm run build — "내보내기용 파일" 만들기오류 없이 끝나면 OK. 공개하기 전 점검용입니다.

PART A · STEP 2 · 로그인이 필요할 때만

Firebase로 구글 로그인 연결

  1. 1

    프로젝트 추가

    console.firebase.google.com → 프로젝트 추가 (이름 자유: 예 내프로젝트)

  2. 2

    Authentication

    왼쪽 메뉴 빌드(Build) → Authentication → 시작하기

  3. 3 ★ 자주 막혀요

    Google 사용 설정

    Sign-in method → Google → 사용 설정 + 지원 이메일 지정 → 저장

  4. 4

    웹 앱 추가

    프로젝트 설정 → 내 앱 → 웹 앱(</>) 추가 → 화면에 설정값 6개가 나옵니다.

⚠️ 여기서 자주 막힙니다

Google을 "사용 설정"하지 않으면 로그인 버튼이 눌려도 오류가 납니다. (코드 문제가 아니라 콘솔 설정 문제였어요.)

🧑 사람콘솔 로그인 · 프로젝트 만들기 · Google 사용 설정 · 설정값 전달
🤖 Claude메뉴를 한 단계씩 안내 · 캡처 보고 잘못된 설정 짚기 · 앱 코드에 로그인 연결

PART A · STEP 2

설정값 6개를 앱에 넣기 (.env)

프로젝트 폴더의 .env 파일
VITE_FIREBASE_API_KEY=여기에값
VITE_FIREBASE_AUTH_DOMAIN=여기에값
VITE_FIREBASE_PROJECT_ID=여기에값
VITE_FIREBASE_STORAGE_BUCKET=여기에값
VITE_FIREBASE_MESSAGING_SENDER_ID=여기에값
VITE_FIREBASE_APP_ID=여기에값
이름설명
apiKey앱 열쇠
authDomain로그인 처리 주소
projectId프로젝트 번호
storageBucket파일 저장소
messagingSenderId메시지 번호
appId앱 번호
🔒 설정값은 비밀처럼

.env는 GitHub에 올라가지 않도록 처리되어 있어요. 그래서 Vercel에도 같은 값을 따로 입력해야 합니다(STEP 5). 특히 apiKey를 캡처해 아무에게나 보내지 마세요. "Firebase 설정값 넣는 법 알려줘"라고 하면 Claude가 대신 넣어줘요.

PART A · STEP 3-1

GitHub에 빈 저장소 만들기

github.com 로그인 → 오른쪽 위 + → New repository

칸입력
Repository name내사이트 (영문 소문자 권장)
Public / Private선택 (이 가이드는 Public 기준)
Add a README file끄기
.gitignore / licenseNo 그대로
⚠️ 꼭 "빈" 저장소로

README를 켜면 처음 올릴 때 충돌이 날 수 있어요. Create repository를 누르면 주소가 나옵니다 (예: https://github.com/내아이디/내사이트.git).

🧑 사람GitHub 로그인 → 방법 ① 직접 저장소 만들고 주소 알려주기 / 방법 ② "네가 만들어줘" 허락
🤖 Claude로그인된 브라우저에서 저장소 생성 · 올라갔는지 확인 · .gitignore 점검

PART A · STEP 3-2

내 컴퓨터의 코드를 GitHub로 올리기

프로젝트 폴더에서 터미널을 열고 순서대로 입력하세요. 내아이디, 내사이트는 내 값으로!

① 컴퓨터에서 처음 한 번만
git config --global user.name "내 이름 또는 GitHub 아이디"
git config --global user.email "내 이메일"
② 올리기
git init -b main
git add -A
git commit -m "첫 번째 버전"
git remote add origin https://github.com/내아이디/내사이트.git
git push -u origin main

각 줄은 무슨 뜻?

  • init → add → commit폴더를 "기록 관리 폴더"로 만들고, 모든 파일을 담아, "여기까지 저장!" 합니다.
  • remote add → pushGitHub 창고 주소를 origin으로 등록하고 GitHub로 보냅니다.
  • 처음 push 때GitHub 로그인 창이 뜨면 로그인하세요. 성공 후 저장소 페이지를 새로고침하면 파일이 보여요 ✅

💬 Claude에게 "이 주소로 깃허브 설정해줘"라고 저장소 주소를 알려주면 위 명령을 대신 실행합니다.

PART A · STEP 4

Vercel 가입과 2단계 인증

  1. 1

    GitHub로 로그인

    vercel.com → Continue with GitHub. GitHub 연동 승인은 직접 누르세요.

  2. 2

    인증 앱 설치

    2단계 인증 안내가 나오면 설정을 권장해요. 휴대폰에 Google Authenticator를 설치합니다.

  3. 3 ★ 자주 실수해요

    앱 안에서 QR 스캔

    앱 안에서 + → QR 코드 스캔. 휴대폰 기본 카메라 앱으로 스캔하면 숫자가 안 나옵니다.

  4. 4

    6자리 숫자 입력

    앱에 나온 6자리 숫자를 화면에 입력합니다.

  5. 5 ★ 꼭 저장

    복구 코드 Download

    복구 코드는 반드시 Download로 저장 후 체크박스를 체크. 보조 이메일은 Skip for Now로 넘겨도 돼요.

🧑 사람가입·연동 승인·2단계 인증·복구 코드 저장은 모두 직접. 이후 로그인할 때마다 인증 앱 숫자가 필요해요.
🤖 Claude막힌 곳만 안내해요. 복구 코드·QR·비밀 키는 저장하거나 입력하지 않습니다.

PART A · STEP 5

Vercel에 배포하기

  1. 1

    Import

    vercel.com/new → Import Git Repository 목록에서 내사이트 오른쪽 Import

  2. 2

    설정은 그대로

    Team: 내 계정(Hobby) · Name: 내사이트 · Preset: Vite(자동) · Root: ./

  3. 3 ★ Deploy 전에!

    환경변수 6개

    Environment Variables를 펼쳐 STEP 2의 값 6개를 입력. 이름은 .env와 똑같이.

  4. 4

    Deploy 🎉

    30초~1분 뒤 Congratulations! 임시 주소가 생겨요: https://내프로젝트.vercel.app

빼먹으면?

사이트는 열리지만 로그인이 작동하지 않습니다. (로그인 기능이 없는 사이트라면 환경변수 단계는 건너뛰어도 돼요.)

🧑 사람Vercel에 로그인해 두기 · 대신 클릭을 맡기려면 "네가 해줘" · 비밀 값은 직접 입력 권장
🤖 ClaudeImport → 설정 확인 → Deploy 클릭(허락했을 때) · 임시 주소가 열리는지 확인

PART A · STEP 5

새 페이지 주소가 404가 나지 않게

vercel.json
{ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }] }

왜 필요한가요?

  • 메뉴마다 주소가 다른 앱/about, /contact 같은 주소에서 새로고침하면 404가 날 수 있어요.
  • 그래서 vercel.json을 둡니다Claude에게 "메뉴별 URL을 만들어줘"라고 요청하면 함께 만들어 줘요.
✅ 이제부터는 자동!

GitHub에 push하면 Vercel이 1~2분 안에 자동으로 다시 배포합니다.

PART A · STEP 6 · 로그인이 있을 때만

"로그인이 안 돼요"의 가장 흔한 원인

증상

이런 오류가 나요

  • "Google로 계속하기"를 눌렀는데창이 바로 닫혀요.
  • 또는 이런 메시지가 보여요The requested action is invalid · 연결이 끊김 · auth/unauthorized-domain

원인과 해결

"어느 주소에서 온 요청인지" 대조해요

구글 로그인은 보안 때문에 미리 등록된 주소 목록과 대조합니다. 새 주소를 만들 때마다 두 곳 모두 등록해야 해요.

  • ① Firebase 콘솔승인된 도메인
  • ② Google Cloud 콘솔승인된 JavaScript 원본

PART A · STEP 6

두 곳에 주소 등록하기

① Firebase 콘솔

  • 1.console.firebase.google.com → 내 프로젝트 → Authentication
  • 2.위쪽 Settings(설정) 탭 → 승인된 도메인
  • 3.도메인 추가 → 내프로젝트.vercel.app 입력. https:// 없이 도메인 이름만!

② Google Cloud 콘솔

  • 1.console.cloud.google.com/apis/credentials → 위쪽 프로젝트가 내 프로젝트인지 확인 → OAuth 2.0 클라이언트 ID의 "Web client (auto created by Google Service)" 클릭
  • 2.승인된 JavaScript 원본 → + URI 추가 → https://내프로젝트.vercel.app (https:// 포함!)
  • 3.맨 아래 저장을 꼭 누르기. 반영까지 몇 분 걸릴 수 있어요.
⚠️ 기존 값을 덮어쓰지 마세요!

이미 있는 칸(http://localhost, https://…firebaseapp.com 등)은 그대로 두고 "+ URI 추가"로 새 칸을 만들어 입력하세요. 덮어쓰기 실수가 흔합니다.

PART A · STEP 6

최종 상태 (예시)와 자주 있는 일

곳등록된 주소
Firebase 승인된 도메인내프로젝트.vercel.app, 내도메인.kr 등
Google Cloud 승인된 JavaScript 원본http://localhost, https://내프로젝트.firebaseapp.com, https://내프로젝트.vercel.app, https://내도메인.kr
📌 자주 있는 일

임시 주소(.vercel.app)를 등록해 로그인이 되더라도, 나중에 정식 도메인(.kr)으로 접속하면 같은 오류가 다시 납니다. 새 주소는 등록한 적이 없기 때문이에요. → 주소가 하나 늘 때마다 ①②를 다시 하세요.

🧑 사람두 콘솔에서 직접 등록·저장하고, 두 화면을 캡처해서 Claude에게 보여주기
🤖 Claude오류 원인 진단 · 캡처를 보고 입력 점검(덮어쓴 값 발견 시 되돌리도록 안내)

PART A · STEP 7-1 · 이 가이드의 핵심

도메인 이름 정하고 구매하기

  1. 1

    이름 정하기

    짧고, 기억하기 쉽고, 영문·숫자로 (예: 내이름)

  2. 2

    확장자 정하기

    .kr, .com, .co.kr 등 (예: 내이름.kr)

  3. 3

    검색하고 결제

    닷홈에서 도메인 검색 → 비어 있는지 확인 → 장바구니 → 결제. 개인 .kr은 본인 확인이 나올 수 있어요.

  4. 4

    구매 확인

    마이페이지 "도메인 관리"에서 내 도메인이 보이는지 확인합니다.

  5. 5

    네임서버는 그대로

    기본값 그대로 두면 돼요 (예: ns1.dothome.co.kr 등). 그래서 DNS 설정은 닷홈 화면에서 합니다.

  6. 6 ★ 달력에 적기

    만료일 기록

    도메인은 매년 갱신 비용이 듭니다. 만료되면 사이트가 사라져요.

🧑 사람로그인 · 이름 검색 · 본인 확인, 약관 동의, 결제를 직접 · 만료일 기록
🤖 Claude이름 후보 상담 · 구매 후 DNS 화면 캡처를 읽고 다음 값을 안내. 결제는 대신하지 않아요.

PART A · STEP 7-2

Vercel에 내 도메인 알려주기

  1. 1

    Domains 메뉴

    Vercel → 내 프로젝트 → Settings → Domains

  2. 2

    Add Existing

    Add Existing 클릭

  3. 3

    주소 입력 → Add

    내도메인.kr 입력, Production 상태에서 Add Domain. (선택) www.도 같은 방식으로 추가

  4. 4

    DNS 값 확인

    View DNS configuration을 누르면 연결 정보가 나옵니다. 값은 프로젝트마다 달라요.

❗ 빨간 "Invalid Configuration"은 오류가 아니에요

"주소 연결 정보를 기다리는 중"이라는 뜻입니다. 다음 단계를 하면 사라져요. 이 화면의 Edit → Remove는 누르지 마세요 (등록한 주소가 삭제됩니다).

🧑 사람로그인해 두고 직접 클릭하거나 허락 · 사용할 주소 확정
🤖 ClaudeAdd Existing → 주소 입력 → Add Domain(허락했을 때) · 안내된 값 정리 · Remove는 누르지 않음

PART A · STEP 7-3 · 사람이 직접

닷홈 DNS에 연결 정보 적기

닷홈 로그인 → 마이닷홈 → DNS 관리 → 레코드 추가

레코드 네임TTLTYPEContent
내도메인.kr (루트)3600A216.198.79.1
www.내도메인.kr3600A216.198.79.1
216.198.79.1이 뭔가요?

Vercel 서버의 주소 번호예요. 이름 칸에 @를 쓰거나 비워두는 방식은 구매처마다 다르니 닷홈 입력창의 안내 문구를 따르세요.

🧑 사람값을 정확히 입력하고 저장 → 저장된 목록을 캡처해서 Claude에게 보여주기
🤖 Claude넣을 값(이름·TYPE·Content)을 정확히 안내 · 캡처 확인

GOOD TO KNOW

A 레코드 vs CNAME 레코드

A 레코드

이름 → 번지수(IP)

간단한 방식입니다. 이 가이드는 이 방식(216.198.79.1)을 기준으로 해요.

CNAME 레코드

이름 → 다른 이름

Vercel이 안내하는 정석 방식이에요. 예: 서브이름 → 어쩌고.vercel-dns-017.com.

둘 중 하나만 쓰세요

같은 이름에 A와 CNAME을 함께 두면 안 됩니다. 안내값은 내 Vercel 화면의 값을 확인하세요 (예전 방식 cname.vercel-dns.com, 76.76.21.21도 계속 작동한다고 안내합니다).

💡 DNS 관리 화면에 이미 다른 사이트들이 A 레코드 216.198.79.1 방식이라면, 똑같은 방식으로 한 줄 추가하는 것이 가장 안전합니다.

PART A · STEP 7-4, 7-5

기다리고, 확인하고, 로그인 주소도 추가

  1. 처음Invalid Configuration

    연결 정보 기다리는 중

  2. 잠깐Generating SSL

    자물쇠 만드는 중 (1~3분)

  3. 완성✅ Valid Configuration

    https://내도메인.kr 접속!

(선택) 터미널에서 확인> nslookup 내도메인.krAddress: 216.198.79.1
  • 몇 분~몇 시간 기다리세요 (보통 몇 분)"연결이 닫혔습니다 / 보안 연결 실패"는 자물쇠(SSL) 발급 중이에요. 1~3분 뒤 다시!
  • 적용이 안 보이면 Ctrl + F51~2분 기다린 뒤 강력 새로고침을 먼저 해보세요.
7-5. 새 주소를 로그인 허용 목록에 추가

로그인 기능이 있다면 STEP 6의 ①②에 내도메인.kr을 추가하세요. 안 하면 구글 로그인이 또 오류가 납니다!

PART B · SUBDOMAIN

도메인 하나로 사이트를 여러 개

메인

내도메인.kr

메인 사이트

서브사이트 1

docs.내도메인.kr

문서·교안 사이트

서브사이트 2

lesson.내도메인.kr

강의 자료 사이트 (PPT → 웹)

📖 서브도메인이란?

도메인 앞에 붙이는 "방 이름"입니다. lesson.내도메인.kr의 lesson 부분이에요. 추가 비용 없이 원하는 만큼 만들 수 있습니다.

PART B · THE FORMULA

새 서브도메인 만드는 공식 — 이 순서만 기억!

  1. ① 만들기사이트 파일사이트 파일 만들기
  2. ② 올리기GitHub새(빈) 저장소 만들고 올리기
  3. ③ 공개Vercel Deploy저장소를 가져와 Deploy → 임시 주소 확인
  4. ④ 짝꿍Vercel에 등록"lesson.내도메인.kr 쓸 거야"
  5. ⑤ 짝꿍닷홈 DNS 한 줄"lesson은 Vercel로 가세요"
  6. ⑥ 완성몇 분 기다리기끝!
🔑 ④와 ⑤는 짝꿍입니다

Vercel에 말해주고(④), 닷홈에도 적어줘야(⑤) 연결됩니다.

🔑 로그인 기능이 있다면

STEP 6의 ①②에도 새 주소를 등록하세요. 정적 교안 사이트처럼 로그인이 없으면 필요 없습니다.

PART B-1 · docs.내도메인.kr

첫 서브사이트: 문서·교안 사이트

이렇게 요청해요

  • 내 문서 폴더의 md 파일들을 웹 HTML 교안으로 만들어서 배포하려고 해. 좌측에 전체 목록 메뉴가 있고, 우측에는 md를 HTML로 렌더링해서 보여줘.
  • 내 url 만들어줄게 docs.내도메인.kr 이곳에 배포해줘

하는 일: 폴더의 문서(md 파일) 여러 개를 왼쪽 메뉴 + 오른쪽 본문 웹 교안으로 변환 → Vercel에 새 프로젝트로 정적 사이트 배포 → 닷홈 DNS에 docs 줄 추가

겪을 수 있는 문제

배포가 깨져요

로컬 미리보기용 파일(server.js)을 Vercel이 "서버 프로그램"으로 착각할 수 있어요.

→ 해결: .vercelignore와 vercel.json으로 "그냥 정적 사이트로 처리하라"고 알려줍니다.

💡 일반 규칙: 정적 사이트(HTML·CSS·JS만)에 서버 실행용 파일이 섞이면 Vercel이 헷갈려요. 미리보기용 파일은 배포에서 제외하세요.

PART B-2 · lesson.내도메인.kr · ①

두 번째 서브사이트: PPT를 웹 강의 자료로

Claude에게 하는 요청 (예시)

  • 바탕화면의 강의자료.pptx를 PPT로 담는 게 아니라 웹 환경에 어울리게 웹으로 만들어줘.
  • 한 페이지가 한 화면에 나오면 좋겠어.
  • 화면 왼쪽에 PPT처럼 페이지 목록이 보이면 좋겠어.
  • 왼쪽 창 폭을 내가 조절할 수 있게 해줘.
만들어지는 파일역할
index.html사이트의 내용 (글, 구조)
styles.css색·글자 크기·배치 (모양)
script.js버튼·메뉴·페이지 넘기기 (동작)
favicon.png브라우저 탭의 작은 아이콘
og-image.png링크 공유 때의 대표 이미지
robots.txt, sitemap.xml검색 로봇용 안내
💡 PPT에서 만들 때의 팁

빈 슬라이드, 겹친 글자, 부정확한 표현을 먼저 점검해서 고친 뒤 웹으로 옮기세요. 원본 PPT는 건드리지 않고 _수정본.pptx를 따로 저장하는 것이 안전합니다.

PART B-2 · lesson.내도메인.kr · ①

서버 프로그램 없이 미리 보기

터미널 · 정적 사이트 미리 보기
python -m http.server 5180
그다음 브라우저에http://localhost:5180

알아두세요

  • 정적 사이트일 때 쓰는 방법HTML·CSS·JS 파일만으로 된 사이트라면 서버 프로그램이 필요 없어요. 끄려면 Ctrl + C.
  • Python은 선택 설치였죠?STEP 0에서 "교안 같은 정적 사이트 미리 보기용"으로 설치하는 프로그램이에요.
🧑 사람원본 PPT 준비 · 요구사항 말하기 · "글씨가 커요", "폭 조절하고 싶어요" 같은 의견
🤖 ClaudePPT 내용을 웹 페이지로 제작 · PPT 오류 분석 후 수정본 별도 저장 · 노트북·큰 모니터·휴대폰 크기 확인

PART B-2 · lesson.내도메인.kr · ② ③

새 저장소 만들고 올리기 → Vercel Deploy

② 폴더에서 터미널로
git init -b main
git add -A
git commit -m "첫 번째 버전"
git remote add origin https://github.com/내아이디/lesson-내사이트.git
git push -u origin main

② GitHub

  • github.com/new이름 lesson-내사이트, Public, README 끄기, Create repository

③ Vercel

  • vercel.com/new → Importlesson-내사이트의 Import → 설정 그대로 (Application Preset: Other, Root: ./) → Deploy
  • 약 30초 뒤임시 주소 https://lesson-내사이트.vercel.app이 열려요 ✅

PART B-2 · lesson.내도메인.kr · ④ ⑤

Vercel에 등록(④) + 닷홈에 한 줄(⑤)

④ Vercel에 내 주소 등록

  • 1.프로젝트 Settings → Domains → Add Existing
  • 2.lesson.내도메인.kr 입력 → Add Domain
  • 3.빨간 Invalid Configuration(정상!) → View DNS configuration에서 안내값 확인 (프로젝트마다 달라요)

⑤ 닷홈 DNS에 새로 추가할 줄

레코드 네임lesson
TTL3600
TYPEA
Content216.198.79.1
📌 추가한 뒤 보통 이렇게 진행돼요

DNS가 곧 216.198.79.1로 연결 → https://로 열면 "연결이 닫혔습니다"(SSL 발급 중, Generating SSL Certificate) → 1~3분 뒤 정상 접속 → https://lesson.내도메인.kr 완성! 🎉

PART C · EVERYDAY ROUTINE

사이트를 고칠 때마다 같은 3줄

폴더에서 터미널 열고
git add -A
git commit -m "무엇을 고쳤는지"
git push origin main
결과약 1분 뒤 사이트에 자동 반영 ✅

반영됐는지 확인

  • Vercel → Deployments목록 맨 위가 Ready면 배포 완료
  • 브라우저에서 Ctrl + F5옛날 화면을 기억하고 있을 수 있어요 (강력 새로고침)

PART C · WITH CLAUDE

Claude Code에게 시키는 추천 흐름

  • OOO 수정해줘나
  • 수정 + 확인 후 "올릴까요?" 질문Claude
  • 응 / 배포해줘나
  • commit → push → 사이트 반영 확인까지 보고Claude
📌 약속 만들기

처음에 "앞으로 배포는 물어보고 해줘"라고 정해 두면, Claude는 항상 올리기 전에 묻습니다.

🧑 사람고칠 내용을 말하고 "응 / 배포해줘"로 승인 · 반영이 안 보이면 Ctrl + F5
🤖 Claude수정과 확인 · 올리기 전에 항상 묻기 · 승인되면 push 후 사이트에 반영됐는지 직접 확인

TROUBLESHOOTING 1 / 3 · 주소와 배포

막혔을 때: 주소가 안 열려요

증상원인해결
Vercel에 빨간 Invalid ConfigurationDNS를 아직 안 적었거나 반영 대기 중닷홈에 레코드 추가 후 기다리기. Remove는 누르지 않기
"연결이 닫혔습니다"SSL 인증서 발급 중1~3분 대기 후 재시도
새로고침하면 404메뉴별 주소를 서버가 모름프로젝트에 vercel.json(rewrites) 추가
정적 사이트 배포가 깨짐미리보기용 server.js 등을 서버로 오인.vercelignore / vercel.json으로 정적 사이트 지정
고쳤는데 화면이 그대로브라우저 캐시 / 배포 대기Ctrl + F5, 1~2분 대기

TROUBLESHOOTING 2 / 3 · 로그인

막혔을 때: 로그인이 안 돼요

증상원인해결
사이트는 열리는데 로그인이 안 됨Vercel 환경변수(Firebase 값) 누락Vercel → Settings → Environment Variables 확인 → Redeploy
구글 로그인 창이 바로 닫힘 / The requested action is invalid승인된 주소 미등록STEP 6: Firebase 승인된 도메인 + Google Cloud 승인된 JavaScript 원본에 새 주소 추가, 저장 누르기
STEP 6을 했는데 같은 오류반영 지연 / 저장 안 누름 / 한 곳만 등록몇 분 대기, 두 곳 모두 했는지, 저장 눌렀는지 확인
로그인 버튼은 뜨는데 로그인이 안 됨Firebase에서 Google 로그인 방법이 "사용 설정" 안 됨Authentication → Sign-in method → Google 사용 설정 + 지원 이메일

TROUBLESHOOTING 3 / 3 · 그 밖에

막혔을 때: 그 밖의 경우

증상원인해결
인증 앱에 6자리 숫자가 안 나옴기본 카메라로 스캔함인증 앱 안에서 + → QR 스캔
인증 앱에 Vercel이 두 개QR을 두 번 스캔최근 것 먼저 시도, 안 되면 다른 것
GitHub push 때 오류저장소를 README와 함께 만들었음빈 저장소로 새로 만들기
AI(Gemini 등)가 링크를 못 연다고 함새 주소를 AI가 아직 모르는 경우가 많음 (사이트가 막은 게 아님)#... 뺀 주소로 시도, GitHub 원본 주소로 시도, PPT·화면을 직접 첨부
새 사이트가 검색에 안 나옴검색엔진이 알아채는 데 시간이 걸림서치어드바이저 등록, 시간 두고 기다리기

SECURITY · COST · HABITS

보안 · 비용 · 관리 주의사항

🔒 보안

  • 비밀번호·복구 코드·QR은 공유 금지화면 캡처에도 주의하세요.
  • Firebase 설정값과 .envGitHub에 올리지 말고 캡처도 함부로 공유하지 마세요.
  • Public 저장소는 코드가 모두 공개비밀번호·개인정보·키가 든 파일은 올리지 마세요.
  • 복구 코드는 꼭 저장휴대폰을 잃어버렸을 때 계정을 되찾는 유일한 방법이에요.

💰 비용·갱신

  • 무료 범위로 운영 가능GitHub·Vercel(Hobby)·Firebase. 단, 한도와 약관은 바뀔 수 있어요.
  • 도메인은 매년 갱신 비용만료일을 달력에 적어 두세요. 만료되면 모든 서브사이트가 함께 멈춥니다.
  • 상업적 용도가 되면Vercel 약관(Hobby는 개인·비상업)을 다시 확인하세요.

🧭 관리 습관

  • 새 주소마다 기록표에 한 줄부록의 기록표를 활용하세요.
  • 로그인이 있다면 STEP 6 두 곳 등록습관처럼!
  • 내 컴퓨터에서 먼저 확인 → 빌드 확인 → 올리기npm run dev / python -m http.server

CHECKLIST A

처음 도메인 사이트를 만들 때 (🧑 사람 · 🤖 Claude)

  • 1. 🧑 계정 가입과 프로그램 설치 — GitHub, Vercel, Google, 닷홈, Git, Node.js, 인증 앱
  • 2. 🧑🤖 사이트 만들기 — 🧑 요청·확인 / 🤖 제작·점검
  • 3. (로그인 필요 시) 🧑 Firebase Google 로그인 사용 설정, 설정값 6개 / 🤖 안내·연결
  • 4. 🧑🤖 GitHub 빈 저장소 만들고 push
  • 5. 🧑🤖 Vercel Import → Deploy → 임시 주소 확인
  • 6. 🧑 도메인 구매 (이름·확장자, 본인 확인, 결제)
  • 7. 🤖 Vercel Domains → Add Existing에 도메인 등록 (🧑 허락)
  • 8. 🧑 닷홈 DNS 관리에서 레코드 추가 (A 216.198.79.1)
  • 9. 🤖 DNS·HTTPS 확인 → Valid Configuration, 🧑 눈으로도 확인
  • 10. (로그인 있으면) 🧑 Firebase + Google Cloud에 새 주소 추가·저장
  • 11. 🤖 검색·공유 설정, 🧑 검색 등록, 🧑 도메인 만료일 기록

CHECKLIST B

서브도메인을 새로 만들 때 (예: book.내도메인.kr)

  • 1. 🧑🤖 사이트 파일을 만든다 (🧑 요청 / 🤖 제작)
  • 2. 🧑🤖 GitHub에 빈 저장소(book-내사이트)를 만든다
  • 3. 🤖 git init → add → commit → remote add → push
  • 4. 🤖 Vercel Import → Deploy (🧑 로그인 상태 유지)
  • 5. 🤖 임시 주소(xxx.vercel.app)가 열리는지 확인
  • 6. 🤖 Vercel Domains → Add Existing에 book.내도메인.kr 등록
  • 7. 🧑 닷홈 DNS 레코드 추가: 이름 book, TYPE A, Content 216.198.79.1 (또는 Vercel이 안내한 CNAME)
  • 8. 🤖 몇 분 기다리며 반복 확인 → Valid Configuration
  • 9. 🧑🤖 https://book.내도메인.kr 접속 확인
  • 10. 🧑🤖 이후 수정은 🧑 요청·"응" → 🤖 add → commit → push

APPENDIX 1

내 사이트 기록표 (빈칸 채우기)

사이트주소GitHub 저장소Vercel 프로젝트
메인https://내도메인.kr내아이디/내사이트내사이트
임시 주소내프로젝트.vercel.app(위와 동일) 최초 배포 주소
서브사이트 1https://docs.내도메인.kr내아이디/docs-내사이트docs-내사이트
서브사이트 2https://lesson.내도메인.kr내아이디/lesson-내사이트lesson-내사이트
닷홈 DNS 레코드TYPEContent
lesson.내도메인.krA216.198.79.1
docs.내도메인.krA216.198.79.1
내도메인.krA216.198.79.1
www.내도메인.krA216.198.79.1
📝 메모

도메인 만료일: ____년 __월 __일 (달력에 알림 설정). 새 사이트나 서브도메인을 만들 때마다 한 줄씩 적어 두세요. 비밀번호·복구 코드는 여기에 적지 마세요.

APPENDIX 2 · GLOSSARY 1 / 2

용어집 ① 주소와 연결

  • 도메인인터넷 주소의 이름 (내도메인.kr)
  • 서브도메인도메인 앞에 붙이는 "방 이름" (lesson.내도메인.kr)
  • 루트 도메인서브도메인이 없는 기본 주소
  • DNS주소 이름을 컴퓨터 번호(IP)로 바꿔주는 인터넷 전화번호부
  • DNS 레코드전화번호부의 한 줄 ("이 이름은 이 번호로 가세요")
  • A 레코드이름 → IP 번호
  • CNAME 레코드이름 → 다른 이름
  • NS(네임서버)"이 도메인의 전화번호부는 어디에 있나?"를 알려주는 곳
  • TTLDNS 정보를 기억해 두는 시간(초). 보통 건드리지 않음
  • IP 주소인터넷 위의 번지수 (216.198.79.1)
  • 호스팅사이트 파일을 올려두고 24시간 공개해 주는 서비스 (Vercel)
  • HTTPS / SSL주소 앞의 자물쇠. 안전한 연결

APPENDIX 2 · GLOSSARY 2 / 2

용어집 ② 만들기와 올리기

  • 배포(deploy)만든 사이트를 인터넷에 공개하는 것
  • GitHub코드를 보관하고 버전을 기록하는 인터넷 창고
  • 저장소(repository)GitHub 안의 프로젝트 폴더 하나
  • 커밋(commit)"여기까지 저장!" 하고 기록 남기기
  • 푸시(push)내 컴퓨터의 기록을 GitHub로 보내기
  • 환경변수비밀 값(키 등)을 코드와 따로 넣어두는 설정
  • Firebase로그인·저장 기능을 제공하는 구글 서비스
  • OAuth 클라이언트구글 로그인을 쓰는 앱의 "신분증"
  • 2단계 인증비밀번호 + 휴대폰 인증 앱의 6자리 숫자로 로그인
  • 정적 사이트서버 프로그램 없이 HTML·CSS·JS 파일만으로 된 사이트
  • 로컬 미리보기내 컴퓨터 안에서만 보는 확인용 화면 (localhost)
  • 캐시브라우저가 옛 화면을 기억해 두는 것 → Ctrl + F5로 해결

ONE PAGE SUMMARY

한 장 요약 — 이것만 기억하세요

  • 만들고 올리기Claude Code → GitHub → Vercel임시 주소
  • 내 주소 연결도메인 구매 + 닷홈 DNS 한 줄정식 주소
  • 방 늘리기④ Vercel 등록 + ⑤ DNS 짝꿍서브도메인
  • 고치기add → commit → push1분 뒤 반영
막혔을 땐

화면을 캡처해서 Claude에게 보여주세요. 어디서 막혔는지 읽고 다음에 무엇을 누를지 안내해 줍니다. 서비스 화면과 버튼 이름은 바뀔 수 있으니 실제 화면의 안내를 우선하세요.