자바 개발을 하다 보면 JAR, WAR, EAR 같은 단어를 많이 듣게 됩니다.
“이게 대체 뭐고 언제 뭘 써야 하지?”
아래 이미지와 함께 구조적 차이와 Spring Boot에서의 선택 기준을 쉽게 설명드릴게요.

위 그림을 보면 구조를 직관적으로 알 수 있어요:
| WAS 포함 | ✅ 내장 Tomcat 내장 | ❌ 외부 WAS 필요 |
| 실행 방식 | java -jar로 바로 실행 | Tomcat, WebLogic 등에서 배포 |
| 설정 편의성 | 간단한 구조, 빠른 실행 | web.xml, 복잡한 디렉토리 구조 |
| JSP 지원 | ❌ JSP 미지원 (공식 비권장) | ✅ JSP 사용 가능 |
| 활용 예시 | REST API, 간단한 마이크로서비스 | JSP/Servlet 중심 웹 프로젝트, 전통 웹앱 |
Spring Boot에서 JSP를 사용하려면 아래 조건이 필요합니다:
📌 JAR로 배포할 경우 JSP는 작동하지 않음!
→ Thymeleaf, Mustache 등 템플릿 엔진 사용을 권장합니다.
| 내장 Tomcat | ✅ 있음 | ❌ 없음 | ❌ 없음 |
| 실행 | 단독 실행 가능 | WAS 필요 | Java EE 서버 필요 |
| JSP | ❌ (제한적) | ✅ | ✅ |
| 구조 | 단순 | 정형화 필요 | 매우 복잡 |
| Spring Boot 기본 | ✅ | ❌ | ❌ |
Spring Boot는 기본적으로 JAR 중심 구조이며,
WAR는 외부 WAS와 JSP 기반 웹앱에 한정해서 사용하는 경우가 많습니다.
| Spring Boot에서 REST API 응답 구조를 일관되게 설계하는 방법 (0) | 2026.06.25 |
|---|---|
| Spring Boot REST API 에러 응답 설계: HTTP 상태코드부터 ProblemDetail까지 (0) | 2026.06.10 |
| Spring Boot 4.0 핵심 변경점 정리 — Java 25 지원부터 API 버저닝까지 (0) | 2026.04.29 |
| ☕ Maven vs Gradle, 자바 개발자를 위한 빌드툴 완전 정리! (0) | 2022.10.29 |