JAR와 WAR은 자바 프로그램 및 관련 자원을 패키지하고 배포하기 위한 파일 형식입니다.
프로젝트 생성시 `Packaging` 옵션에서 JAR 혹은 WAR를 선택하여 해당 형식으로 어플리케이션 패키징하여 배포할 수 있습니다.
JAR (Java Archive)
- 확장자: .jar
JAR 파일은 자바 클래스 파일, 리소스 파일 (이미지, 설정 파일 등) 및 라이브러리(JAR 파일 자체 또는 외부 라이브러리)를 하나의 아카이브 파일로 패키징합니다.
일반적으로 JAR 파일은 자바 클래스 파일과 그 클래스들이 사용하는 이미지, 설정 파일, 텍스트 파일, 라이브러리 등을 포함합니다. 이것은 다른 프로그램에서 재사용되거나 실행될 수 있도록 도와줍니다. 예를 들어, 다른 사람이 만든 유용한 코드 조각을 JAR 파일로 배포하고, 이를 여러 프로젝트에서 사용할 수 있습니다.
WAR (Web Application Archive)
- 확장자: .war
WAR 파일은 웹 어플리케이션을 패키징하고 배포하기 위해 사용됩니다.
웹 애플리케이션은 HTML, CSS, JavaScript로 이루어진 프론트엔드 코드와 서버 측에서 실행되는 자바 코드(서블릿이나 JSP와 같은)로 구성될 수 있습니다. WAR 파일은 이 모든 것을 한 곳에 정리하여 웹 서버에 배포할 수 있도록 도와줍니다. 웹 서버는 이 WAR 파일을 받아서 그 내용을 웹 브라우저 요청에 따라 제공하게 됩니다.
WAR 파일은 웹 어플리케이션을 패키징 한것이기 때문에 웹 서버에서 실행되는 경우가 일반적입니다. JAVA인 경우 주로 서블릿 컨테이너에 배포되어 실행될 것입니다. 대표적인 서블릿 컨테이너로 Apache Tomcat, Jetty 등이 있습니다. 이러한서블릿 컨테이너는 WAR 파일을 받아서 내부적으로 웹 어플리케이션을 관리하고 실행시켜주며, 웹 브라우저에서 욫어에 응답하는 역할을 수행합니다.
최근에는 독립적으로 내장 웹 서버를 가지고 있는 프레임워크들이 있습니다. 대표적으로 Spring Boot가 있는데, Spring Boot는 내장 웹 서버(Tomcat)를 사용하기 때문에 `JAR` 파일 형태로 어플리케이션을 실행시킬 수 있습니다. 즉 Spring Boot는 WAR 파일을 사용하지 않고 웹 어플리케이션을배포하고 실행할 수 있습니다.
'Web' 카테고리의 다른 글
CORS(Cross-Origin Resource Sharing) 이해와 해결 방법 (0) | 2023.09.18 |
---|---|
웹 데이터 저장: 로컬 스토리지, 세션 스토리지, 쿠키 (0) | 2023.09.18 |
Servlet에 대해 알아보자!! 동작 원리 파악하기 (0) | 2023.08.31 |
웹 서버 vs 웹 어플리케이션 서버 vs CGI 프로그램: 차이 쉽게 이해하기 (0) | 2023.08.31 |
Nginx: 웹 서버와 리버스 프록시의 개념과 용도, 사용법 설명 (0) | 2023.06.28 |