도메인과 셀프호스팅 (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 레코드는 무엇일까요?
연관 개념
터미널과 CLI (Terminal & CLI)
컴퓨터에게 텍스트 명령어를 입력해서 작업을 수행하는 도구입니다. AI 코딩 도구가 '이 명령어를 실행하세요'라고 할 때 사용하는 바로 그 검은 화면입니다.
환경 변수와 .env (Environment Variables)
프로그램이 실행될 때 참조하는 설정값으로, API 키나 비밀번호 같은 민감한 정보를 코드와 분리하여 안전하게 관리하는 방법입니다.
Git과 버전 관리 (Version Control)
파일의 변경 이력을 기록하고 관리하는 시스템입니다. AI가 코드를 대량으로 수정해도, 이전 상태로 되돌리거나 변경 내역을 추적할 수 있게 해줍니다.
관련 인사이트
바이브코딩 vs AI 에이전트 다른점 알아보기
바이브코딩과 AI 에이전트(Claude Code 등)를 모두 실무에 사용해 본 경험을 바탕으로, 둘의 작업 방식·코드 이해 수준·적합한 상황이 어떻게 다른지 비유와 비교표로 정리했습니다.
초보자를 위한 OAuth 2.0 이해하기
바이브코딩과 AI 에이전트로 빠르게 서비스를 만들 수 있는 시대입니다. 하지만 인증 구조를 이해하지 못하면 비밀번호가 코드에 그대로 노출되는 사고가 일어납니다. 인증의 기본 개념부터 OAuth 2.0까지, 비개발자도 이해할 수 있도록 정리했습니다.
Claude Code 커뮤니티에서 찾은 커스텀 Skill 세 가지 패턴
Claude Code의 핵심은 코드 생성이 아니라 Skill 시스템입니다. TDD 강제, 팀 맞춤 코드 리뷰, 실행 가능한 런북까지 — 전 세계 커뮤니티에서 실제로 쓰이는 3가지 커스텀 Skill 패턴을 정리했습니다.
