도메인과 셀프호스팅 (Domain & Self-hosting)
도메인은 인터넷에서 내 서비스를 찾을 수 있는 고유 주소이고, 셀프호스팅은 남의 플랫폼 대신 내가 직접 서버를 운영하는 방식입니다.
🤔 혹시 이런 경험 있나요?
Vercel에 배포까지 성공했습니다. my-app.vercel.app으로 접속도 잘 됩니다. 그런데 이 주소를 명함이나 포트폴리오에 적기엔 좀 부끄럽습니다. "내 도메인을 연결하고 싶은데, DNS? A 레코드? 네임서버? 이게 다 뭐지?" 또는 "Vercel 무료 플랜 제한이 걱정되는데, 내 서버에서 직접 돌릴 수는 없을까?" 이런 생각이 드는 시점이라면, 이 글이 딱 필요한 타이밍입니다.
🌐 도메인이란?
도메인(Domain)은 인터넷에서 내 서비스를 찾아가는 주소입니다.
컴퓨터들은 서로를 IP 주소(예: 76.76.21.21)로 구분합니다. 하지만 사람이 숫자를 외우기는 어렵죠. 그래서 숫자 대신 사람이 읽을 수 있는 이름을 붙인 것이 도메인입니다.
IP 주소: 76.76.21.21 ← 컴퓨터가 이해하는 주소
도메인: myapp.com ← 사람이 이해하는 주소전화번호부에서 이름으로 전화번호를 찾듯이, DNS(Domain Name System)가 도메인을 IP 주소로 변환해줍니다.
📱 도메인은 집 주소, 서버는 집
도메인과 서버의 관계를 집에 비유하면 이해가 쉽습니다.
- 서버: 실제 집 건물입니다. 내 앱이 돌아가는 컴퓨터입니다.
- IP 주소: GPS 좌표입니다. 정확하지만 외우기 어렵습니다.
- 도메인: 집 주소(서울시 강남구...)입니다. 사람이 쉽게 찾을 수 있습니다.
- DNS: 주소를 GPS 좌표로 변환해주는 내비게이션입니다.
집을 이사하면(서버를 바꾸면) GPS 좌표가 바뀌지만, 주소 체계를 업데이트하면(DNS를 수정하면) 같은 주소로 새 집을 찾아갈 수 있습니다.
🛒 도메인 구매부터 연결까지

1단계: 도메인 구매
도메인은 도메인 등록 업체(Registrar)에서 구매합니다.
| 업체 | 특징 | 가격대 (.com 기준) |
|---|---|---|
| Cloudflare Registrar | 원가 판매, 가장 저렴 | 연 $10 내외 |
| Namecheap | 첫해 할인 많음, 영문 UI | 연 $9~13 |
| 가비아 | 한국어 지원, .kr 도메인 | 연 15,000~20,000원 |
| Porkbun | 저렴하고 UI가 깔끔 | 연 $9 내외 |
팁: 도메인은 "소유"가 아니라 "임대"입니다. 매년 갱신해야 하며, 갱신을 놓치면 다른 사람이 가져갈 수 있으므로 자동 갱신을 켜두세요.
2단계: DNS 레코드 설정
도메인을 구매했으면, "이 도메인으로 접속하면 어디로 보내줘"라는 설정을 해야 합니다. 이것이 DNS 레코드입니다.
| 레코드 타입 | 역할 | 예시 |
|---|---|---|
| A | 도메인 → IP 주소 | myapp.com → 76.76.21.21 |
| CNAME | 도메인 → 다른 도메인 | www.myapp.com → myapp.vercel.app |
| TXT | 텍스트 정보 저장 | 도메인 소유 인증, 이메일 인증 등 |
| MX | 이메일 서버 지정 | myapp.com → mail.google.com |
바이브코딩에서 가장 많이 쓰는 것은 A 레코드와 CNAME입니다.
3단계: 배포 플랫폼에서 도메인 연결
Vercel 예시:
1. Vercel 대시보드 → Settings → Domains
2. 구매한 도메인 입력 (예: myapp.com)
3. Vercel이 알려주는 DNS 레코드를 도메인 업체에 설정
4. 인증 완료 후 HTTPS 인증서 자동 발급대부분의 배포 플랫폼은 도메인을 연결하면 HTTPS(SSL 인증서)를 자동으로 발급해줍니다. 직접 인증서를 설치할 필요가 없습니다.
🏠 셀프호스팅이란?
Vercel, Netlify 같은 플랫폼 대신 내가 직접 서버를 운영하는 것을 셀프호스팅(Self-hosting)이라고 합니다.
| 구분 | 플랫폼 호스팅 (Vercel 등) | 셀프호스팅 |
|---|---|---|
| 서버 관리 | 플랫폼이 알아서 처리 | 내가 직접 관리 |
| 비용 | 무료~사용량 기반 과금 | 서버 임대 비용 (월 $5~) |
| 자유도 | 플랫폼 제한 내에서 사용 | 완전한 자유 |
| 확장성 | 자동 스케일링 | 직접 설정 필요 |
| 난이도 | 쉬움 | 중간~어려움 |
🤔 언제 셀프호스팅을 고려할까요?
플랫폼 호스팅이 적합한 경우:
- 개인 프로젝트, 포트폴리오, 블로그
- 트래픽이 예측 가능한 소규모 서비스
- 서버 관리에 시간 쓰고 싶지 않을 때
셀프호스팅이 적합한 경우:
- 플랫폼 무료 제한을 초과했을 때
- 데이터를 내 서버에만 저장해야 할 때 (보안, 규정)
- 플랫폼이 지원하지 않는 기능이 필요할 때 (장시간 작업, 특수 런타임)
- Docker, 데이터베이스 등 인프라를 직접 제어하고 싶을 때
🛠️ 셀프호스팅 시작하기

