작성자 티로그
작성일Updated on: 2025-01-22 10:56:27
아래 글은 ‘웹사이트를 어떻게 찾아가는지’를 처음 접하는 분도 쉽게 이해할 수 있도록,
일상적 비유와 ( ) 안에 예시나 설명을 풍부하게 넣어 자세히 작성한 것입니다.
천천히 읽어보시면 IP(집 주소), DNS(전화번호부), URL(전체 주소)이 어떻게 연결되어
웹페이지를 보여주는지 이해하실 수 있을 거예요.
1. IP(컴퓨터의 ‘집 주소’)
-
IP 주소란?
IP는 (Internet Protocol)의 줄임말로, 인터넷에 연결된
각 컴퓨터(또는 서버)를 식별하는 고유 번호입니다.
예: (IPv4 형태) 192.168.0.1, (IPv6 형태) 2001:0db8:85a3::8a2e:0370:7334
-
왜 ‘집 주소’인가?
우리가 실제로 편지나 택배를 보낼 때는 (집 주소)가 꼭 필요합니다.
마찬가지로, 인터넷에서 특정 컴퓨터에게 정보를 보내거나 받으려면
(그 컴퓨터가 어디 있는지 나타내는 IP 주소)를 알아야 합니다.
-
IPv4 vs IPv6
- IPv4는 (xxx.xxx.xxx.xxx) 형태로 최대 4자리씩, 4블록으로 구성됩니다(각 블록은 0~255).
- 인터넷 사용량이 늘어나며 IP 주소가 부족해지자, (훨씬 더 많은 주소를 표현할 수 있는) IPv6가 도입되었습니다.
- 하지만 (일반 사용자는 이 부분을 자세히 몰라도 인터넷 사용에 큰 지장은 없습니다).
-
공인 IP vs 사설 IP
- 공인 IP: 인터넷에 직접 노출되는 IP 주소. 예: (유튜브 서버의 IP)
- 사설 IP: 가정용 공유기나 회사 내부망에서 쓰는 IP 주소. 예: (192.168.x.x), (10.x.x.x)
외부 인터넷에서 사설 IP만으로는 직접 접속하기 어렵고, (공유기나 방화벽 같은 네트워크 장비)가 중간에서 연결을 중개해줍니다.
2. DNS(인터넷의 ‘전화번호부’)
-
DNS란?
DNS(Domain Name System)는 (사람이 읽기 편한 도메인 이름: 예: www.example.com)을
(컴퓨터가 이해하는 IP 주소: 예: 93.184.216.34)로 바꿔주는 시스템입니다.
(전화번호부)에서 ‘이름’을 찾으면 ‘전화번호’가 나오듯, DNS는 ‘도메인 이름 → IP 주소’ 검색을 도와줍니다.
-
도메인 이름이 필요한 이유
IP 주소를 직접 입력하는 것은 (숫자가 많고 복잡)해서 일반인이 외우기 어렵습니다.
예: (220.181.57.217)을 기억하는 것보다 (www.baidu.com)처럼 의미 있는 문자열이 훨씬 쉽습니다.
-
DNS의 동작 방식
1. 사용자가 브라우저에 (도메인 이름, 예: www.example.com)을 입력
2. 컴퓨터는 먼저 ‘로컬 DNS 캐시’나 (ISP에서 제공하는 DNS 서버 등)에
“이 도메인을 어느 IP 주소로 바꿔야 합니까?”라고 묻습니다.
3. DNS 서버는 자체적으로 저장된 ‘도메인 - IP 매핑 정보’를 확인하거나, 필요한 경우 다른 DNS 서버에 질의하여
최종 IP 주소를 알아냅니다.
4. 결과적으로 “www.example.com → 93.184.216.34” 같은 형태로
(브라우저에게 IP 주소를 알려줍니다).
-
DNS 캐시
한 번 DNS를 통해 (어떤 도메인의 IP 주소)를 알아내면, 일정 시간 동안
(브라우저나 운영체제)가 그 정보를 (캐시에 저장)해둡니다.
덕분에 (반복 접속) 시 DNS 서버에 다시 묻지 않아도 되어, (더 빠르게 웹페이지)에 접근할 수 있습니다.
-
DNS 서버 위치
- (가정용 인터넷)에서는 보통 (통신사, ISP)에서 제공하는 DNS 서버를 기본으로 사용합니다.
- 속도나 보안을 위해 (구글 DNS, 클라우드플레어 DNS) 등을 설정해 쓰기도 합니다.
3. URL(인터넷 리소스의 ‘전체 주소’)
-
URL이란?
URL(Uniform Resource Locator)은 (인터넷 상의 특정 리소스 - 예: 웹페이지, 이미지, 파일 - 에 접속하기 위한 전체 주소)입니다.
예: https://www.example.com:443/path/page.html?query=hello#section1
-
URL 구성 요소
-
프로토콜
예: http://
, https://
, ftp://
등
(데이터를 어떤 방식으로 주고받을지) 결정합니다.
웹페이지는 주로 (HTTP 또는 HTTPS)를 씁니다.
HTTPS는 (데이터를 암호화해 전송)하므로, (보안성이 높은) 프로토콜입니다.
-
도메인 이름(또는 호스트명)
예: www.example.com
DNS가 (도메인 → IP)로 바꿔주는 핵심 부분입니다.
-
포트 번호
예: :80
(HTTP), :443
(HTTPS)
(서버가 여러 서비스를 운영)할 때, 어떤 서비스로 연결해야 하는지 식별합니다.
보통 생략하면 기본 포트를 사용합니다(HTTP는 80, HTTPS는 443).
-
경로(Path)
예: /path/page.html
서버 내부에서 (어떤 폴더나 파일)에 접근할지를 나타냅니다.
-
쿼리(Query)
예: ?query=hello&lang=ko
(추가 데이터나 검색 키워드) 등을 전달하기 위한 부분입니다.
-
프래그먼트(Fragment)
예: #section1
웹페이지 안에서 (특정 위치나 섹션)을 가리킬 때 사용합니다.
-
URL의 역할
우리가 (문자 주소)인 URL을 입력하면, DNS가
(도메인 → IP)로 바꾸고, 브라우저는 해당 IP로
(경로, 쿼리 등 세부 정보)를 담아 (요청)을 보냅니다.
즉, URL은 (인터넷 리소스를 찾을 수 있는 모든 정보를 하나로 합쳐놓은 주소)입니다.
4. 실제 웹사이트 접속 과정: 단계별 예시
아래는 예시로 https://www.example.com
이라는 사이트를 들어가 볼 때 일어나는
(단계별 흐름)을 간단히 설명한 것입니다.
-
URL 입력
브라우저 주소창에 ( https://www.example.com )을 입력합니다.
(엔터)를 누르는 순간, 브라우저는 (도메인 이름) 부분만 먼저 확인합니다.
-
DNS 조회
(도메인: www.example.com)을 IP 주소로 알아내기 위해, 브라우저가
(DNS 서버)에게 “example.com은 어느 IP인가요?”라고 묻습니다.
DNS 서버가 “(93.184.216.34)입니다.”라고 (응답)합니다.
만약 (브라우저나 운영체제)가 이전에 이 주소를 방문했다면,
(캐시)에 있어서 (DNS 서버)까지 안 갈 수도 있습니다.
-
서버 접속 (네트워크 통신)
브라우저는 이제 (IP: 93.184.216.34)에 HTTPS(보안 통신) 방식으로 연결을 시도합니다.
(TCP/IP 프로토콜 계층) 등을 통해 실제 (데이터 패킷)을
주고받기 위한 통신 연결을 맺습니다.
-
HTTP(S) 요청
연결이 성립되면, “/ (루트 경로)에 있는 웹페이지를 달라”라는
(HTTP 요청 메시지)를 서버에 보냅니다.
요청 메시지 안에는 (사용자 브라우저 정보, 쿠키, 언어 설정 등)이 포함될 수 있습니다.
-
서버 응답(HTML, CSS, JS 등 전달)
웹서버는 요청을 받은 뒤, 해당 페이지에 필요한
(HTML 파일, CSS, JavaScript, 이미지 파일 주소) 등을
(응답 메시지)로 보냅니다.
만약 보안 연결(HTTPS)이면, (암호화된 형태)로 데이터를 전송합니다.
-
브라우저 렌더링(화면 표시)
브라우저는 (HTML)을 받아서 내부에 (DOM 트리)를 만들고,
(CSS)를 적용해 (화면 레이아웃)을 잡으며,
(JavaScript)가 있으면 실행해 (동적 동작)을 구현합니다.
페이지 내에 (추가 이미지나 폰트, 광고 리소스)가 있다면,
다시 (DNS 조회 → 서버 요청 → 응답)을 반복하여 모두 가져옵니다.
-
사용자는 결과 확인
최종적으로 (브라우저 창)에 웹페이지가 표시됩니다.
실제로는 많은 요청과 응답이 오가지만, (사용자 입장)에서는
“주소 입력 → 페이지 표시”라는 단순 동작으로 보입니다.
5. 정리 및 핵심 요약
-
IP
(인터넷에 연결된 모든 기기가 갖는 ‘실제 집 주소’ 같은 번호)
숫자로 된 형태라 (사람이 외우기 어렵지만) 컴퓨터가 이것을 통해 서로 통신합니다.
-
DNS
(도메인 이름 → IP 주소)로 바꿔주는 ‘전화번호부’ 역할
도메인만 기억하면 (DNS 서버)가 대신 (IP)를 찾아주어 사용자는 편리합니다.
-
URL
(인터넷 리소스 전체 주소)
(프로토콜, 도메인, 포트, 경로, 쿼리 등)을 모두 포함하여,
(특정 웹 자원)에 정확히 찾아갈 수 있게 해줍니다.
-
접속 과정
(URL 입력) → (DNS 조회로 IP 획득) → (IP로 서버에 요청) → (서버 응답) → (브라우저가 화면 표시)
알아두면 좋은 추가 내용
-
HTTPS 보안
(SSL/TLS) 암호화로 (주고받는 정보)가 도청이나 위조에 취약하지 않게 보호됩니다.
-
DNS 캐시, 브라우저 캐시
같은 사이트 재방문 시, (DNS 정보나 페이지 리소스)를 캐시해 (더 빠르게) 열립니다.
-
CDN(Content Delivery Network)
글로벌하게 분산된 서버들이 (사용자에게 가까운 서버)에서 콘텐츠를 제공해,
(속도)와 (안정성)을 높여줍니다.
-
IP가 바뀔 수 있음
사이트가 (서버 이전) 등을 하면 IP 주소가 달라질 수 있습니다.
이때 (DNS 정보)도 업데이트되어야 하며,
(전세계 DNS 서버)가 이를 반영하는 데 시간이 걸릴 수 있습니다(보통 수 시간~최대 1~2일).
마무리
결국, 우리가 (브라우저 주소창)에 글자로 된 주소(예: https://www.example.com
)를 입력하면,
- DNS가 (문자 주소 → IP)로 바꿔주고,
- IP 주소를 통해 (인터넷 상의 특정 서버)로 요청을 보낸 다음,
- 서버가 (HTML, 이미지 등)을 (응답)해주면,
- URL로 지정된 모든 리소스를 (브라우저)가 가져와 (화면에 웹페이지)를 완성합니다.
이렇게 IP, DNS, URL이 (유기적으로 연결)되어 돌아가기 때문에, 우리는
(복잡한 IP 주소)를 일일이 외우지 않아도 전 세계 어느 사이트든
편리하게 이동할 수 있습니다.
(전화번호부 + 집 주소 + 전체 상세 주소)를 떠올리시면, 인터넷이 정보를 주고받는
과정을 이해하기 훨씬 쉬울 거예요.