CS/Network

URI, URL, URN 차이(AWS ARN)

테크리빗 2026. 8. 31. 01:22
728x90
반응형

이게 대체 왜 생겼을까

면접이나 볼 때마다 "URL과 URI 차이에 대해서 설명해 보세요" 하면 말문 막힙니다.

결론부터 말하면 URI가 가장 큰 부모 개념이고, URL과 URN은 그 밑에 들어가는 자식들입니다.

 

쉽게 현실 세계에 빗대어 봅시다.

  • URI (주민등록증 or 도로명주소 등 식별하는 모든 방법): "특정 대상을 유일하게 구분할 수 있는 모든 식별자"입니다.
    • URL (집 주소): "그 사람이 지금 어디 사는지 찾아가는 구체적인 위치"입니다.
      • 예: 서울시 강남구 테헤란로 123 4층
    • URN (주민등록번호 / ISBN): "이사 가거나 주소가 바뀌어도 절대 안 변하는 평생 고유 이름/번호"입니다.
      • 예: 900101-1234567

 

친구가 "홍길동 어디 있어?"라고 물었을 때,

집 주소(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
반응형