개발자 기술면접 꼬리물기 질문
  • Welcome
  • 01 Java
    • 01-01. Generic
    • 01-02. Garbage Collection
    • 01-03. 자료형과 객체 비교
    • 01-04. 힙(Heap)과 메모리(Memory)
    • 01-05. Java 버전과 JDK / JRE
    • 01-06. 스레드(Thread)
    • 01-07. 예외(Throwable)
    • 01-08. Call By Value와 Call By Reference
    • 01-09. String, equals, StringBuffer
    • Thread와 비동기
  • 02 Spring
    • 02-01. Spring 동작 방식
    • 02-02. 인증(Authentication)과 인가(Authorization)
    • @Autowired, @RequiredArgsConstructor
    • 트랜잭션(Transaction)
    • QueryDSL과 SQL Injection
    • SecurityContextHolder
    • @EqualsAndHashCode
  • 03 DATABASE
    • 03-01. Join
    • 03-02. Index
    • 정규화 (Normalization)
    • 파티셔닝과 샤딩(Partitioning & Sharding)
    • 트랜잭션(Transaction)과 락(Lock)
    • 덤프(Dump)
    • Redis
    • 격리 수준(MySQL)
  • 04 Algorithms & Data Structures
    • 04-01. Set
    • 04-02. 정렬
    • 04-03. 우선순위 큐 (Priority Queue)
    • DFS와 BFS
    • 힙(Heap) 자료구조
    • 스택(Stack)과 큐(Queue)
    • 암호화 알고리즘
    • LinkedList
    • 자료구조 - 해시 테이블(HashTable)
    • 자료구조 - ConcurrentHashMap
  • 05 NETWORK
    • 05-01 Proxy Server
    • 05-02 Http 프로토콜
    • 전송 계층 (Transport Layer)
    • 네트워크 계층 (Network Layer)
    • Http와 Https
    • IP(Internet Protocol)
    • 소켓(Socket)
    • 로드 밸런싱(Load Balancing)
  • 06 WEB
    • 06-01 CORS 정책
    • 동시성 제어
    • N+1 문제
    • 웹 브라우저 동작원리
    • URI, URL, URN
    • 채팅 아키텍처 설계
  • 디자인 패턴
    • 전략 패턴 (Strategy Pattern)
    • 싱글톤 패턴 (Singleton Pattern)
    • 템플릿 메서드 패턴과 전략 패턴
    • 데코레이터 패턴 (Decorator pattern)
  • 개발자
    • 개발 방법론 TDD
  • 운영체제
    • JIT & AOT 컴파일
    • 컨텍스트 스위칭(Context Switching)
    • 프로세스와 스레드
    • 싱글 스레드와 멀티 스레드
  • 코딩테스트
    • Stack / Queue (스택 / 큐)
    • Heap(우선 순위 큐)
    • DP(동적 계획법)
    • DFS(깊이 우선 탐색)
    • BFS(너비 우선 탐색)
    • Greedy(그리디 알고리즘)
    • 해시(Hash)
    • 투 포인터 알고리즘
    • Shortest path
    • 수학적 사고
Powered by GitBook
On this page
  • Q. URI, URL, URN의 차이점에 대해서 설명해주세요.
  • Q. URL에는 쿼리 문자열이 붙을 수 있는데, 서로 다른 쿼리 문자열이 붙은 두 URL은 같은 URL일까요?
  1. 06 WEB

URI, URL, URN

Q. URI, URL, URN의 차이점에 대해서 설명해주세요.

URI는 Uniform Resource Identifier의 약자로 인터넷에서 자원을 식별하기 위한 문자열입니다. 쉽게 말해, 어떤 리소스를 가리키는 "이름포"라고 볼 수 있습니다. URI는 URL과 URN을 포함하는 상위 개념입니다. URL은 Uniform Resource Locator의 약자로 우리가 흔히 알고 있는 웹 주소를 말합니다. 특정 자원이 어디에 있는지를 나타내며, 그 자원에 접근하는 방법(예: HTTP, FTP 등)도 포함합니다. 예를 들어 https://www.loatodo.com/todo/resource 이 URL은 www.loatodo.com 서버의 /todo/resource 경로에 있는 자원에 HTTPS 프토토콜을 이용해 접근한다는 것을 의미합니다. 반면에, Uniform Resource Name인 URN은 자원의 위치와 상관없이 자체적으로 유일한 이름을 부여하는 방식입니다. 즉, 특정 리소스가 어디에 있든 변하지 않는 고유한 식별자입니다. 예를 들어, urn:isbn:978-3-16-148410-0 이 URN은 특정 책의 ISBN을 나타내는 것으로, 책의 실제 위치(온라인 서점이든 도서관이든)와 관계없이 항상 같은 값을 유지합니다.

Q. URL에는 쿼리 문자열이 붙을 수 있는데, 서로 다른 쿼리 문자열이 붙은 두 URL은 같은 URL일까요?

두 URL, https://loatodo.com/todo?id=123과 https://loatodo.com/todo?id=111은 같은 기본 경로(https://loatodo.com/todo)를 가지지만, 서로 다른 쿼리 문자열(id=123, id=111)을 포함하고 있습니다.

URL(Uniform Resource Locator)은 자원의 위치를 나타내므로, 쿼리 문자열이 달라지면 서로 다른 URL로 간주됩니다. 또한, URI(Uniform Resource Identifier)의 일부로서 쿼리 문자열은 자원을 구별하는 역할을 하므로, 쿼리 문자열이 다르면 URI도 달라지며, 결국 URL도 달라진다고 볼 수 있습니다.

다만, 문맥에 따라 해석이 달라질 수 있습니다. 웹 브라우저나 서버 입장에서는 쿼리 문자열이 다르면 서로 다른 리소스를 요청하는 것으로 인식될 수 있지만, 예를 들어 ?sort=price처럼 정렬 방식만 변경하는 경우, 이는 동일한 리소스의 다른 표현일 뿐, 본질적으로 다른 리소스를 요청하는 것은 아닙니다. 따라서, 특정한 맥락에서는 쿼리 문자열이 다르더라도 동일한 리소스로 볼 수도 있습니다.

Previous웹 브라우저 동작원리Next채팅 아키텍처 설계

Last updated 4 months ago