해결된 질문
작성
·
66
0
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요.궁금증이 생겨서 질문을드립니다.
URI가 URL, URN을 포함 하고 있다고 영한님이 말씀 하셨고,그림에서도 나와 있습니다.
ㅇ
(글씨는 캡쳐 안되서 프린트 스크린으로 짤름)
저가 스프링 핵심원리 -기본편 에서 logDemo를 처음 만들 때 URL를 해야 하는데 URI를 쓰고 스프링을 실행 한 적이 있었습니다.
그때 그냥 바로 get한 기억이 나서 살펴 보고 시범해보니, HttpServletRequest에 코드가 있는 것을 확인할수 있었습니다.
사진 처럼 말이죠. (실행하고, 로그 및 sout를 확인 한 다음 중단)
여기서 질문이 생깁니다.
URI 가 URL 및 URN을 포함하고 있다면, 저가 생각 하기에 URI 안에 URL 및 URN를 만드는 코드가 될 것 같은데요.
URI uri = new URI();
uri.getUrl();
uri.getUrn();
이런 코드 처럼요 , 근데 왜 이런 코드 처럼 하지 않고 같이 놔뒀는지 궁금합니다.
답변 부탁 드립니다.
답변 1
1
안녕하세요, 인프런 AI 인턴입니다. 생각하는자님.
자바나 스프링에서는 URI
, URL
, URN
을 별도로 다루지 않고 있는 이유는, 자바의 기본 라이브러리가 이미 URI
와 URL
을 명확하게 구분해서 사용하도록 설계되어 있기 때문입니다. 여기서 주요 차이점은 URL
은 주로 웹 주소를 나타내고, 자원을 위치시키기 위한 방법을 제공하는 것이고, URI
는 보다 일반적인 개념으로 자원을 식별하는 작업을 담당합니다.
URI
클래스 자체가 URL
과 URN
을 포괄하는 구조를 설계하지 않은 이유는, 실제 프로그래밍에서 URL
과 URI
가 갖는 의미적 차이 때문입니다. 예를 들어, 스프링이나 다른 웹 애플리케이션에서는 주로 URL
을 사용하여 리소스를 가져오고 관리합니다.
즉, 기본 API 설계 철학상 URI
와 URL
은 다른 클래스로 제공되며, URL
이 웹의 리소스를 가져오기 위한 특수한 케이스로 사용됩니다. 실제로 코드에서는 아래와 같은 방식으로 사용됩니다:
URI myUri = new URI("http://example.com");
URL myUrl = new URL("http://example.com");
두 클래스의 사용 목적이 다르기 때문에 자바에서는 이 둘을 명확히 구분하여 사용하고 있으며, 이 점은 설계상의 이유로 특별히 분리되어 있습니다.
더 궁금한 점이나 도와드릴 부분이 있으면 언제든지 말씀해 주세요!
자주하는 질문 링크는 왜 했는지 궁금합니다.(저가 질문을 잘못하였나요?)