웹사이트 운영하다가 DNS 설정 때문에 막막했던 경험 있으신가요? CNAME과 A레코드, 둘 다 중요해 보이는데 언제 뭘 써야 할지 헷갈리시죠? 이 글에서 DNS 초보자도 5분 만에 완벽 이해할 수 있도록 실무 예제와 함께 알려드립니다.
🔍 DNS 레코드가 뭔가요?
DNS(Domain Name System) 레코드는 인터넷의 전화번호부라고 생각하시면 됩니다. 우리가 ‘naver.com’을 입력하면 컴퓨터는 실제 서버 주소를 찾아야 하는데, 이때 DNS 레코드가 그 역할을 해주는 거죠.
DNS 레코드의 종류는 다양하지만, 가장 많이 사용하는 건 바로:
- A레코드: 도메인을 IP주소로 연결
- CNAME레코드: 도메인을 다른 도메인으로 연결
- MX레코드: 메일 서버 설정
- TXT레코드: 텍스트 정보 저장
이 중에서도 웹사이트 운영에 필수인 A레코드와 CNAME을 자세히 알아보겠습니다.

🎯 A레코드 완벽 분석
A레코드란?
A레코드(Address Record)는 도메인 이름을 IPv4 주소로 직접 연결하는 DNS 레코드입니다. 가장 기본적이고 중요한 DNS 레코드죠.
A레코드 작동 원리
example.com → 192.168.1.1
사용자가 ‘example.com’에 접속하면, DNS 서버는 A레코드를 확인해서 192.168.1.1 IP 주소로 연결해줍니다.

A레코드의 특징
장점:
- 가장 빠른 DNS 해석 속도
- 직접적인 IP 연결로 안정성 높음
- 모든 DNS 서버에서 지원
- 루트 도메인(example.com) 설정 가능
단점:
- IP 주소 변경 시 수동 업데이트 필요
- 여러 서버 관리 시 복잡함
- IPv4 주소만 지원 (IPv6는 AAAA 레코드 필요)
실제 사용 예시
도메인: blog.example.com
타입: A
값: 203.123.45.67
TTL: 3600
🔗 CNAME 레코드 총정리
CNAME이란?
CNAME(Canonical Name)은 도메인을 다른 도메인으로 연결하는 별칭(Alias) 레코드입니다. 일종의 도메인 리다이렉션이라고 생각하시면 됩니다.
CNAME 작동 원리
www.example.com → example.com → 192.168.1.1
‘www.example.com’에 접속하면 먼저 ‘example.com’으로 이동하고, 다시 A레코드를 통해 실제 IP 주소를 찾습니다.
CNAME의 특징
장점:
- IP 변경 시 한 곳만 수정하면 됨
- 서브도메인 관리가 편리함
- CDN 설정에 최적화
- 여러 도메인을 하나로 통합 관리 가능
단점:
- 2번의 DNS 조회로 속도 저하
- 루트 도메인에 사용 불가
- 같은 이름의 다른 레코드와 충돌 가능
- 일부 이메일 서비스에서 문제 발생 가능
실제 사용 예시

