DNS 조회 과정과 DNS 캐싱이 웹 성능에 미치는 영향을 설명해주세요.
답변 포인트
브라우저, OS, 재귀 DNS, 권한 DNS 서버의 흐름을 순서대로 떠올려보세요.
정답 및 해설
빠른 요약
사용자가 도메인을 입력하면 브라우저는 IP 주소를 알아내기 위해 DNS 조회를 수행합니다. 먼저 브라우저 캐시와 OS 캐시를 확인하고, 없으면 설정된 재귀 DNS resolver에 질의합니다.
사용자가 도메인을 입력하면 브라우저는 IP 주소를 알아내기 위해 DNS 조회를 수행합니다. 먼저 브라우저 캐시와 OS 캐시를 확인하고, 없으면 설정된 재귀 DNS resolver에 질의합니다. resolver는 루트 DNS, TLD DNS(.com, .kr 등), 권한 DNS 서버를 거쳐 최종 IP를 받아옵니다.
이 과정은 보통 매우 빠르지만, 첫 방문에서는 네트워크 왕복이 추가되기 때문에 초기 로딩 시간에 영향을 줍니다. 그래서 DNS 결과는 TTL(Time To Live)에 따라 여러 계층에서 캐싱됩니다.
성능 관점에서는 외부 도메인이 많을수록 DNS 조회도 늘어납니다. 광고, 분석 스크립트, 폰트, 이미지 CDN이 모두 다른 도메인이라면 연결 준비 비용이 커질 수 있습니다. 이때 dns-prefetch나 preconnect를 선택적으로 사용할 수 있습니다.
<link rel="dns-prefetch" href="https://cdn.example.com" />
<link rel="preconnect" href="https://cdn.example.com" crossorigin />단, preconnect는 DNS뿐 아니라 TCP/TLS 연결까지 미리 열기 때문에 남발하면 오히려 리소스를 낭비합니다. 중요한 출처 몇 개에만 적용하는 것이 좋습니다.