도메인과 셀프호스팅 (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시간이 걸릴 수 있습니다(보통 5~30분). 안 된다고 설정을 반복 변경하면 오히려 더 오래 걸립니다.
-
네임서버는 한 곳에서만 관리하세요. 도메인 업체의 네임서버를 쓸지, Cloudflare 같은 외부 DNS를 쓸지 하나만 선택하세요. 양쪽에서 동시에 관리하면 충돌이 생깁니다.
-
셀프호스팅은 유지보수도 내 몫입니다. 서버가 다운되면 직접 복구해야 하고, 보안 패치도 직접 적용해야 합니다. 처음에는 플랫폼 호스팅으로 시작하고, 필요할 때 셀프호스팅으로 넘어가는 것을 추천합니다.
📋 30초 요약
-
도메인은 인터넷에서 내 서비스를 찾는 주소입니다. DNS가 도메인을 서버 IP로 변환해주며, A 레코드와 CNAME만 알면 대부분의 연결이 가능합니다.
-
셀프호스팅은 플랫폼 대신 내 서버를 직접 운영하는 것입니다. 자유도와 비용 절감이 장점이지만, 서버 관리와 보안을 직접 책임져야 합니다. 초보자는 플랫폼 호스팅으로 시작하는 것을 추천합니다.
-
처음에는 도메인 구매 + Vercel 연결로 시작하고, 서비스가 커지면 셀프호스팅을 고려하세요. Docker를 활용하면 셀프호스팅도 훨씬 수월해집니다.
도메인을 구매하고 Vercel에 연결하려면 설정해야 하는 DNS 레코드는 무엇일까요?
연관 개념
훅 (Hooks) 알아보기
Claude Code가 특정 행동을 하기 전·후에 자동으로 실행되는 명령입니다. 파일 수정 직후 자동 포맷, 커밋 직전 lint 실행 같은 자동 검사·자동 작업을 만들 때 씁니다.
서브에이전트 (Subagents) 알아보기
한 작업의 부분을 따로 나눠 처리하는 보조 에이전트입니다. 주력 에이전트가 작업 전체를 조율하고, 서브에이전트들이 코드 검토, 자료 조사, 테스트 작성 같은 부분 작업을 동시에 처리해 결과를 합칩니다.
Plan Mode (실행 전 검토 단계) 활용하기
Claude Code가 실제로 파일을 수정하기 전에 무엇을 어떻게 바꿀지 계획만 먼저 보여주는 모드입니다. 사용자가 계획을 검토·승인한 뒤에야 실제 변경이 진행됩니다.
관련 인사이트
쉽게 설치하는 코덱스(Codex) CLI 세팅가이드(맥)
맥(Mac)에 OpenAI 코덱스 CLI(Codex CLI)를 처음 설치하는 분을 위해, 터미널 실행부터 Homebrew·Node.js 사전 준비, 본체 설치, ChatGPT 로그인, GPT-5.5 모델 선택까지 단순하게 정리했습니다. 클로드 코드(Claude Code)와의 차이도 마지막에 짧게 짚었습니다.
쉽게 설치하는 코덱스(Codex) CLI 세팅가이드(윈도우)
윈도우 PC에 OpenAI 코덱스 CLI(Codex CLI)를 처음 설치하는 분을 위해, PowerShell 관리자 모드부터 Node.js 준비, 본체 설치, ChatGPT 로그인, GPT-5.5 모델 선택까지 단순하게 정리했습니다. 클로드 코드(Claude Code)와의 차이도 마지막에 짧게 짚었습니다.
쉽게 설치하는 클로드코드 세팅가이드(맥)
맥(Mac)에 클로드 코드(Claude Code)를 처음 설치하는 분을 위해, 터미널 실행부터 Homebrew·Git·Node.js 사전 준비, 본체 설치, 한국어 설정, 첫 작업 시작까지 9단계로 단순하게 정리했습니다.
