1 / 3

uri는 인터넷 페이지 주소만 나타내는역할을하나?

예상 시간: 5분

uri는 인터넷 페이지 주소만 나타내는역할을하나?

uri는 인터넷 페이지 주소만 나타내는역할을하나?


URI는 웹 페이지만을 위한 게 아닙니다

URI = 모든 종류의 리소스를 식별하는 문자열입니다.


다양한 URI 예시

URI식별 대상
https://google.com/search웹 페이지
mailto:user@example.com이메일 주소
tel:+82-10-1234-5678전화번호
file:///home/user/doc.pdf로컬 파일
ftp://ftp.example.com/file.zipFTP 파일
ssh://user@server.comSSH 접속
git://github.com/user/repo.gitGit 저장소
magnet:?xt=urn:btih:...토렌트 파일
spotify:track:4iV5W9uYEdYUVa79Axb7RhSpotify 노래
urn:isbn:978-89-123-4567-8책 (ISBN)

실생활에서 보는 URI

1. 앱 열기 (딥링크)

카카오톡 열기:    kakaotalk://
인스타그램 프로필: instagram://user?username=nasa
유튜브 영상:      youtube://watch?v=dQw4w9WgXcQ

폰에서 링크 클릭하면 앱이 열리는 이유 = URI 스킴 등록


2. 안드로이드 Intent

intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end

특정 앱의 특정 기능 호출


3. 데이터베이스 연결

postgresql://user:pass@localhost:5432/mydb
mongodb://localhost:27017/mydb
redis://localhost:6379/0

4. 메신저/화상통화

slack://channel?team=T123&id=C456
zoom://zoom.us/join?confno=123456789
sms:+821012345678?body=안녕하세요

5. 암호화폐 주소

bitcoin:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa?amount=0.001
ethereum:0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7

URI의 구조

  scheme://authority/path?query#fragment
  └─┬──┘   └──┬───┘ └┬─┘ └─┬─┘ └──┬──┘
    │         │      │     │      │
    │         │      │     │      └─ 문서 내 위치
    │         │      │     └─ 추가 파라미터
    │         │      └─ 리소스 경로
    │         └─ 호스트/권한
    └─ 프로토콜/체계

scheme만 바뀌면 완전히 다른 리소스:

https://example.com   → 웹 페이지
ftp://example.com     → FTP 서버
ssh://example.com     → SSH 서버

URN (이름 기반 URI)

위치가 아닌 고유 이름으로 식별:

urn:isbn:0451450523          → 책
urn:uuid:f81d4fae-7dec-11d0  → UUID
urn:ietf:rfc:3986            → RFC 문서

책이 어느 서점에 있든, ISBN은 변하지 않음.


요약

URI
├── URL (위치 기반) → https://, ftp://, file://
└── URN (이름 기반) → urn:isbn:, urn:uuid:
 
용도:
- 웹 페이지 ✅
- 파일 ✅
- 이메일 ✅
- 전화번호 ✅
- 앱 딥링크 ✅
- DB 연결 ✅
- 책/논문 식별 ✅
- ... 모든 리소스 식별 가능

★ Insight ─────────────────────────────────────

  1. URI는 웹보다 큰 개념: 웹은 URI의 한 응용일 뿐. "인터넷 주소"보다 "리소스 식별자"가 정확한 표현
  2. 커스텀 스킴: 누구나 myapp:// 같은 스킴을 만들 수 있음. iOS/Android 앱들이 딥링크에 활용 ─────────────────────────────────────────────────