Spring_SpringBoot/이론

[ War ] vs [ Jar ]

한번은하자 2024. 6. 15. 17:25

프로젝트할 때 그냥 무지성으로 export를 실행했다. 그 이유를 알아야겠다...

 

JAR(Java Archive)

장점

 

- 독립적인 Java 애플리케이션을 패키징할 수 있고, 실행 가능한 JAR파일로 만들어서 개발자가 쉽게

  어플리케이션을 실행할 수 있다.

- 압축된 형식으로 클래스, 리소스, 라이브러리 등을 포함하므로 배포와 전달이 용이하다.

- Java 애플리케이션의 진입점인 main 메서드를 포함하고 있어 JVM에서 직접 실행하기 때문에 별도의

  웹 컨테이너나 서버가 필요하지 않다.

 

단점

- JSP나 서블릿 컨테이너에 대한 표준 기능을 활용하기 어렵다.

- 웹 애플리케잇녀에서 동적인 웹 컨텐츠 및 생성 및 관리가 제한적이다.

 

WAR(Web Archive)

장점

 

- Java 웹 애플리케이션을 패키징하는데 최적화되어 있고, 웹 구성 요소인 JSP, 서블릿, 필터, 리스너

  등과 웹 애플리케이션을 실행하기 위한 서블릿 컨테이너(웹 컨테이너)에서 필요한 설정파일, 라이브러리,

  리소스 등을 포함하여 한 번에 배포 및 실행할 수 있다.

 

단점

 

- 웹 컨테이너나 서버에 종속적이기 때문에 특정한 웹 컨테이너 환경이 필요하다.

- 배포 및 전달에 있어서 JAR파일에 비해 크기가 크고 번거로울 수 있다.

 

※ 꼬꼬무

Spring FrameWork에서는 Tomcat을 연동하고 배포했어야 했다. 그런데 SpringBoot에서는 따로 Tomcat을 연동하지

않아도 개발이 되었다. 왜 그런건지 알아보니 pom.xml에 있는 spring-boot-starter-web 이 기본적으로 Tomcat을

내장하고 있기 때문에 실행가능하다