Q1.
(10월 16일 수업 중 08-05 SessionController 참고)
SessionController에서, return "/session/home"; 원래는 이 부분에서, "session/home"; 이 맞는 표현 아닌가?
A1.
return "/session/home";와 return "session/home";의 차이는 경로의 절대성과 상대성에 있습니다.
1. "/session/home": 절대 경로를 나타내며, 루트 디렉토리부터 시작합니다.
2. "session/home": 상대 경로를 나타내며, 현재 디렉토리 기준으로 경로를 설정합니다.
만약 해당 경로가 웹 애플리케이션의 루트 경로에서 시작해야 한다면, "/session/home"이 맞습니다. 하지만 현재 디렉토리 기준으로 경로를 설정해야 한다면 "session/home"이 맞습니다.
따라서, 어떤 경로가 맞는지는 애플리케이션의 구조와 요구사항에 따라 다릅니다. 경로가 절대 경로로 설정되어야 한다면 "/session/home"이 맞고, 상대 경로로 설정되어야 한다면 "session/home"이 맞습니다.
Q2.
둘 다 루트 폴더에서 찾기 시작하는 경우라면, 결과값에선 차이가 없겠네?
A2.
네, 맞습니다. 둘 다 루트 폴더에서 찾기 시작하는 경우라면 결과값에 차이가 없습니다.
하지만, 일반적으로 웹 애플리케이션에서는 절대 경로를 사용하는 것이 더 명확하고 오류를 줄일 수 있습니다. 따라서 return "/session/home";을 사용하는 것이 더 좋습니다.
Q3.
@GetMapping("/session/home") 여기서도 "session/home" 이라고 하는 것도, 상대경로/절대경로의 차이인가?
A3.
@GetMapping("/session/home")에서 경로 앞에 /를 붙이는 것은 상대경로와 절대경로의 차이와는 관련이 없습니다.
Spring MVC에서 @GetMapping 어노테이션의 경로는 항상 애플리케이션의 컨텍스트 루트를 기준으로 합니다. 따라서 경로 앞에 /를 붙이든 붙이지 않든, Spring MVC는 이를 동일하게 처리합니다.
즉, @GetMapping("/session/home")와 @GetMapping("session/home")는 동일하게 동작합니다. 하지만, 관례적으로 경로 앞에 /를 붙여 절대 경로처럼 보이게 하는 것이 일반적입니다.
따라서, @GetMapping("/session/home")을 사용하는 것이 더 명확하고 일관된 코드 스타일을 유지하는 데 도움이 됩니다.
Q4.
즉, 매핑할 주소는 "/주소" 형식으로 쓰고, return 할 주소는 경로를 지정할 방식에 따라서 "/주소" 또는 "주소" 로 쓰는 차이인가?
A4.
네, 맞습니다. 요약하면 다음과 같습니다:
1. 매핑할 주소 (@GetMapping 등):
1) 일반적으로 절대 경로처럼 /주소 형식으로 사용합니다.
2) 예: @GetMapping("/session/home")
2. 리턴할 주소 (뷰 이름 등):
1) 절대 경로로 지정할 경우: "/주소"
2) 상대 경로로 지정할 경우: "주소"
3) 예: return "/session/home"; 또는 return "session/home";
이렇게 사용하면 경로의 명확성과 일관성을 유지할 수 있습니다.
'언어 및 도구들 공부 > Spring' 카테고리의 다른 글
인터페이스의 구현체를 자동으로 주입 (0) | 2024.10.22 |
---|---|
Mapper 에서 Property, column (0) | 2024.10.21 |
@Value 어노테이션 (0) | 2024.10.19 |
index.html, 홈 (0) | 2024.10.19 |
application.properties 설정값 (0) | 2024.10.19 |