Controller에서 viewName을 String으로 리턴하는 방식으로 구현하게 되었다.templates 디렉토리에 html 파일들을 담았고, classpath없이 정적페이지와 동일하게viewName을 String 으로 리턴했다.404 not found 에러가 모든 요청에 발생했다. @GetMapping("/user/sign-up")
public String joinForm() {
logger.info("User in joinForm");
return "/user/form";
}
return "user/form"
"/user/form" 이렇게 코드를 작성했었지?? 라는 생각을 하게 되었다.https://bottom-to-top.tistory.com/38 참고하였습니다.
mvcConfigurer와addResourceHandler()에 관해서는 위 블로그글이 잘 정리되어있습니다.

Resources에서 내용을 찾을 수 있다. 결론적으로 스프링에서 아무런 설정이 없어도 resources/static/에 있는 파일을 찾을 수 있다. mustache를 사용하였다.mustache starter에서 확인 할 수 있었다.


https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#spring-mvc-configuration
https://www.inflearn.com/questions/55819
위 링크는 김영한님이 다른 질문에 대한 답변을 남겨주신 글이다.
위 설명과 동일하게 추측했을 때, 조금은 다를 수 있지만 build했을때와 ide상에서 "user/form", "/user/form"이 접근이 다르지 않을까..?
(배포 과정에서 문제가 있을까..?)
(정확한 이유를 아시는 분이 있으시다면 댓글로 남겨주시면 정말 감사하겠습니다ㅠㅠ)
그래서 "classpath:/templates/"로 되어있기 때문에 "user/form"의 방식이 더 정확하고 오류도 없을 것 같기에 이 방식으로 구현해야겠다.
나와 같은 실수를 하는 사람이 많이 없을지도 모르겠다. 어찌되었든 문제를 해결했고 덤으로 원리도 찾아 볼 수 있는 좋은 기회가 된 것 같다.
jar tf [jar파일이름]
jar tf cafe-0.0.1-SNAPSHOT.jar

resources 디렉토리에 있던 파일들의 경로