<aside> <img src="/icons/info-alternate_blue.svg" alt="/icons/info-alternate_blue.svg" width="40px" /> 요약
Tomcat 9 이상 버전을 사용하는 Spring 애플리케이션에서는 DispatcherServlet 등록을 수동으로 처리해야 합니다. 이는 Servlet 4.0 스펙의 변경사항에 따른 것입니다.
</aside>
Tomcat 8 이전 버전에서는 web.xml 파일이나 프로그래밍 방식으로 서블릿을 등록하지 않아도 자동으로 HttpServlet을 탐지하고 등록했습니다. 하지만 Tomcat 9부터는 이런 자동 등록 기능이 제거되어, 서블릿을 명시적으로 등록해야 합니다.
성능 향상: 자동 등록 기능은 애플리케이션 시작 시 모든 서블릿을 찾아서 등록하는 작업이 필요했습니다. 이로 인해 애플리케이션 시작 시간이 늘어날 수 있었습니다. 수동 등록으로 전환하면 필요한 서블릿만 등록할 수 있어 성능이 향상됩니다.
명시성 향상: 자동 등록 기능으로 인해 개발자가 의도하지 않은 서블릿이 등록될 수 있었습니다. 수동 등록으로 전환하면 개발자가 명시적으로 등록할 서블릿을 결정할 수 있어 코드의 명시성이 높아집니다.
확장성 향상: 자동 등록 기능은 특정 규칙에 따라 서블릿을 찾고 등록했습니다. 이로 인해 규칙을 벗어나는 서블릿은 등록되지 않을 수 있었습니다. 수동 등록으로 전환하면 개발자가 원하는 방식으로 서블릿을 등록할 수 있어 확장성이 높아집니다.
유지보수 용이성: 자동 등록 기능은 내부 구현이 복잡했습니다. 수동 등록으로 전환하면 개발자가 직접 서블릿을 등록하므로 코드 이해와 유지보수가 용이해집니다.
결과적으로 Tomcat 9에서는 이러한 이점들을 고려하여 서블릿 자동 등록 기능을 제거하고 수동 등록 방식으로 전환했습니다. 이를 통해 성능, 명시성, 확장성, 유지보수성 등이 향상되었습니다.