URL 구조 이해하기 - 주소창만 봐도 사이트가 보이는 도메인, 경로, 쿼리스트링 완벽 정리
매일 보는 인터넷 주소, 어디까지 읽을 수 있으신가요? 스킴부터 도메인, 경로, 쿼리스트링, 프래그먼트까지 URL의 여섯 가지 구성 요소를 실제 예시로 하나씩 뜯어보고, 주소창으로 피싱 사이트를 구별하는 방법까지 정리했습니다.
![]()
하루에 주소창을 몇 번이나 보시나요? 아마 수십 번은 넘을 겁니다. 그런데 막상 https://www.example.com/blog?page=2 같은 주소에서 각 부분이 무슨 뜻인지 물어보면 정확히 답하는 분은 의외로 적습니다. URL 구조 이해하기는 개발자만의 영역이 아닙니다. 주소를 읽을 줄 알면 피싱 사이트를 걸러낼 수 있고, 링크를 공유할 때 불필요한 추적 코드를 지울 수 있으며, 블로그나 홈페이지를 운영한다면 검색 노출에도 직접적인 도움이 됩니다.
URL이란 정확히 무엇일까
URL은 Uniform Resource Locator의 약자로, 우리말로 풀면 '자원의 위치를 가리키는 통일된 표기법'입니다. 1994년 RFC 1738 문서에서 표준이 처음 정의됐고, 2005년 RFC 3986에서 지금 쓰는 일반 문법으로 정리됐습니다. 30년 넘게 인터넷의 기본 주소 체계로 쓰이고 있는 셈입니다.
쉽게 비유하면 URL은 택배 송장과 같습니다. 어떤 방법으로(스킴), 어느 건물의(도메인), 몇 층 몇 호에(경로), 어떤 조건으로(쿼리스트링) 전달할지가 한 줄에 모두 담겨 있습니다.
URL은 단순한 주소가 아니라 웹 문서의 이름표입니다. 주소만 읽어도 이 페이지가 어떤 사이트의 어떤 내용인지 짐작할 수 있어야 잘 설계된 URL입니다.
URL을 구성하는 6가지 핵심 요소
예시 주소 https://www.example.com:443/blog/post?page=2#comments를 앞에서부터 잘라보면 다음과 같습니다.
| 구성 요소 | 예시 | 역할 |
|---|---|---|
| 스킴(Scheme) | https:// | 통신 방식. 어떤 규약으로 접속할지 지정 |
| 도메인(호스트) | www.example.com | 서버의 이름. 사람이 기억하기 쉬운 주소 |
| 포트(Port) | :443 | 서버의 출입문 번호. 보통 생략됨 |
| 경로(Path) | /blog/post | 서버 안에서 문서의 위치 |
| 쿼리스트링(Query) | ?page=2 | 서버에 전달하는 추가 조건 |
| 프래그먼트(Fragment) | #comments | 문서 내부의 특정 위치 |
스킴, 접속 방식을 결정합니다
자주 보이는 스킴은 다음과 같습니다.
- https:// : 암호화된 웹 통신. 현재 웹의 표준입니다
- http:// : 암호화되지 않은 통신. 입력한 내용이 중간에서 노출될 수 있습니다
- mailto: : 클릭하면 메일 작성 창이 열립니다
- tel: : 모바일에서 전화 걸기로 연결됩니다
포트는 왜 안 보일까
포트는 서버의 출입문 번호입니다. HTTPS는 443번, HTTP는 80번이 기본값으로 정해져 있어서 브라우저가 자동으로 붙여줍니다. 그래서 평소에는 보이지 않고, 개발 서버 주소에서 :3000이나 :8080 같은 숫자를 보게 되는 것입니다.
도메인 뒤에 숨어 있는 IP 주소
도메인은 사람을 위한 이름일 뿐, 컴퓨터는 실제로 숫자로 된 IP 주소로 서버를 찾아갑니다. 주소창에 도메인을 입력하면 DNS(Domain Name System)라는 전화번호부가 도메인을 IP 주소로 바꿔주고, 그제서야 접속이 시작됩니다. 이 과정은 보통 수십 밀리초 안에 끝나기 때문에 우리가 체감하지 못할 뿐입니다.
도메인은 뒤에서부터 읽는 것이 정확합니다. www.example.co.kr이라면 kr(국가), co(기관 성격), example(등록한 이름), www(서브도메인) 순서의 계층 구조입니다. 최상위 도메인(TLD)은 .com과 .kr 외에도 전 세계에 1,500개 이상 운영되고 있습니다.
내 컴퓨터가 어떤 IP로 인터넷에 연결되어 있는지 궁금하다면 IP 주소 조회 같은 웹 도구에 접속하는 것만으로 바로 확인할 수 있습니다. 도메인과 IP의 관계를 직접 눈으로 확인해보면 URL 구조 이해하기가 훨씬 쉬워집니다.
경로와 쿼리스트링 읽는 법
도메인 다음에 오는 경로는 폴더 구조와 같습니다. /blog/2026/url-guide라면 블로그 폴더 안의 2026 폴더 안에 있는 문서라고 읽으면 됩니다. 반면 학점 계산기처럼 하나의 기능에 집중한 도구 사이트는 루트 도메인 하나로 서비스가 완결되기도 합니다. 경로가 짧다고 나쁜 것이 아니라, 사이트의 성격에 맞는 구조인지가 중요합니다.
물음표(?) 뒤에 붙는 쿼리스트링은 '이름=값' 쌍을 & 기호로 이어 붙인 형태입니다. 검색어, 페이지 번호, 정렬 방식 같은 조건이 여기에 담깁니다. 쇼핑몰에서 ?sort=price&page=3 같은 주소를 봤다면 '가격순 정렬의 3페이지'라고 읽을 수 있습니다.
utm_source, utm_campaign처럼 utm_으로 시작하는 파라미터는 마케팅 추적용 코드입니다. 페이지 내용에는 아무 영향이 없고, 어디서 유입됐는지 기록하는 용도입니다.
검색엔진이 좋아하는 URL의 조건
사이트를 운영하는 입장이라면 URL 구조는 SEO의 기본기입니다. 구글은 공식 문서에서 단순하고 사람이 읽을 수 있는 URL을 권장합니다. 실무에서 통용되는 원칙은 다음과 같습니다.
- 짧고 의미 있게 : /p?id=8231보다 /blog/url-guide가 낫습니다
- 단어 구분은 하이픈(-)으로 : 언더스코어(_)보다 하이픈이 표준 관행입니다
- 소문자로 통일 : 대소문자를 섞으면 같은 페이지가 중복 수집될 수 있습니다
- 계층은 3단계 이내로 : 경로가 깊어질수록 관리와 이해가 어려워집니다
한 번 공개한 URL을 바꾸면 기존에 쌓인 검색 순위와 외부 링크가 끊어지므로, 처음부터 오래 쓸 구조를 정하는 것이 가장 큰 절약입니다.
주소창으로 피싱 사이트 구별하기
URL을 읽을 줄 알면 피싱을 상당 부분 걸러낼 수 있습니다. 핵심은 도메인을 뒤에서부터 읽는 습관입니다. naver-event.xyz라는 주소는 네이버와 아무 관련이 없습니다. 진짜 소유자는 마지막 점 앞의 이름, 즉 naver-event를 등록한 사람입니다. 마찬가지로 kakao.secure-login.com도 카카오가 아니라 secure-login.com 소유자의 사이트입니다.
- 도메인의 마지막 점 앞 단어가 진짜 사이트 이름인지 확인합니다
- o를 0으로, l을 1로 바꾼 비슷한 철자가 없는지 봅니다
- https라도 안심하지 않습니다. 암호화 여부일 뿐 운영자의 신뢰도와는 무관합니다
오늘 당장 해볼 만한 일 두 가지를 제안합니다. 첫째, 지금 열려 있는 아무 사이트나 주소창을 보고 스킴, 도메인, 경로, 쿼리스트링을 직접 나눠 읽어보세요. 둘째, 문자나 메일로 받은 링크는 누르기 전에 도메인의 마지막 점 앞 단어부터 확인하는 습관을 들여보세요. 이 두 가지만으로도 URL은 더 이상 암호가 아니라 정보가 됩니다.