[Java/server]war와 jar의 차이

doyeon kim·2022년 6월 16일
0

0. JAR와 WAR의 공통점

  • 모두 java의 jar옵션(java -jar)을 이용해 생성된 압축파일
  • 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 자바 클래스파일, 리소스, 속성파일 등을 패키징한 것





1. JAR(Java Archive)

  • 자바 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일
  • zip파일이라고 생각하면된다.
  • jre(java runtime environment)만 있어도 실행가능
  • 스프링부트에서 사용 권장






2. WAR(Web application Archive)

  • 서블릿, jsp 컨테이너에 배치할 수 있는 웹 어플리케이션 압축파일
  • 웹 관련 자원을 포함(JSP, SERVLET, JAR, CLASS, XML, HTML, JAVASCRIPT 등 Servlet Context 관련 파일들로 패키징)
  • jar와는 달리 war는 WEB-INF 및 META-INF 디렉토리로 사전 정의 된 구조를 사용하며 WAR파일을 실행하려면 Tomcat, Weblogic, Websphere 등의 웹 서버 (WEB)또는 웹 컨테이너(WAS)가 필요
  • war도 jar파일의 일종이며, 웹 어플리케이션 전체를 패키징하기 위한 JAR파일이다.






3. 그래서 선택은 war? jar?

  • 찾아보니까 뭘 쓰는지 정답은 없는것 같고, 서블릿 기반이나 JSP를 사용할 경우 아니면 외장WAS를 사용해야할 경우 war를 사용해야하지만, 그것이 아니라면 스프링부트 권장사항이 jar권장이라 jar사용을 하는게 더 나은 것 같다. 근데 이건 회사마다 선택하는기준이 달라서, 장단점 비교해보고 선택하는게 좋을 것 같다.
profile
아직은 개발이 재밌음

0개의 댓글