개발인생/Backend

[JSP] Tomcat은 JSP와 Servlet 실행에 왜 필요할까?

forri 2025. 2. 17. 20:15

Tomcat은 JSP와 Servlet을 실행하는 데 필수적인 웹 서버(서블릿 컨테이너)입니다.

 

 

 1. Tomcat이 하는 역할

Tomcat은 웹 서버 + 서블릿 컨테이너 역할을 합니다.

📌 ① 웹 서버 역할

  • HTTP 요청을 받고, HTML/CSS/JS 같은 정적 파일을 클라이언트(브라우저)로 반환
  • index.html, style.css, script.js 같은 정적인 웹 페이지는 Apache, Nginx에서도 실행 가능

📌 ② 서블릿 컨테이너 역할 (JSP & Servlet 실행)

  • JSP와 Servlet을 실행하려면 서블릿 컨테이너가 필요한데, Tomcat이 이를 제공
  • JSP는 내부적으로 Servlet으로 변환되어 실행되므로, Servlet이 실행되지 않으면 JSP도 실행될 수 없음

**즉, Tomcat은 정적인 웹 페이지뿐만 아니라, JSP와 Servlet을 실행하는 환경을 제공하는 웹 애플리케이션 서버(WAS)**임.

 


 2. JSP와 Servlet 실행 과정 (Tomcat이 왜 필요한지)

JSP와 Servlet이 Tomcat에서 어떻게 실행되는지 비교

 

📌 Servlet 실행 과정

  1. 사용자가 http://localhost:8080/login 요청
  2. Tomcat이 요청을 받아서 해당 URL에 매핑된 Servlet 실행
  3. Servlet이 데이터를 처리하고 HTML을 생성
  4. 생성된 HTML을 브라우저로 응답

Servlet은 HTML을 직접 작성하기 어렵기 때문에 JSP와 함께 사용됨.

 

📌 JSP 실행 과정

  1. 사용자가 http://localhost:8080/index.jsp 요청
  2. Tomcat이 JSP 파일을 Servlet(Java 코드)으로 변환
  3. 변환된 Servlet을 .class 파일로 컴파일하여 실행
  4. Servlet이 실행되면서 HTML을 생성하여 브라우저로 응답

JSP는 내부적으로 Servlet으로 변환되어 실행되기 때문에, 결국 Servlet을 실행할 수 있는 환경(Tomcat)이 필요함.

 


 3. JSP와 Servlet은 Tomcat이 없으면 실행 가능할까?

❌ Tomcat 없이 JSP & Servlet 실행 불가능

  • JSP는 내부적으로 Servlet으로 변환되므로 Servlet이 실행될 환경(Tomcat)이 없으면 JSP도 실행할 수 없음.
  • Servlet도 Java 코드만으로는 실행되지 않고 웹 서버가 HTTP 요청을 처리할 수 있어야 실행 가능

✅ 다른 방법으로 실행 가능할까?

Tomcat이 없더라도 아래와 같은 다른 웹 애플리케이션 서버(WAS)를 사용할 수 있음.

 

웹 서버 JSP 실행 Servlet 실행 특징
Tomcat ✅ 가능 ✅ 가능 가장 널리 사용되는 서블릿 컨테이너
Jetty ✅ 가능 ✅ 가능 경량 서블릿 컨테이너
WildFly(JBoss) ✅ 가능 ✅ 가능 기업용 Java EE 서버
GlassFish ✅ 가능 ✅ 가능 Java EE 공식 레퍼런스 서버

 

✔ 즉, Tomcat이 없어도 다른 웹 애플리케이션 서버를 사용하면 실행 가능하지만, Servlet을 실행할 환경 자체가 필요함.
Spring Boot는 기본적으로 Jetty나 Tomcat을 내장하여 제공하기 때문에 별도로 Tomcat을 설치하지 않아도 실행 가능함.

 


 4. 정적인 HTML 파일만 실행할 때는?

HTML, CSS, JavaScript 같은 정적인 웹 페이지만 실행하려면 Tomcat이 필요하지 않음.

  • Apache, Nginx, IIS 같은 일반적인 웹 서버에서도 실행 가능
  • index.html, style.css, script.js만 있다면 Tomcat 없이 실행 가능

정적인 HTML만 실행한다면 Tomcat 없이 가능. 하지만 JSP/Servlet을 실행하려면 Tomcat 필요

 


최종 정리

📌 Tomcat이 JSP & Servlet 실행에 필수적인 이유

기능 Tomcat 필요 이유
정적 HTML 실행 ❌ 필요없음 Apache/Nginx 같은 일반 웹 서버로 가능
JSP 실행 ✅ 필요함 JSP는 내부적으로 Servlet으로 변환되므로 서블릿 컨테이너가 필요
Servlet 실행 ✅ 필요함 Servlet은 HTTP 요청을 처리하는 환경이 필요

 

결론: JSP & Servlet 실행에는 반드시 Tomcat 같은 웹 서버(WAS)가 필요
정적 HTML/CSS/JS 실행에는 Tomcat 없이도 가능

'개발인생 > Backend' 카테고리의 다른 글

[ORM] JPA 성능 최적화: N+1 문제 해결하는 3가지 방법  (0) 2025.02.22
[ORM] JPQL vs QueryDSL: 무엇이 더 나을까?  (2) 2025.02.21
[JSP] vs Servlet  (0) 2025.02.17
[JSP] vs HTML  (0) 2025.02.17
[JSP] JSP 프로젝트 구조  (0) 2025.02.17