728x90
반응형
이게 대체 왜 생겼을까
면접이나 볼 때마다 "URL과 URI 차이에 대해서 설명해 보세요" 하면 말문 막힙니다.
결론부터 말하면 URI가 가장 큰 부모 개념이고, URL과 URN은 그 밑에 들어가는 자식들입니다.
쉽게 현실 세계에 빗대어 봅시다.
- URI (주민등록증 or 도로명주소 등 식별하는 모든 방법): "특정 대상을 유일하게 구분할 수 있는 모든 식별자"입니다.
- URL (집 주소): "그 사람이 지금 어디 사는지 찾아가는 구체적인 위치"입니다.
- 예: 서울시 강남구 테헤란로 123 4층
- URN (주민등록번호 / ISBN): "이사 가거나 주소가 바뀌어도 절대 안 변하는 평생 고유 이름/번호"입니다.
- 예: 900101-1234567
- URL (집 주소): "그 사람이 지금 어디 사는지 찾아가는 구체적인 위치"입니다.
친구가 "홍길동 어디 있어?"라고 물었을 때,
집 주소(URL)를 알려줘도 홍길동을 찾을 수 있고
주민번호(URN)를 조회해도 홍길동을 특정할 수 있죠?
이 둘을 다 합쳐서 "대상을 식별하는 체계(URI)"라고 부르는 겁니다.
URL, URI, URN 구조
URL (Uniform Resource Locator) : "어디로 가면 찾을 수 있는데?"
자원이 네트워크상 어디(Location)에 있고, 어떤 프로토콜(Protocol)로 가져올 수 있는지 구체적인 접근 경로를 명시합니다.

- Scheme (https): 자원에 접근하는 규칙(택배로 보낼지, 퀵으로 보낼지 정하는 통신 규약)
- Host / Domain (www.mysite.com): 자원이 있는 서버의 주소 (어느 건물인지)
- Port (:443): 서버의 특정 출입구 번호 (보통 80, 443은 생략)
- Path (/products/detail): 서버 내부의 파일 위치나 API 엔드포인트 경로 (건물 안 몇 호실인지)
- Query String (?id=1024): 서버에 넘겨주는 세부 파라미터 key-value
- Fragment / Anchor (#spec): 페이지 내부의 특정 북마크 위치 (해당 방의 특정 서랍)
URN (Uniform Resource Name) : "주소가 바뀌어도 안 변하는 이름"
서버 위치나 도메인이 폐업해서 URL이 터지더라도, 그 자원 자체를 영원히 식별할 수 있도록 붙인 고유 명칭입니다.
urn:isbn:9780132350884 (도서 '클린 코드'의 ISBN)
urn:ietf:rfc:7230 (HTTP/1.1 규격 문서)
- Prefix (urn): "나 URN이야"라고 알려주는 스키마
- NID (isbn, ietf:rfc): 식별 체계를 정의하는 네임스페이스 이름
- NSS (9780132350884): 해당 네임스페이스 안에서 겹치지 않는 유일한 고유값
(참고) 클라우드 인프라: AWS ARN
클라우드 인프라에서는 서버 IP나 도메인이 수시로 생성되고 삭제(Ephemeral)됩니다. EC2가 죽고 새로 뜨면 IP(URL 기반 위치)가 계속 바뀌는데, 그때마다 보안 정책을 바꿀 순 없겠죠?
그래서 AWS는 위치(URL)가 아닌 영구적인 이름표(URN) 사상을 가져와 ARN(Amazon Resource Name)을 만들어 자원을 식별합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowS3Access",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::production-service-logs/app/*"
}
]
}
- 동작 원리: AWS 리전 데이터센터의 물리적 서버 위치나 내부 IP가 어떻게 바뀌든 상관없습니다.
- arn:aws:s3:::production-service-logs/app/*라는 고유한 식별자(URN 체계)로 IAM 권한을 한 번 딱 묶어두면, 인프라가 아무리 동적으로 변해도 보안 정책이 깨지지 않고 안전하게 유지됩니다.
URI (Uniform Resource Identifier) : "식별할 수 있으면 다 내 밑으로"
위치를 나타내든(URL), 고유 이름을 나타내든(URN), 아니면 메일 주소(mailto:user@test.com)나 로컬 파일(file:///C:/doc.pdf)처럼 특정 리소스를 고유하게 식별할 수 있는 모든 표준 규격 문자열을 뜻합니다.
728x90
반응형
'CS > Network' 카테고리의 다른 글
| GSLB(Global Service Load Balancing)란 (0) | 2026.06.01 |
|---|---|
| [IT 용어] 페이로드(Payload)란? (1) | 2026.01.11 |
| HTTP의 역사: 0.9부터 3.0(QUIC)까지 (2) | 2026.01.02 |
| 면접에 나오는 라우팅 프로토콜과 라우티드 프로토콜 (0) | 2025.12.22 |
| SNMP 프로토콜 (2) | 2025.12.20 |