URI, URL, URN의 차이점은 무엇인가요?
URI, URL, URN 차이점 완벽 정리! 🌐
쉬운 비유로 이해하기 🏠
URI를 집 주소 시스템으로 생각해보세요!
- URI: 집을 찾는 모든 방법 (주소, 이름 등)
- URL: 집의 정확한 주소 ("서울시 강남구 테헤란로 123번길")
- URN: 집의 고유한 이름 ("김철수네 집")
각각의 특징 살펴보기 📋
URI (Uniform Resource Identifier) 🆔
모든 인터넷 자원을 식별하는 최상위 개념
- URL + URN을 모두 포함하는 상위 개념
- 자원을 유일하게 식별하는 문자열
- 위치든 이름이든 상관없이 구별만 가능하면 OK
URL (Uniform Resource Locator) 📍
자원이 "어디에" 있는지 알려주는 주소
// Next.js API 라우트에서 URL 파싱
export default function handler(req, res) {
const { protocol, host, pathname } = new URL(req.url, `http://${req.headers.host}`);
console.log('Protocol:', protocol); // "https:"
console.log('Host:', host); // "example.com"
console.log('Path:', pathname); // "/api/users"
}
URL 구조 분석 🔍
- https://www.example.com/path/to/resource
- 프로토콜://도메인/경로
URN (Uniform Resource Name) 🏷️
자원의 "이름"으로 식별하는 방식
// React에서 URN 활용 예시
const BookInfo = ({ isbn }) => {
const urn = `urn:isbn:${isbn}`; // URN 형태
// ISBN URN을 실제 URL로 변환
const getBookUrl = (urn) => {
const isbn = urn.split(':')[2];
return `https://books.google.com/books?isbn=${isbn}`;
};
return 도서 정보 보기;
};
실생활 예시로 더 쉽게! 🎯
카페를 찾는다면? ☕
- URI: "스타벅스 강남점을 찾는 방법"
- URL: "서울시 강남구 테헤란로 152 강남파이낸스센터 1층" (정확한 위치)
- URN: "스타벅스-강남점-001" (고유 식별자)
웹개발에서는? 💻
- URI: 웹 자원을 식별하는 모든 방법
- URL: https://api.example.com/users/123 (API 엔드포인트 위치)
- URN: urn:user:uuid:550e8400-e29b-41d4-a716-446655440000 (사용자 고유ID)
기억하면 좋은 포인트 ⭐
- URI는 큰 우산 ☂️ (URL, URN 모두 포함)
- URL은 주소 📍 (어디에 있는지)
- URN은 이름표 🏷️ (무엇인지)
웹 개발할 때 대부분 URL을 사용하지만, URN도 고유 식별자가 필요한 상황에서 유용해요!
특히 API 설계나 데이터베이스 설계에서 영구적인 식별자가 필요할 때 URN 개념을 활용하면 좋답니다 🎯
URI, URL, URN의 차이점은 무엇인가요?

URI (Uniform Resource Identifier) 는 인터넷에서 자원을 식별하기 위한 문자열입니다. URI는 URL과 URN을 포함하는 상위 개념입니다. 즉, 특정 자원을 식별하기 위한 포괄적인 방법을 제공하며, 자원의 위치나 이름을 나타낼 수 있습니다.
URL (Uniform Resource Locator) 는 URI의 한 형태로, 인터넷상에서 자원의 위치를 나타내는 방식입니다. 자원이 어디에 있는지를 설명하는데 사용되며, 자원에 접근하기 위한 프로토콜을 포함합니다. 예를 들어, 웹페이지의 URL은 해당 페이지가 위치한 서버의 주소와 접근 방법(예: HTTP)을 포함합니다. ex) https://www.example.com/path/to/resource
URN (Uniform Resource Name) 은 URI의 또 다른 형태로, 자원의 위치와 상관없이 자원의 이름을 식별하는 방식입니다. 자원의 위치가 변하더라도 동일한 식별자를 유지할 수 있게 합니다. 특정 스키마를 따르며, 자원에 대한 영구적인 식별자를 제공합니다. ex) urn:isbn:0451450523 (특정 책의 ISBN 번호)