URI(Uniform Resource Identifier, 통합 자원 식별자)는 웹에 있는 "자원(resources)"을 식별하는 데 사용돼요. URI는 흔히 HTTP 요청의 타겟으로 사용되는데, 이 경우 URI는 문서나 사진, 바이너리 데이터 같은 자원의 위치를 나타내게 된답니다. URI의 가장 흔한 형태는 우리가 웹 주소라고 잘 알고 있는 URL(Uniform Resource Locator)이에요.
💡 강사의 팁: 프론트엔드 기술 면접에서 "URI와 URL의 차이가 무엇인가요?"라는 질문이 꽤 자주 나옵니다. 식별자(Identifier)라는 큰 범주인 URI 안에, 자원의 구체적인 위치(Location)를 나타내는 URL이 포함되어 있다고 이해하시면 완벽해요!
또한, URI는 자원을 단순히 가져오는 것 외에도 다른 여러 동작을 실행시키는 데 쓰일 수 있어요. HTML <a> 링크의 href 속성 같은 곳에 URI를 사용하면, 이메일 클라이언트를 열거나(mailto:), 문자 메시지를 보내거나(sms:), 자바스크립트를 실행(javascript:)하는 등의 동작을 일으킬 수도 있죠.
💡 강사의 팁: 포트폴리오 웹사이트나 프로필 페이지를 만드실 때, 이메일 문의 버튼에
<a href="mailto:내이메일@주소.com">을 넣어보세요. 클릭 한 번으로 사용자 기기의 기본 이메일 앱이 열리게 할 수 있어서 매우 실용적입니다!
URI 참조 (URI reference) 문서에서는 URI를 구성하는 각 컴포넌트(요소)들에 대한 자세한 정보를 제공하고 있어요.
스킴 (Schemes)
: URI의 가장 첫 번째 부분으로, : 문자 앞에 오는 텍스트예요. 브라우저가 자원을 가져올 때 반드시 사용해야 하는 프로토콜(protocol)이 무엇인지 알려주는 역할을 한답니다. (예: http, https)
권한 (Authority)
: 스킴 바로 다음부터 경로(path)가 시작되기 전까지의 구간이에요. 이 구간은 최대 세 가지 부분으로 나뉠 수 있는데, 바로 사용자(user) 정보, 호스트(host), 그리고 포트(port) 랍니다.
경로 (Path)
: 권한(Authority) 뒤에 이어지는 구간이에요. 보통 계층적인(hierarchical) 형태로 구성된 데이터를 담고 있고, URI의 스킴과 권한 범위 내에서 특정 자원을 찾아내기 위해 사용돼요.
쿼리 (Query)
: 경로(Path) 뒤에 따라오는 구간이에요. ? 로 시작하죠. URI의 스킴과 이름 권한, 그리고 경로 컴포넌트의 데이터와 더불어서 자원을 식별하기 위한 비계층적(non-hierarchical) 데이터를 포함하고 있어요. 보통 ?key=value 형태로 쓰입니다.
프래그먼트 (Fragment)
: URI의 맨 마지막에 선택적으로 붙일 수 있는 부분으로, # 문자로 시작해요. 이건 문서 내의 특정 섹션이나 비디오의 특정 위치처럼 자원 안의 "특정 부분"을 바로 가리키기 위해 사용된답니다.