JAR (Java Archive)
자바 애플리케이션이 실행될 수 있도록 프로젝트를 압축한 파일 형식.
- 애플리케이션에서 사용하는 클래스 파일과 라이브러리를 포함.
- JRE(Java Runtime Environment)만 설치되어 있다면 실행 가능.
- 독립 실행형 애플리케이션에 적합.
- 구성 요소:
- .class 파일
- 외부 라이브러리(JAR)
- META-INF/MANIFEST.MF (메타데이터 파일)
- 스프링 부트와의 관계:
- 스프링 부트는 기본적으로 JAR 형식으로 패키징.
- 내장 톰캣을 사용하여 독립적으로 실행 가능.
- 웹 애플리케이션 개발 시 별도의 외부 웹 컨테이너를 필요로 하지 않음.
WAR (Web Application Archive)
서블릿/JSP 컨테이너에 배포할 수 있는 웹 애플리케이션 압축 파일 형식.
- 웹 관련 자원을 포함: JSP, Servlet, JAR, Class, XML, HTML, Javascript 등.
- 사전 정의된 구조를 사용:
- WEB-INF: 설정 파일, 클래스, 라이브러리 등이 포함.
- META-INF: 애플리케이션 메타데이터.
- 독립 실행이 불가능하며, 웹 서버나 웹 컨테이너(예: Tomcat, Jetty)가 필요.
- JAR 파일의 확장 개념.
- 스프링 부트와의 관계:
- WAR는 외부 톰캣 또는 서블릿 컨테이너에 배포할 때 사용.
- 스프링 부트로 WAR 패키징하려면 spring-boot-starter-tomcat의 스코프를 provided로 설정해야 함.
JAR와 WAR의 주요 차이점
구분 JAR WAR
| 용도 | 독립 실행 애플리케이션 | 웹 애플리케이션 |
| 구성 요소 | 클래스, 라이브러리, META-INF | JSP, Servlet, JAR, Class, XML, HTML 등 |
| 실행 환경 | JRE만 있으면 실행 가능 | 웹 서버/컨테이너 필요 |
| 스프링 부트 사용 | 기본 패키징 형식 (내장 톰캣 사용) | 외부 톰캣 등에 배포할 때 사용 |
스프링 부트와 JAR
- 스프링 부트는 기본적으로 JAR를 사용하며, 내장 톰캣을 포함하여 독립 실행 가능한 애플리케이션을 만든다.
- WAR 패키징은 기존의 외부 톰캣 환경에 배포해야 할 때 주로 사용되며, 스프링 부트에서는 상대적으로 드물다.
'spring > 그 외 알게 된 것' 카테고리의 다른 글
| 프록시란 (0) | 2024.06.26 |
|---|---|
| 왜 System.out 대신 Logger를 사용해야 할까? (0) | 2024.06.25 |
| JDBC와 JPA (0) | 2024.06.25 |
| URI 와 URL은 뭐가 다를까 (0) | 2024.06.18 |
| 백엔드에서 API의 의미; 왜 API개발자라고 할까 (0) | 2024.06.17 |