📌 시작하기 전에
지난시간에 Windows 환경에서 Gemini CLI를 활용해 Next.js 프로젝트를 개발하는 방법을 배웠습니다. 이제 개발한 프로젝트를 실제로 배포하여 전 세계 누구나 접속할 수 있는 웹사이트로 만들어보겠습니다.
서비스 소개
서비스 비용
개발과정
사용자 요청 흐름
서비스 아키텍처
이번 튜토리얼에서 배울 내용
- GitHub로 코드 버전 관리하기
- Gabia에서 도메인 구매하기
- Cloudflare로 도메인 DNS 관리하기
- Vercel에 프로젝트 배포하기
- 커스텀 도메인 연결하기
필요한 준비물
- ✅ Next.js 프로젝트 (지난주 수업에서 만든 프로젝트)
- ✅ GitHub 계정
- ✅ Vercel 계정 (GitHub 계정으로 가입)
- ✅ Gabia 계정 (도메인 구매용)
- ✅ Cloudflare 계정 (무료)
1단계: GitHub로 코드 관리하기
1-1. Git 설치 확인
Windows PowerShell 또는 명령 프롬프트를 열고 Git이 설치되어 있는지 확인합니다.
git --version
Git이 설치되어 있지 않다면 git-scm.com에서](https://git-scm.com/)에서) 다운로드하여 설치하세요.
1-2. GitHub 저장소 생성
- GitHub에](https://github.com)에) 로그인합니다
- 우측 상단의
+버튼 클릭 →New repository선택 - 저장소 정보 입력:
- Repository name:
my-nextjs-project(원하는 이름 입력) - Description: 프로젝트 설명 (선택사항)
- Public/Private: Public 선택 (무료 배포 시)
- Initialize 옵션들은 모두 체크하지 않음
- Repository name:
Create repository클릭
1-3. 로컬 프로젝트를 GitHub에 업로드
Next.js 프로젝트 폴더로 이동한 후 다음 명령어를 실행합니다:
# Git 초기화
git init
# .gitignore 파일 확인 (Next.js는 자동으로 생성됨)
# 없다면 생성 필요
# 모든 파일 스테이징
git add .
# 첫 커밋 생성
git commit -m "Initial commit: Next.js project setup"
# GitHub 저장소를 원격 저장소로 추가
git remote add origin [https://github.com/YOUR_USERNAME/my-nextjs-project.git](https://github.com/YOUR_USERNAME/my-nextjs-project.git)
# main 브랜치로 푸시
git branch -M main
git push -u origin main
💡 Tip:
YOUR_USERNAME을 본인의 GitHub 사용자명으로 변경하세요.
2단계: Gabia에서 도메인 구매하기
2-1. 도메인 검색 및 구매
- Gabia에](https://www.gabia.com/)에) 접속하여 로그인
- 상단 메뉴에서
도메인→도메인 등록클릭 - 원하는 도메인 이름을 검색합니다
- 예:
myproject.com,myawesomesite.kr
- 예:
- 사용 가능한 도메인 확인 후 장바구니에 추가
- 결제 진행 (1년 기준 약 15,000원~30,000원)
2-2. 도메인 소유 확인
구매 완료 후 나의 서비스 관리 → 도메인 메뉴에서 구매한 도메인을 확인할 수 있습니다.
3단계: Cloudflare로 도메인 DNS 관리하기
Cloudflare를 사용하면 무료 CDN, SSL 인증서, DDoS 방어 등의 혜택을 받을 수 있습니다.
3-1. Cloudflare에 도메인 추가
- Cloudflare에](https://www.cloudflare.com/)에) 로그인
Add a Site버튼 클릭- Gabia에서 구매한 도메인 입력 (예:
myproject.com) - 무료 플랜 선택 (
Freeplan) Continue클릭
3-2. DNS 레코드 가져오기
Cloudflare가 자동으로 기존 DNS 레코드를 스캔합니다.
- 스캔 완료 후
Continue클릭
3-3. 네임서버 변경
Cloudflare가 제공하는 네임서버 정보를 확인합니다:
예시:
alexa.ns.cloudflare.com
todd.ns.cloudflare.com
Gabia에서 네임서버 변경하기:
- Gabia 사이트 접속 →
나의 서비스 관리→도메인 - 해당 도메인의
관리버튼 클릭 네임서버메뉴 선택네임서버 변경클릭다른 네임서버 사용선택- Cloudflare에서 제공한 2개의 네임서버 입력
- 저장
⏰ 주의: DNS 전파에는 최대 24시간이 소요될 수 있지만, 보통 10분~1시간 이내에 완료됩니다.
3-4. Cloudflare에서 확인
Cloudflare로 돌아가서 Done, check nameservers 클릭
- 네임서버 변경이 확인되면 이메일로 알림이 옵니다
4단계: Vercel에 Next.js 프로젝트 배포하기
Vercel은 Next.js를 개발한 회사에서 제공하는 배포 플랫폼으로, Next.js와 완벽하게 호환됩니다.
4-1. Vercel 계정 생성 및 연결
- Vercel에](https://vercel.com/)에) 접속
Sign Up클릭- GitHub 계정으로 로그인 (권장)
- Vercel이 GitHub 저장소에 접근할 수 있도록 권한 부여
4-2. 프로젝트 가져오기
- Vercel 대시보드에서
Add New...→Project클릭 - GitHub 저장소 목록에서 배포할 프로젝트 선택
Import클릭
4-3. 프로젝트 설정
Vercel이 자동으로 Next.js 프로젝트를 감지합니다:
- Framework Preset: Next.js (자동 선택됨)
- Root Directory:
./(기본값) - Build Command:
npm run build(자동 설정) - Output Directory:
.next(자동 설정)
환경 변수가 필요한 경우 Environment Variables 섹션에서 추가:
예시:
NEXT_PUBLIC_API_URL = [https://api.example.com](https://api.example.com)
DATABASE_URL = your-database-url
4-4. 배포 시작
Deploy 버튼을 클릭합니다.
배포 진행 상황을 실시간으로 확인할 수 있으며, 보통 1~3분 내에 완료됩니다.
4-5. 배포 완료 확인
배포가 완료되면 Vercel이 자동으로 생성한 URL을 확인할 수 있습니다:
[https://my-nextjs-project-username.vercel.app](https://my-nextjs-project-username.vercel.app)
이 URL로 접속하여 웹사이트가 정상적으로 작동하는지 확인하세요!
5단계: 커스텀 도메인 연결하기
이제 Gabia에서 구매한 도메인을 Vercel 프로젝트에 연결해보겠습니다.
5-1. Vercel에서 도메인 추가
- Vercel 프로젝트 대시보드에서
Settings탭 클릭 - 왼쪽 메뉴에서
Domains선택 - 구매한 도메인 입력 (예:
myproject.com) Add클릭
5-2. DNS 레코드 설정
Vercel이 DNS 설정 방법을 안내합니다.
Cloudflare에서 DNS 레코드 추가:
- Cloudflare 대시보드에서 해당 도메인 선택
DNS→Records메뉴로 이동- 다음 레코드들을 추가합니다:
A 레코드 (루트 도메인용):
Type: A
Name: @
IPv4 address: 76.76.21.21
Proxy status: Proxied (오렌지 구름 아이콘)
CNAME 레코드 (www 서브도메인용):
Type: CNAME
Name: www
Target: cname.vercel-dns.com
Proxy status: Proxied
Save클릭
5-3. 도메인 확인
Vercel로 돌아가면 자동으로 도메인 설정을 확인합니다.
- ✅ 녹색 체크 표시가 나타나면 성공!
- 보통 수 분 내에 활성화되지만, 최대 48시간이 걸릴 수 있습니다.
5-4. SSL 인증서 자동 발급
Vercel과 Cloudflare가 자동으로 SSL 인증서를 발급하여 [https://](https://`) 연결을 지원합니다.
이제 [https://myproject.com으로](https://myproject.com`으로) 접속하면 여러분의 웹사이트를 볼 수 있습니다! 🎉
6단계: 자동 배포 설정
GitHub와 Vercel 연동의 장점
Vercel은 GitHub 저장소와 자동으로 연동되어 있어서:
- main 브랜치에 코드를 푸시하면 → 자동으로 프로덕션 배포
- 다른 브랜치에 푸시하면 → 미리보기 배포 생성
코드 업데이트 및 자동 배포
# 코드 수정 후
git add .
git commit -m "Update homepage design"
git push origin main
푸시 즉시 Vercel이 자동으로 새 버전을 빌드하고 배포합니다!
배포 상태 확인
- Vercel 대시보드에서 실시간 빌드 로그 확인 가능
- GitHub 커밋 옆에 Vercel 배포 상태가 표시됨
🎯 최종 체크리스트
배포가 완료되었다면 다음 사항들을 확인하세요:
- GitHub 저장소에 코드가 업로드되어 있다
- Gabia에서 도메인을 구매했다
- Cloudflare 네임서버로 변경이 완료되었다
- Vercel에 프로젝트가 배포되었다
- 커스텀 도메인이 연결되었다
- SSL 인증서가 활성화되었다 (https://))
- 웹사이트가 정상적으로 작동한다
🚀 다음 단계
성능 최적화
- 이미지 최적화: Next.js의
Image컴포넌트 활용 - 번들 크기 분석:
npm run build후 번들 크기 확인 - 캐싱 전략: Cloudflare의 캐싱 규칙 설정
모니터링 및 분석
- Vercel Analytics: 실시간 방문자 통계
- Google Analytics: 상세한 사용자 행동 분석
- Google Search Console: SEO 및 검색 성능 모니터링
보안 강화
- 환경 변수: 민감한 정보는 반드시 환경 변수로 관리
- Cloudflare 방화벽: DDoS 방어 규칙 설정
- 정기 업데이트: 종속성 패키지 정기 업데이트
💡 문제 해결 (Troubleshooting)
배포 실패 시
에러 메시지를 확인하세요:
- Vercel 대시보드의 Deployment 로그 확인
package.json의 빌드 스크립트 확인- 환경 변수가 제대로 설정되었는지 확인
# 로컬에서 빌드 테스트
npm run build
도메인이 연결되지 않을 때
- DNS 전파 확인: whatsmydns.net에서](https://www.whatsmydns.net)에서) 확인
- Cloudflare DNS 레코드가 올바른지 확인
- Vercel 도메인 설정에서 상태 확인
SSL 인증서 오류
- Cloudflare의 SSL/TLS 설정을
Full또는Full (strict)로 변경 - 최대 24시간 대기 후 재확인
📚 참고 자료
- Next.js 공식 문서](https://nextjs.org/docs))
- Vercel 배포 가이드](https://vercel.com/docs))
- Cloudflare DNS 설정 가이드](https://developers.cloudflare.com/dns/))
- GitHub 기초 사용법](https://docs.github.com/en/get-started))
마무리
축하합니다! 🎊
이제 여러분은 Next.js 프로젝트를 개발하고, GitHub로 코드를 관리하며, Vercel을 통해 전 세계에 배포하는 전체 프로세스를 완료했습니다.
앞으로 코드를 수정할 때마다 GitHub에 푸시만 하면 자동으로 배포되기 때문에 개발에만 집중할 수 있습니다.
이 과정이 어렵게 느껴졌다면 처음에는 정상입니다. 몇 번 반복하다 보면 자연스럽게 익숙해질 것입니다.
여러분의 웹 개발 여정에 행운을 빕니다! 🚀
작성일: 2025년 11월
대상: Next.js 초급
중급 개발자
소요 시간: 약 1
2시간 (DNS 전파 시간 제외)