톰캣 9, 10, 11 버전별 차이와 장단점
버전별 핵심 차이
구분 | Tomcat 9 | Tomcat 10.1 | Tomcat 11 |
|---|---|---|---|
기반 스펙 | Java EE 8 | Jakarta EE 10 | Jakarta EE 11 |
Servlet | Servlet 4.0 | Servlet 6.0 | Servlet 6.1 |
JSP | JSP 2.3 | JSP 3.1 | JSP 4.0 |
패키지 |
|
|
|
Java 요구 버전 | Java 8 이상 | Java 11 이상 | Java 17 이상 |
성격 | 안정적인 레거시 | 현재 실무 전환용 | 최신 기술 대응용 |
Tomcat 9는 Servlet 4.0, JSP 2.3 등 Java EE 8 계열 스펙을 지원하고 Java 8 이상이 필요하다. 반면 Tomcat 10부터는 Java EE의 javax.* 패키지가 Jakarta EE의 jakarta.* 패키지로 바뀌는 큰 전환점이 된다.
Tomcat 9
Tomcat 9는 아직도 레거시 Java 웹 프로젝트에서 많이 쓰기 좋은 버전이다.
장점은 안정성이다. javax.servlet.*, javax.jsp.* 기반 프로젝트라면 코드 변경 없이 사용하기 쉽다. Spring Framework 5, Spring Boot 2.x, 기존 JSP/Servlet 프로젝트와 궁합이 좋다.
단점은 최신 Jakarta EE 흐름과는 거리가 있다는 점이다. 앞으로 새 프로젝트를 만든다면 Tomcat 9를 선택할 이유는 점점 줄어든다.
추천 상황:
- 기존 javax 기반 프로젝트 유지보수
- Spring Boot 2.x 사용
- Java 8 환경 유지
- 레거시 JSP/Servlet 프로젝트Tomcat 10
Tomcat 10은 javax.*에서 jakarta.*로 넘어가는 핵심 버전이다.
가장 큰 차이는 패키지명이다.
// Tomcat 9
import javax.servlet.http.HttpServletRequest;
// Tomcat 10 이상
import jakarta.servlet.http.HttpServletRequest;이 변화 때문에 Tomcat 9 프로젝트를 Tomcat 10으로 올릴 때는 단순히 서버만 바꾸면 안 된다. 코드, 라이브러리, 프레임워크가 모두 jakarta.*를 지원해야 한다. Tomcat 공식 문서도 Java EE 8에서 Jakarta EE 9 이상으로 변환할 때 migration tool을 사용할 수 있다고 안내한다.
장점은 현재 기준 실무 선택지로 가장 무난하다는 점이다. Spring Boot 3.x, Jakarta 기반 프로젝트라면 Tomcat 10.1 계열이 자연스럽다.
단점은 마이그레이션 비용이다. 기존 javax.* 기반 코드가 많다면 생각보다 손볼 부분이 많다.
추천 상황:
- Spring Boot 3.x 사용
- Java 17 또는 Java 21 사용
- jakarta 기반 신규 프로젝트
- Tomcat 9에서 현대화하려는 프로젝트Tomcat 11
Tomcat 11은 최신 Jakarta EE 11 계열을 바라보는 버전이다. Tomcat 공식 문서 기준 Tomcat 11은 Tomcat 10.1을 기반으로 하며 Servlet 6.1, JSP 4.0, EL 6.0, WebSocket 2.2 등을 구현한다.
장점은 최신 스펙 대응이다. 최신 Java, 최신 Jakarta EE 스펙에 맞춰 새 프로젝트를 설계할 때 좋다.
단점은 보수적인 운영 환경에서는 아직 부담이 있을 수 있다는 점이다. 기존 라이브러리, WAS 설정, 배포 환경, 모니터링 도구가 Tomcat 11과 완전히 맞는지 확인해야 한다.
추천 상황:
- 최신 Jakarta EE 11 스펙 학습
- 신규 프로젝트에서 최신 환경을 적극 도입
- Java 17 이상 기반
- 라이브러리 호환성 검증이 가능한 팀선택 기준
실무 기준으로는 이렇게 보면 된다.
기존 프로젝트가 javax 기반이다
→ Tomcat 9 유지 또는 Tomcat 10 마이그레이션 검토
Spring Boot 2.x를 쓴다
→ Tomcat 9 계열이 자연스러움
Spring Boot 3.x를 쓴다
→ Tomcat 10.1 계열이 자연스러움
완전 신규 프로젝트고 최신 Jakarta EE를 쓰고 싶다
→ Tomcat 10.1 또는 11 검토
운영 안정성이 최우선이다
→ Tomcat 10.1 우선 검토
최신 스펙 테스트나 학습 목적이다
→ Tomcat 11도 좋음결론
Tomcat 9는 레거시 안정성 , javax 기반의 안정적인 레거시 표준
Tomcat 10은 jakarta 전환의 실무 표준
Tomcat 11은 최신 스펙 대응 , Jakarta EE 11 기반의 차세대 버전지금 새 프로젝트라면 보통은 Tomcat 10.1이 가장 무난하다.
기존 javax.* 프로젝트라면 Tomcat 9 유지가 안전하고, 최신 스펙을 적극적으로 따라갈 목적이면 Tomcat 11을 검토하면 된다.