✅ URI vs URL 차이점
구분 | URI (Uniform Resource Identifier) | URL (Uniform Resource Locator) |
✅ 의미 | 리소스를 식별하는 고유한 “이름” | 리소스의 “위치(주소)“를 알려줌 |
✅ 포함 관계 | URI가 더 큰 개념 | URL은 URI의 일종 |
✅ 예시 | mailto:sun@example.comtel:010-1234-5678https://naver.com/search?q=spring | https://naver.com/search?q=spring |
✅ 구성 요소 | 스킴(scheme), 경로(path), 쿼리 등 포함 | 스킴 + 도메인 + 경로 + 쿼리 |
☝️ 쉽게 말하면…
✅ URI는 “리소스를 지칭”하는 말
✅ URL은 “그 리소스에 어떻게 접근할지 알려주는 주소”
💡 비유로 설명하면:
📘 도서관 책
• URI: "소설 > 한국문학 > 김영하 > 살인자의 기억법"
→ “책의 이름과 위치 정보”
• URL: "서울 중앙도서관 2층 3번 책장"
→ “어디 가면 그 책을 찾을 수 있어”
☑️ 책이란 리소스를 “식별”하는 게 URI
☑️ 책을 실제로 “찾아가는 경로”가 URL
📌 프로그래밍에서는?
✅ 1. URL 예시 (리소스의 “위치”)
URL url = new URL("https://example.com/api/schedules/1?date=2025-03-28");
System.out.println("프로토콜: " + url.getProtocol()); // https
System.out.println("호스트: " + url.getHost()); // example.com
System.out.println("경로(path): " + url.getPath()); // /api/schedules/1
System.out.println("쿼리(query): " + url.getQuery()); // date=2025-03-28
💡 URL 클래스는 실제로 웹에 접근하는 데 사용 가능
InputStream is = url.openStream(); // 웹 리소스를 가져옴
✅ 2. URI 예시 (리소스를 “식별”하는 용도)
URI uri = new URI("mailto:sun@example.com");
System.out.println("스킴: " + uri.getScheme()); // mailto
System.out.println("주소: " + uri.getSchemeSpecificPart()); // sun@example.com
💡 URI는 “주소 개념만 있음” → 실제로 접속하는 기능은 없음
✅ 둘 다 사용하는 예시 (URI → URL)
URI uri = new URI("https://example.com/api/posts/7");
URL url = uri.toURL(); // URI를 URL로 변환
System.out.println("접속 가능한 URL: " + url);
'코딩 > Spring' 카테고리의 다른 글
@Transactional (1) | 2025.03.31 |
---|---|
Spring 1 : 스프링 개념 (0) | 2025.02.07 |