도메인: www.example.com
타입: CNAME
값: example.com
TTL: 3600
⚡ CNAME vs A레코드 핵심 차이점 7가지
구분 A레코드 CNAME 레코드
| 연결 대상 | IP 주소 (192.168.1.1) | 다른 도메인 (example.com) |
| 루트 도메인 | 사용 가능 | 사용 불가 |
| DNS 조회 횟수 | 1회 | 2회 이상 |
| 속도 | 빠름 | 상대적으로 느림 |
| 관리 편의성 | IP 변경 시 모든 레코드 수정 | 한 번만 수정 |
| CDN 연동 | 복잡함 | 매우 쉬움 |
| 이메일 서버 | 문제 없음 | 충돌 가능성 |
1. 연결 방식의 차이
A레코드: 도메인 → IP 주소 (직접 연결) CNAME: 도메인 → 도메인 → IP 주소 (간접 연결)
2. 루트 도메인 사용 제한
✅ A레코드: example.com → 192.168.1.1 (가능)
❌ CNAME: example.com → other.com (불가능)
✅ CNAME: www.example.com → example.com (가능)
3. 속도 차이
A레코드는 한 번의 DNS 조회로 끝나지만, CNAME은 최소 2번의 조회가 필요해서 약간의 지연이 발생할 수 있습니다.
4. 관리 편의성
시나리오: 서버 IP가 변경되는 경우
- A레코드: 모든 서브도메인의 A레코드를 각각 수정
- CNAME: 메인 도메인의 A레코드만 수정
🤔 언제 뭘 사용해야 할까?
A레코드를 사용해야 하는 경우
✅ 루트 도메인 설정할 때
example.com → 192.168.1.1
✅ 최대한 빠른 속도가 필요할 때
- 대용량 트래픽 사이트
- 게임 서버
- API 서버
✅ 이메일 서버 설정할 때
- MX 레코드와의 충돌 방지
✅ 고정 IP를 사용할 때
- 전용 서버 운영
- 클라우드 고정 IP 할당받은 경우
CNAME을 사용해야 하는 경우
✅ 서브도메인 설정할 때
www.example.com → example.com
blog.example.com → example.com
shop.example.com → example.com
✅ CDN 서비스 연동할 때
cdn.example.com → d123456.cloudfront.net
✅ 클라우드 서비스 연동할 때
app.example.com → myapp.herokuapp.com
docs.example.com → mysite.gitbooks.io
✅ IP 주소가 자주 변경될 때
- 동적 IP 환경
- 로드밸런서 사용
- 클라우드 오토스케일링
⚙️ 실무 설정 가이드
1. 일반적인 웹사이트 DNS 설정 예시
# 루트 도메인 - A레코드 사용
example.com A 203.123.45.67
# www 서브도메인 - CNAME 사용
www.example.com CNAME example.com
# 기타 서브도메인들
blog.example.com CNAME example.com
shop.example.com CNAME example.com
api.example.com A 203.123.45.68
2. CDN 사용하는 경우
# 메인 사이트
example.com A 203.123.45.67
www.example.com CNAME example.com
# CDN 설정
cdn.example.com CNAME d123456.cloudfront.net
static.example.com CNAME d789012.cloudfront.net
3. 이중화 서버 구성
# 메인 서버
example.com A 203.123.45.67
www.example.com CNAME example.com
# 백업 서버 (라운드 로빈)
example.com A 203.123.45.68
설정 시 주의사항
TTL(Time To Live) 설정
- 개발/테스트: 300초 (5분)
- 운영 서버: 3600초 (1시간)
- 안정적인 서비스: 86400초 (24시간)
CNAME 체인 제한
❌ 잘못된 예:
A.com → B.com → C.com → D.com (너무 긴 체인)
✅ 올바른 예:
A.com → B.com → IP주소 (짧은 체인)
🔧 주요 DNS 제공업체별 설정법
가비아(Gabia)
- 가비아 관리콘솔 로그인
- 도메인 관리 → DNS 설정
- 레코드 추가/수정
후이즈(Whois)
- 후이즈 관리페이지 접속
- 도메인 관리 → DNS 레코드 관리
- A 또는 CNAME 레코드 설정
클라우드플레어(Cloudflare)
- Cloudflare 대시보드 로그인
- DNS 탭 선택
- Add record 버튼으로 레코드 추가
🚀 성능 최적화 팁
DNS 조회 속도 개선
1. TTL 값 최적화
- 자주 변경되는 레코드: 짧게 설정
- 안정적인 레코드: 길게 설정
2. DNS 제공업체 선택
- 글로벌 서비스: Cloudflare, Route 53
- 국내 서비스: 가비아, 후이즈
3. CNAME 체인 최소화
- 가능한 한 단계로 연결
- 불필요한 중간 도메인 제거
모니터링 및 테스트
DNS 조회 테스트 도구
# A레코드 조회
nslookup example.com
# CNAME 조회
nslookup www.example.com
# 상세 조회
dig example.com ANY
온라인 DNS 체커
- whatsmydns.net
- dns.google
- 8.8.8.8
❓ 자주 묻는 질문 FAQ
Q1. 루트 도메인에 CNAME을 꼭 못 쓰나요?
네, RFC 표준에서 금지하고 있습니다. 루트 도메인에는 SOA, NS 등 다른 필수 레코드들이 있어서 CNAME과 충돌이 발생하기 때문입니다.
Q2. CNAME이 느리다고 하는데 체감할 정도인가요?
일반적으로는 체감하기 어려운 수준입니다. 추가 DNS 조회로 인한 지연은 보통 10-50ms 정도로, 웹페이지 로딩에 미치는 영향은 미미합니다.
Q3. A레코드와 CNAME을 같은 도메인에 동시에 설정할 수 있나요?
불가능합니다. DNS 표준상 같은 이름에 CNAME과 다른 레코드 타입을 동시에 사용할 수 없습니다.
Q4. IPv6 주소는 어떻게 설정하나요?
IPv6 주소는 AAAA 레코드를 사용합니다:
example.com AAAA 2001:db8::1
Q5. CDN 사용할 때 CNAME 말고 A레코드로도 가능한가요?
기술적으로는 가능하지만 권장하지 않습니다. CDN 서비스는 IP가 자주 변경되고, 지역별로 다른 서버로 연결되기 때문에 CNAME이 더 적합합니다.
Q6. DNS 설정 변경 후 언제부터 적용되나요?
TTL 값에 따라 다릅니다:
- TTL 300초: 최대 5분
- TTL 3600초: 최대 1시간
- 전 세계 완전 전파: 24-48시간
📋 DNS 설정 체크리스트
🔍 설정 전 확인사항
- [ ] 현재 DNS 제공업체 확인
- [ ] 기존 레코드 백업
- [ ] 변경할 IP 주소나 도메인 준비
- [ ] TTL 값 계획 수립
⚙️ 설정 과정
- [ ] A레코드/CNAME 레코드 추가
- [ ] TTL 값 설정
- [ ] 설정 내용 재확인
- [ ] 테스트 도메인으로 먼저 검증
✅ 설정 후 확인
- [ ] nslookup으로 DNS 조회 테스트
- [ ] 웹브라우저에서 접속 확인
- [ ] 모바일에서도 접속 확인
- [ ] 24시간 후 전 세계 전파 상태 확인
🎯 마무리
DNS CNAME과 A레코드의 차이점을 정리하면:
A레코드는 속도와 안정성이 중요한 루트 도메인에, CNAME은 관리 편의성이 중요한 서브도메인과 CDN 연동에 사용하시면 됩니다.
처음에는 복잡해 보이지만, 기본 개념만 이해하면 웹사이트 운영이 훨씬 쉬워집니다. 특히 요즘처럼 다양한 클라우드 서비스를 연동하는 환경에서는 필수 지식이니까 꼭 숙지해 두세요!
DNS 설정으로 고민이 있으시거나 궁금한 점이 있다면 댓글로 언제든 문의해 주세요. 함께 해결해 드리겠습니다! 🚀
관련 글 추천:
참고 자료:
- RFC 1034 - Domain Concepts and Facilities
- RFC 1035 - Domain Implementation and Specification
- Cloudflare DNS Learning Center
이 글이 도움이 되셨다면 👍 좋아요와 📤 공유 부탁드립니다!
DNS 설정으로 어려움을 겪고 있는 분들께도 큰 도움이 될 거예요.