코딩/Spring

URI vs URL

americanoallday 2025. 4. 1. 09:38

✅ 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