오늘은 Spring Boot 두번째 시간입니다!
Today I Learned
- spring-boot-devtools 의존성 추가
- View Page Home directory 설정
- JSP 파일 인식을 위한 라이브러리 추가
- Controller에서 Forwarding
- 사용자에게 직접 JSP가 요청되지 않으려면?
- View의 directory 변경으로 인한 매핑 문제 해결
- spring boot에서 수정사항이 생겼을 경우, 매번 새로 실행해줘야하는 불편함이 있었다.
- 이를 자동으로 해주기 위한 라이브러리를 추가해줄 필요가 있다.

View Page Home directory 설정
- jsp 파일과 같은 View page 관리를 위해 Home 디렉토리를 설정해준다.
- src/main/webapp/ 가 home 디렉토리가 된다.

JSP 파일 인식을 위한 라이브러리 추가
- 라이브러리 추가 없이 spring boot에서 JSP를 요청할 경우, spring boot는 알수 없는 파일이라 생각하고, 클라이언트에게 해당 파일을 다운받게 한다.
- JSP를 인식하게 하기 위해 라이브러리를 추가한다.

Controller에서 Forwarding
- spring boot에서는 포워딩이 아주 쉬워졌다.
- 서블릿에서는 forwarding을 위한 dispatcherServlet을 호출해야 했다면, spring boot에서는 controller 애노테이션을 통해 간략화 한다.
- 이때 forwarding하는 view page의 디렉토리는 url매핑 디렉토리와 같아야한다.

사용자에게 직접 JSP가 요청되지 않으려면?
- JSP의 홈 디렉토리를 단순히 설정하고 사용 할 시, 클라이언트가 controller를 거치지 않고, 바로 jsp에 접근 할 수 있다는 문제점이 있다.
- 이는 아주 큰 문제이며 반드시 해결해야할 문제이다.
- Home/WEB-INF/view/ 디렉토리를 사용하여 클라이언트가 직접적으로 jsp에 접근하는 것을 막는다.

View의 directory 변경으로 인한 매핑 문제 해결
- 위에서 WEB-INF/view/ 디렉토리를 활용하여 사용자 접근 문제를 해결하였다.
- 하지만 view의 directory가 변경되므로써 forwarding을 위한 경로도 수정을 해줘야한다.

- 하지만 이렇게 되면 매번 매핑시마다 /WEB-INF/view/ , .jsp는 반복이 되는 불필요한 작업이 생긴다.
- 이를 해결하기 위해 application.properties를 활용해본다.
- 이는, Spring MVC를 할때, dispatcherServlet에서 view resolver의 prefix와 surfix를 설정하던 것과 같다.
