.Jar vs .War 어느 것을써야하나? 그리고 내장 톰켓/ 외장 톰켓

2025. 10. 6. 19:08카테고리 없음

.Jar vs .War 어느 것을써야하나?

 

핵심 : spring boot는 jar를 권장한다.

 

MAVEN, GRADLE 등으로 빌드시 빌드 -> 배포까지 생각한다면, .war

 

밑에 부분을 봐라... 하지만, spring initialzr, eclipse에서는 default로 되어 있는 까닭이있다.

 

 

참고 문

https://docs.spring.io/spring-boot/reference/web/servlet.html#web.servlet.spring-mvc.template-engines

 

 

 

 

공식 문서

 

.jar

- timeleaf (html)

     - template 영역 : html 사용가능

- 내장

 

.war

- jsp(서블릿)

- 외장

 

배포없이 단순 개발만 한다 그러면, 아무거나 사용하던 상관없음

 

 

 

 

 

그리고 내장 톰켓/ 외장 톰켓

 

내장 톰켓은 스프링 부트안에 들어있습니다.

 

저희가 의존성 주입시 : 

 

ex) maven

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>


ex) gradle
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

 

위 의존성에 톰켓이 내장되어 있음( 내장 톰켓 )

 

 

 

그럼 여기서 내장 톰켓이 없이 어떻게 배포했을까?

 

 

 

spring boot에서 maven으로 빌드해보기

 

--- 프로로젝트에서 maven build 클릭하면, 

 

 

다음과 같이 추가하면, target이는 곳에 .jar가 만들어집니다.

 

 

 

java -jar springBoot_react_oracle_jwt_ict05-0.0.1-SNAPSHOT.jar 실행시 내장 톰켓이 실행이된다.

 

외장 톰켓은 webapps에 springBoot_react_oracle_jwt_ict05-0.0.1-SNAPSHOT.jar 가 아닌 .war를 넣으면 된다.