VPS(가상 서버) 선택
셀프호스팅의 첫 단계는 VPS(Virtual Private Server)를 임대하는 것입니다.
| 서비스 | 최저 가격 | 특징 |
|---|---|---|
| Oracle Cloud | 무료 (Always Free) | ARM 서버 24GB RAM 무료 |
| Hetzner | 월 €3.79 | 유럽 기반, 가성비 최고 |
| Vultr | 월 $5 | 서울 리전 있음, 한국 속도 빠름 |
| DigitalOcean | 월 $4 | 튜토리얼 풍부, 초보 친화 |
기본 배포 흐름
1. VPS 서버 임대 (Ubuntu 추천)
2. 서버에 Node.js, npm 설치
3. 내 프로젝트 코드를 서버에 올림 (git clone)
4. npm install && npm run build
5. PM2 등으로 프로세스를 상시 실행
6. Nginx로 도메인과 HTTPS 설정
7. 도메인 DNS에 서버 IP를 A 레코드로 연결Docker로 간편하게
서버 환경 설정이 복잡하다면, Docker를 사용하면 편합니다.
# Dockerfile 예시
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
CMD ["npm", "start"]Docker를 사용하면 "내 컴퓨터에서는 되는데 서버에서 안 돼요" 문제를 거의 없앨 수 있습니다. AI에게 "내 Next.js 프로젝트를 Docker로 배포하는 방법 알려줘"라고 물어보면 프로젝트에 맞는 Dockerfile을 만들어줍니다.
🔒 셀프호스팅 시 꼭 알아야 할 보안 기본
셀프호스팅은 자유도가 높은 만큼, 보안도 본인 책임입니다.
- SSH 키 인증 사용: 비밀번호 대신 SSH 키로 서버에 접속하세요. 비밀번호 로그인은 비활성화하는 것이 안전합니다.
- 방화벽 설정: 80(HTTP), 443(HTTPS), 22(SSH) 포트만 열어두세요.
- 자동 업데이트: 서버 OS 보안 패치를 자동으로 적용하도록 설정하세요.
- HTTPS 필수: Let's Encrypt로 무료 SSL 인증서를 발급받으세요. Nginx + Certbot 조합이 가장 일반적입니다.
⚠️ 바이브코딩할 때 주의할 점
-
DNS 변경은 시간이 걸립니다. DNS 레코드를 수정해도 전 세계에 퍼지는 데 최대 24
48시간이 걸릴 수 있습니다(보통 530분). 안 된다고 설정을 반복 변경하면 오히려 더 오래 걸립니다. -
네임서버는 한 곳에서만 관리하세요. 도메인 업체의 네임서버를 쓸지, Cloudflare 같은 외부 DNS를 쓸지 하나만 선택하세요. 양쪽에서 동시에 관리하면 충돌이 생깁니다.
-
셀프호스팅은 유지보수도 내 몫입니다. 서버가 다운되면 직접 복구해야 하고, 보안 패치도 직접 적용해야 합니다. 처음에는 플랫폼 호스팅으로 시작하고, 필요할 때 셀프호스팅으로 넘어가는 것을 추천합니다.
📋 30초 요약
-
도메인은 인터넷에서 내 서비스를 찾는 주소입니다. DNS가 도메인을 서버 IP로 변환해주며, A 레코드와 CNAME만 알면 대부분의 연결이 가능합니다.
-
셀프호스팅은 플랫폼 대신 내 서버를 직접 운영하는 것입니다. 자유도와 비용 절감이 장점이지만, 서버 관리와 보안을 직접 책임져야 합니다. 초보자는 플랫폼 호스팅으로 시작하는 것을 추천합니다.
-
처음에는 도메인 구매 + Vercel 연결로 시작하고, 서비스가 커지면 셀프호스팅을 고려하세요. Docker를 활용하면 셀프호스팅도 훨씬 수월해집니다.
도메인을 구매하고 Vercel에 연결하려면 설정해야 하는 DNS 레코드는 무엇일까요?
연관 개념
관련 인사이트
하네스 엔지니어링 입문 가이드 — AI 에이전트 시대에 사람이 하는 일
AI 에이전트가 코드를 대신 짜주는 시대, 사람의 역할은 '코드 작성'에서 '환경 설계'로 바뀌고 있습니다. 하네스 엔지니어링의 개념, 배경, 실무 적용법을 초보자도 이해할 수 있게 정리했습니다.
Claude Code로 블로그 만들기, 쉽게 풀어쓴 버전
디지털 마케터가 Claude Code로 블로그를 처음부터 만들고 운영하는 전 과정을, 코딩을 모르는 분도 이해할 수 있도록 쉬운 말로 풀어서 정리했습니다. 같은 내용을 전문 용어 없이, 비유 중심으로 설명합니다.
Claude Code로 무한동력 블로그를 만들고 운영하는 전 과정 정리
디지털 마케터가 개발 경험 없이 Claude Code만으로 Next.js 블로그를 구축하고, 콘텐츠 생성부터 SEO 최적화, GA4 분석까지 운영을 자동화한 전 과정을 정리합니다. 기술 스택 선정, 에이전트 시스템 설계, 실제 운영 워크플로우를 1인칭 경험 기반으로 다룹니다.
