[ Spring ] Spring Boot 배포 방식 – JAR vs WAR, 외부 톰캣 배포
by 우와한개발자
1. JAR 배포 (Spring Boot 기본)
- Spring Boot 내장 톰캣이 포함되어 있어 별도 서버 없이 실행.
- Spring Boot 프로젝트의 기본 패키징 방식
java -jar myapp.jar
2. WAR 배포 (외부 톰캣 서버에 배포)
- 설치된 외부 톰캣 서버에 배포하겠다는 의미.
- WAR 파일을 톰캣의 webapps/ROOT 폴더에 넣으면 자동으로 배포됨.
톰캣설치경로/webapps/ROOT/myapp.war
1) JAR 프로젝트를 WAR로 바꾸기
- pom.xml에서 패키징 방식을 변경.
<!-- 변경 전 -->
<packaging>jar</packaging>
<!-- 변경 후 -->
<packaging>war</packaging>
- SpringBootServletInitializer를 상속해야 외부 톰캣에서 정상 동작.
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
3. JAR 와 WAR 배포 비교
| 구분 | JAR | WAR |
| 실행 방법 | java -jar myapp.jar | 톰캣 webapps에 배포 |
| 서버 | 내장 톰캣 포함 | 외부 톰캣 필요 |
| 용도 | 클라우드, 단독 실행 | 기존 서버 인프라 활용 |
| Spring Boot 기본 | O | 설정 변경 필요 |
'프레임워크 > Spring' 카테고리의 다른 글
| [Spring] Spring Cache란? @Cacheable로 DB 조회 성능 개선 (0) | 2026.04.12 |
|---|---|
| [Spring] Spring Boot 테스트 코드 작성하기 – JUnit5, Mockito, MockMvc 구현 (0) | 2026.04.12 |
| [Spring] SSE(Server-Sent Events)란? EventSource, SseEmitter 구현 (1) | 2026.04.07 |
| [Spring] WebSocket이란? 스프링 프로젝트 웹소켓 구현 (0) | 2026.04.07 |
| [Spring] Spring HATEOAS란? – EntityModel, ModelAssembler 구현 (0) | 2026.04.07 |
블로그의 정보
우와한개발자 님의 블로그
우와한개발자