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.zip | FTP 파일 |
ssh://user@server.com | SSH 접속 |
git://github.com/user/repo.git | Git 저장소 |
magnet:?xt=urn:btih:... | 토렌트 파일 |
spotify:track:4iV5W9uYEdYUVa79Axb7Rh | Spotify 노래 |
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/04. 메신저/화상통화
slack://channel?team=T123&id=C456
zoom://zoom.us/join?confno=123456789
sms:+821012345678?body=안녕하세요5. 암호화폐 주소
bitcoin:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa?amount=0.001
ethereum:0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7URI의 구조
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 ─────────────────────────────────────
- URI는 웹보다 큰 개념: 웹은 URI의 한 응용일 뿐. "인터넷 주소"보다 "리소스 식별자"가 정확한 표현
- 커스텀 스킴: 누구나
myapp://같은 스킴을 만들 수 있음. iOS/Android 앱들이 딥링크에 활용─────────────────────────────────────────────────