Java 기반의 전자정부 프로젝트나, 레거시 웹 프로젝트 코드를 많이 보다 보면,
tomcat
의 web.xml
에 <servlet mapping>
을 기재할 때
<url pattern>
을 아래와 같은 식으로 작성하는 경우가 유독 많았습니다.
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
여태 한번도 궁금했던 적이 없었는데, 왜 이런 url mapping 이 많이 보이는 건지
의문이 생기기 시작했습니다. 그것도 유독 Java 웹 프로젝트에서 말이죠.
구글링을 한 결과 한 StackOverFlow 글에서 명쾌한 답을 줬습니다.
옛날에는 Struts 1
프레임워크로 Java Web
프로젝트를 작성하는 경우가 많았습니다.
그리고 Struts 1
에서 제공하던 User Guide
에서
url mapping
예시를 아래처럼 2가지 방식으로 제안했고,
대부분의 개발자들이 이 예시를 있는 그대로, 반복적으로 사용해서 그런 겁니다.
<!-- 방법1 -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/do/*</url-pattern>
</servlet-mapping>
<!-- 방법2 (사람들이 너도,나도 이걸 복붙해서 사용한 겁니다) -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
결론
:
사람들은 가이드 문서에 있는 걸 그대로 적용해서 계속 프로젝트를 찍어내다 보니,
Sturts 1
을 사용하면.do
를 관례적(또는 습관적)으로 지속해서 사용했던 겁니다.
오늘날 spring
이 Java Web 프레임워크
의 사실상 표준이라고 생각합니다.
그러니 더 이상 Struts 1
의 관례를 따를 필요는 없겠죠?
기존에 .do
를 쓰던 프로젝트들은 어쩔 수 없지만,
새로운 프로젝트를 할 때는 이제 이런 옛 문화를 적용하지 맙시다.
url 이 안 이뻐요 😂
참고로 spring web + tomcat
환경에서 .do
를 없애는 방법은 제가
이전에 작성했던 글을 참고하시기 바랍니다.
spring boot
를 사용한다면 알아서 다 해주니, 신경쓰지 않으셔도 됩니다.