회사에서 맡고 있는 프로젝트가 잇는데

workspace가 무려 4개로 나눠져있는데

도저히 왜 이 구성인지 모르겠어서

공부하다가 한것들을 정리한다.

 

컴파일이란?

컴파일이란 소스코드를 기계어로 변환하는 과정이다. 프로그래밍 언어로 작성된 코드는 사람이 이해하기 쉽지만 컴퓨터는 바보라 이해 못함 그래서 컴퓨터가 이해할수 있는 기계어로 번역하는 작업이 필요하다. (자바는 자바컴파일러)

빌드란?

컴파일 된 코드를 실행할수 있는 상태로 만드는 일을 빌드라고 한다. 빌드단계는 컴파일 과정을 포함하지만 

빌드를 도와주는 도구로는 maven, Gradle등이 있다.

maven의 빌드 과정

 

배포란?

빌드된 결과물을 사용자에게 전달하는 과정

Snapshot이란?

Snapshot이란, 특정 시점에 스토리지에 저장된 파일의 상태(현재 파일 시스템의 상태)를 저장한다는 의미입니다. Spring Boot에서 애플리케이션 생성 시, 개발이 완료된 최종 버전이 아니라, 각 진행 단계별로 개발을 하고 빌드를 할 때, 해당 애플리케이션의 현재 상태가 완료 버전이 아닌, 중간 단계의 버전이라는 의미로 사용하실 수 있습니다. 

 

JAR(Java ARchive) 와 WAR(Web application ARchive) 차이

아카이브라는 뜻은 자료 저장소, 기록 보관의 의미를 가지고 있다.

 

먼저 JAR는 자바 어플리케이션을 패키징하기 위한 형식으로 단독 실행이 가능한 자바 어플리케이션을 만들 떄 사용한다.

어플리케이션을 실행하는데 필요한 모든 클래스파일, 리소스 파일, 라이브러리 파일등을 하나의 파일로 묶어서 배포할수 있다.

JVM에서 직접 실행되어 동작하고 was와 상관없이 실행 가능하다. 하지만 단순한 자바 어플리케이션이 아니고 웹 어플리케이션으로 동작하기 위해서는 웹서버가 필요하다.

 

WAR는 자바 웹 어플리케이션을 패키징 하기 위한 형식이고 웹어플리케이션이 필요한 HTML, CSS, JS ,JSP 등의 웹리소스와

JAVA 클래스 파일, 라이브러리 파일 등을 하나의 파일로 묶어서 배포 할수 있다. WAR 파일은 tomcat, wildfly 등의 자바 기반 WAS에서 실행되며, 웹 서버와 통합되어 웹 어플리케이션을 호스팅하고 사용자들에게 서비스를 제공한다.

 

jar 파일 빌드 및 실행

 

jar파일은 css, js 같은 웹리소스는 포함하지 않는데.. 웹프로젝트를 jar로 묶어서 web-inf/lib 에 import 해서

사용하고 있었다. 

 

 

웹서버가

해당위치에 jar파일을 

 

 

 

참고

https://velog.io/@ghkdwp018/JAR-vs.-WAR

반응형

+ Recent posts