JAR ? WAR?
먼저 JAR 는 JAVA Archive, WAR 는 Web Application Archive 의 약자로, 모두 JAVA 의 jar 툴을 이용한 압축(아카이브) 파일이다. 즉, 어플리케이션을 쉽게 배포하고 동작할 수 있도록 관련 파일 (리소스, 속성 파일 등)을 패키징 한 것이다.
JAR (Java Archive)
.jar 파일에는 Class 와 같은 JAVA 리소스, 속성파일, 그리고 라이브러리 파일들이 포함되어 있다.
쉽게 말해, JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일이라고 할 수 있다.
또한 jdk에 포함된 JRE(Java Runtime Environment) 만 있어도 실행이 가능하다. (이게 아주 편리하다!)
WAR (Web Application Archive)
.war 파일은 servlet / jsp 컨테이너에 배치할 수 있는 웹 애플리케이션의 압축 파일 포맷이다.
또한 JSP, Servlet, JAR, Class, XML, HTML, JavaScript 등을 포함하고 있는데, war 는 웹 응용 프로그램을 위한 포맷이라 웹 관련 자원만 포함하고 있는 것이다.
JAR 파일과 달리, WEB-INF, META-INF 로 사전 정의된 구조를 사용하며 별도의 웹 서버(그래서 저번 포스팅인, 서버 배포 환경 구축에서 war 파일로 배포할 시 tomcat 을 서버 환경에서 다운받아야 했던 것!) 또는 웹 컨테이너(WAS)가 필요하다.
쉽게 말해, WAR 파일도 JAR 파일의 일종으로, 웹 애플리케이션 전체를 패키징하기 위한 JAR 파일이라고 생각하면 된다.
그래서 무슨 패키징을 쓰는 게 좋을까?
사실 정답은 없겠지만, 굳이 JSP 를 사용하는 경우를 제외하고는...
Spring Boot 에서 가이드하는 표준은 JAR 이니 JAR 파일로 하는 게 제일 간편할 것 같다고 생각된다!
[참고]
'𝑾𝑬𝑩 > 𝑆𝑃𝑅𝐼𝑁𝐺' 카테고리의 다른 글
[프로젝트] 빌드 관리 도구 선택 - Maven VS Gradle (0) | 2022.12.28 |
---|---|
[Spring] AOP (0) | 2022.11.19 |
JPA 와 MyBatis 의 차이 (ORM, SQL Mapper) (0) | 2022.11.17 |
[Spring] REST API, REST, RESTful 이란? (0) | 2022.11.05 |
[Spring] DI, 의존성을 주입하는 여러가지 방법 (0) | 2022.04.05 |