초급

도메인과 셀프호스팅 (Domain & Self-hosting)

도메인은 인터넷에서 내 서비스를 찾을 수 있는 고유 주소이고, 셀프호스팅은 남의 플랫폼 대신 내가 직접 서버를 운영하는 방식입니다.

동의어:도메인DomainDNS셀프호스팅Self-hostingVPS호스팅

🤔 혹시 이런 경험 있나요?

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를 수정하면) 같은 주소로 새 집을 찾아갈 수 있습니다.

🛒 도메인 구매부터 연결까지

도메인 구매부터 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을 만들어줍니다.

🔒 셀프호스팅 시 꼭 알아야 할 보안 기본

셀프호스팅은 자유도가 높은 만큼, 보안도 본인 책임입니다.

  1. SSH 키 인증 사용: 비밀번호 대신 SSH 키로 서버에 접속하세요. 비밀번호 로그인은 비활성화하는 것이 안전합니다.
  2. 방화벽 설정: 80(HTTP), 443(HTTPS), 22(SSH) 포트만 열어두세요.
  3. 자동 업데이트: 서버 OS 보안 패치를 자동으로 적용하도록 설정하세요.
  4. HTTPS 필수: Let's Encrypt로 무료 SSL 인증서를 발급받으세요. Nginx + Certbot 조합이 가장 일반적입니다.

⚠️ 바이브코딩할 때 주의할 점

  1. DNS 변경은 시간이 걸립니다. DNS 레코드를 수정해도 전 세계에 퍼지는 데 최대 2448시간이 걸릴 수 있습니다(보통 530분). 안 된다고 설정을 반복 변경하면 오히려 더 오래 걸립니다.

  2. 네임서버는 한 곳에서만 관리하세요. 도메인 업체의 네임서버를 쓸지, Cloudflare 같은 외부 DNS를 쓸지 하나만 선택하세요. 양쪽에서 동시에 관리하면 충돌이 생깁니다.

  3. 셀프호스팅은 유지보수도 내 몫입니다. 서버가 다운되면 직접 복구해야 하고, 보안 패치도 직접 적용해야 합니다. 처음에는 플랫폼 호스팅으로 시작하고, 필요할 때 셀프호스팅으로 넘어가는 것을 추천합니다.

📋 30초 요약

  1. 도메인은 인터넷에서 내 서비스를 찾는 주소입니다. DNS가 도메인을 서버 IP로 변환해주며, A 레코드와 CNAME만 알면 대부분의 연결이 가능합니다.

  2. 셀프호스팅은 플랫폼 대신 내 서버를 직접 운영하는 것입니다. 자유도와 비용 절감이 장점이지만, 서버 관리와 보안을 직접 책임져야 합니다. 초보자는 플랫폼 호스팅으로 시작하는 것을 추천합니다.

  3. 처음에는 도메인 구매 + Vercel 연결로 시작하고, 서비스가 커지면 셀프호스팅을 고려하세요. Docker를 활용하면 셀프호스팅도 훨씬 수월해집니다.

퀴즈

도메인을 구매하고 Vercel에 연결하려면 설정해야 하는 DNS 레코드는 무엇일까요?

학습 진행

11 / 13
About the Author
Author
HI!

마케팅을 데이터로 설명하는 사람.
복잡한 상황을 이해 가능한 형태로 정리합니다.

GA4GTM퍼널분석
더 알아보기