도메인 네임(Domain Name)이란?
- 정의: 인터넷상에서 사람들이 웹사이트나 서버를 쉽게 찾을 수 있도록 만든 문자 형태의 주소. (예: google.com, naver.com)
- 비유: 스마트폰의 '전화번호부 이름'과 같다.
- 실제 전화 걸 때 필요한 것: 010-1234-5678 (숫자)
- 우리가 기억하는 것: 홍길동 (이름)
- 필요성: 컴퓨터는 서로를 142.250.217.78 같은 IP 주소(숫자)로 인식하지만, 사람은 이 숫자를 외우기 어렵기 때문에 기억하기 쉬운 문자로 된 도메인 네임을 사용한다.
DNS (Domain Name System)의 개념

- 정의: 도메인 네임(문자)을 컴퓨터가 이해할 수 있는 IP 주소(숫자)로 변환(Translation)해주는 시스템이다.
- 핵심 기능: '인터넷 전화번호부' 역할을 한다. 사용자가 브라우저 주소창에 www.google.com을 입력하면, DNS 서버가 이를 142.250.xxx.xxx라는 IP 주소로 바꿔주어 해당 서버에 접속할 수 있게 연결해 준다.
- 작동 원리 (간단 요약):
- 사용자가 www.example.com 입력.
- PC는 미리 설정된 DNS 서버(Resolver)에게 "이 도메인의 IP가 뭐야?"라고 물어봄.
- DNS 서버는 전 세계에 퍼져 있는 상위 DNS 서버들(Root → TLD → Authoritative)에게 차례로 물어보며 IP를 찾아냄.
- 찾아낸 IP를 사용자 PC에 알려줌.
- PC는 그 IP로 웹사이트에 접속.
DNS의 장단점
| 구분 | 내용 |
| 장점 | 1. 편의성: 복잡한 IP 주소를 외울 필요 없이 직관적인 이름으로 접속 가능. 2. 유연성: 서버를 이전하여 IP 주소가 바뀌어도, 도메인 네임은 그대로 유지 가능 (DNS 설정만 변경하면 됨). 3. 안정성: 하나의 도메인에 여러 IP를 연결해 부하 분산(Load Balancing)이나 서버 다운 시 대처가 가능. |
| 단점 | 1. 보안 취약점: DNS 스푸핑(위조된 사이트로 유도)이나 DDoS 공격의 타겟이 될 수 있음. 2. 전파 지연: DNS 정보를 변경했을 때, 전 세계 모든 DNS 서버에 반영되기까지 시간이 걸림 (TTL). 3. 속도: IP로 직접 접속하는 것보다 DNS 조회 과정만큼의 아주 미세한 시간이 더 소요됨. |
대표적인 DNS 서비스
우리가 인터넷을 쓸 때 알게 모르게 사용하고 있는 DNS 서버들이다.
- ISP DNS (통신사): 인터넷 가입 시 자동으로 할당됨 (KT, SK브로드밴드, LG U+ 등). 속도는 빠르지만 검열 이슈가 있을 수 있다.
- Public DNS (공용): 누구나 무료로 사용 가능하며, 보안과 속도 향상을 위해 사용자가 직접 변경해서 쓰기도 한다.
- Google: 8.8.8.8, 8.8.4.4 (가장 유명함)
- Cloudflare: 1.1.1.1 (속도와 개인정보 보호 강조)
- Managed DNS (관리형): 도메인을 구매하고 관리할 때 사용하는 서비스이다.
- AWS Route53, Gabia, Godaddy 등.
비슷한 개념 (비교)
- Hosts 파일 (/etc/hosts):
- DNS가 생기기 전, 수동으로 IP와 이름을 매핑하던 파일이다.
- 지금도 PC에 존재하며, DNS 서버보다 우선순위가 높다. 개발자가 로컬 테스트를 할 때 특정 도메인을 강제로 특정 IP로 연결하기 위해 주로 사용한다.
- ARP (Address Resolution Protocol):
- DNS는 도메인(문자) → IP(논리적 주소)를 바꾸지만,
- ARP는 IP(논리적 주소) → MAC 주소(물리적 주소)를 바꾼다. 둘 다 '주소 변환 프로토콜'이라는 점은 비슷하지만 계층이 다르다.
사용 방법 (개발자/사용자 관점)
일반 사용자 (DNS 서버 변경)
인터넷이 느리거나 특정 사이트 접속이 안 될 때, PC나 공유기의 네트워크 설정에서 DNS 주소를 변경한다.
- 예: 윈도우 네트워크 설정 → IPv4 속성 → DNS 서버 주소를 8.8.8.8(구글)로 변경.
개발자/서버 관리자 (DNS 레코드 설정)
도메인을 구매한 후, 네임서버 설정에서 다음 레코드(Record)들을 등록하여 사용한다.
- A 레코드: 도메인을 IPv4 주소로 연결 (가장 기본).
- AAAA 레코드: IPv6 주소로 연결.
- CNAME: 도메인을 또 다른 도메인 이름으로 연결 (별칭).
- TXT: 도메인 소유권 인증이나 이메일 보안 설정(SPF 등)에 사용.
- NS: 해당 도메인을 관리하는 네임서버 지정.
면접 답변식 요약
DNS는 사람이 읽을 수 있는 도메인 이름(Domain Name)을 컴퓨터가 통신할 수 있는 IP 주소로 변환해 주는 시스템입니다.
마치 전화번호부처럼 이름과 전화번호를 매칭시켜 주는 역할을 합니다.
'Daily Dev Q&A 정리 템플릿' 카테고리의 다른 글
| 26.01.19 TCP와 UDP의 차이점을 설명해보기 (1) | 2026.01.19 |
|---|---|
| 26.01.16 inner조인과 outter조인이란? (0) | 2026.01.16 |
| 26.01.13 N+1 문제가 무엇이고 어떻게 해결하는가? (0) | 2026.01.13 |
| 26.01.09 JPA와 MyBatis를 비교해서 설명해주세요. (0) | 2026.01.09 |
| 26.01.08 JPA의 영속성 컨텍스트란? (0) | 2026.01.08 |