일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- email인증
- 코딩테스트
- 코테
- 너비우선탐색
- 프로그래머스
- Java
- 자바
- springboot
- 노드개발
- SWEA
- 앱개발
- 1260
- 브실이의입시전략
- 쪽지기능
- 코딩
- 백준
- BFS
- 파이썬
- 깊이우선탐색
- 백준 2667
- 노드개발자
- DFS
- static final
- 이메일인증
- 실버5
- 알고리즘
- nodejs
- Gmail인증
- 노드프로젝트
- Python
- Today
- Total
데옹의 블로그
[Spring Boot] JAR vs WAR 본문
스프링을 공부하면서 시작할 때 jar, war 둘 중 하나를 선택하는데 (Spring Initializr 에서)
두개가 대체 왜 쓰는지도 모르고 하라는대로 하니까 속이 터진다.
그래서 jar / war의 차이점을 알아보고자 한다.
JAR
Java ARchive이다.
archive : 기록 보관소, 기록 보관소에 보관하다. 파일을 보관하다.. 등등의 뜻을 갖고 있다.
근데 컴퓨터 공학에서는 압축 파일이라는 뜻이 또 있다.
따라서 그냥 JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일이다.
압축을 따로 해제하지 않아도 JDK(Java Development Kit)에서 접근해 사용이 가능하다. 좀 더 구체적으로는 JDK에 포함되는 JRE(Java Runtime Environment)만 가지고도 실행이 가능하다.
이런 저런 정의들을 모아보면
- JAVA application이 동작할 수 있도록 자바 프로젝트를 압축한 파일
- Class(JAVA resource, 속성 파일), 라이브러리 파일을 포함
- JRE(JAVA Runtime Environment)만 있어도 실행 가능
WAR
Web Application Archive이다.
이 것도 Archive가 들어가니 압축하는 것이다.
말 그대로 웹 애플리케이션을 압축하고 배포하는데 사용되는 파일 형태이며 JSP, Servlet, Java Class, XML, 라이브러리, 정적 웹페이지 및 웹 애플리케이션을 구성할 때 필요한 자원들을 압축한 jar file이다. 이 것도 이런 저런 정의 모아보면
- Servlet / Jsp 컨테이너에 배치할 수 있는 웹 애플리케이션 압축파일 포맷
- 웹 관련 자원을 포함하고 있음
- 사전 정의된 구조 사용 (WEB-INF, META-INF)
- 별도의 웹 서버(WEB) 이나 웹 컨테이너(WAS) 필요 - Tomcat, Weblogic, Websphere 등
- JAR 파일의 일종이며, 웹 애플리케이션 전체를 패키징 하기 위한 JAR 파일
기본적으로 JAR, WAR 모두 Java의 jar (java-jar) 옵션을 이용해서 생성된 압축 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일들을 패키징 한 것이다.
이 압축 파일들은 압축의 해제 없이, JDK에서 각 파일들을 접근하여 사용할 수 있도록 설계되어 있으며 압축하는 이유는 단순하게 파일의 용량이 줄어들고 관리하기 편하기 때문이다.
공식문서를 보고 더 자세한 내용은 추후에 추가 예정~
'SpringBoot' 카테고리의 다른 글
[Spring Boot] Java에서 final과 static (0) | 2023.07.03 |
---|---|
[SpringBoot] 동시성 문제 (0) | 2023.06.21 |
[Spring Boot] A problem occurred configuring root project '...'. (Intellij)(ERROR) (0) | 2023.03.18 |
[SpringBoot] Google Email 인증 코드 mail 보내기 (JDBC) (6) | 2023.01.21 |