컴파일이란?
소스코드를 컴퓨터가 이해하는 기계어(바이너리코드)로 변환하는 과정
자바의 경우는 jvm에서 실행할 수 있는 바이트코드의 클래스 파일이 생성됨
빌드란?
소스코드를 실행할 수 있는 소프트웨어 형태로 변환하는 과정
→ 소스코드(java)나 프로젝트 리소스(.xml, .jpg, ...)를 jvm이나 was(톰캣)이 인식할 수 있는 구조로 패키징 하는 과정
소프트웨어가 응집력 있는 하나의 단위로써 작동하게 하는 과정
(테스트, 검사, 배포 기능등을 포함하는 단위로 생각하기도 함)
빌드 툴
- 프로젝트 생성, 테스트 빌드, 배포 등 전체적인 라이프 사이클을 관리하기 위한 전용 프로그램
- 엔터프라이즈 개발시 일어나는 빈번한 라이브러리 추가 및 버전 동기화의 어려움을 해소
- 코드 컴파일, 컴포넌트 패키징, 개발 테스트 실행, 버전관리 도구 통합, 문서 생성, 배포 기능 포함
~ maven, gradle
Maven
- 의존성 관리 : pom.xml에 라이브러리를 설정하면 해당 라이브러리와 의존 라이브러리를 네트워크를 통해 자동으로 다운로드해서 로컬 레파지토리에 저장해준다.
- → 이러한 기능이 없으면 다른 작업 환경에서 라이브러리 패스가 불일치 하거나 일일히 프로젝트 라이브러리 안에 저장하는 문제가 발생
- 빌드 과정이 정해져 있으며(라이프 사이클) 프로젝트 관리 기능도 포함(build tool + project management) → 프로젝트 생성
- 컴파일과 빌드 동시 수행, 패키지 배포의 용이함, 테스트 지원
LifeCycle : 미리 정해져 있는 빌드 순서
clean : 빌드 시 생성되었던 파일을 삭제하는 단계
validate : 프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계
compile : 프로젝트의 소스코드를 컴파일 하는 단계
test : 유닛 테스트를 수행하는 단계 ( 테스트 실패시 빌드 실패로 처리 할 수 있음)
package : 실제 컴파일 된 소스 코드와 리소스들을 jar, war 등의 배포를 위한 패키지로 만드는 단계
verify : 통합 테스트 결과에 대한 검사를 실행하여 품질 기준을 충족하는지 확인하는 단계
install : 패키지를 로컬 저장소에 설치하는 단계
site : 프로젝트 문서와 사이트 작성, 생성하는 단계
deploy: 만들어진 package를 원격 저장소에 release 하는 단계
빌드 순서 : compile → test → package → install → depoly
compile : src/main/java 디렉토리 아래의 모든 소스 코드가 컴파일 된다.
test : src/test/java, src/test/resources 테스트 자원 복사 및 테스트 소스 코드가 컴파일 된다.
package : 컴파일과 테스트를 수행 한 결과물을 jar,war와 같은 패키지 파일 형태로 압축하는 작업
Phase - plugin - goal
Phase : 빌드 사이클의 각각의 단계. 이전 단계가 모두 수행되어야 수행 가능.
plugin : 단계 별로 사용 되는 프로그램. 여러 goal를 포함한다.
goal : plugin 내의 각각의 실질적인 기능. 각 단계에서 실제로 수행되는 작업.
pom.xml에서 메이븐 프로젝트의 의존성이나 빌드과정에서 적용할 플러그인 등을 설정할 수 있다.
'web > 기타' 카테고리의 다른 글
npm에서 yarn berry로 (0) | 2022.11.09 |
---|---|
[Vue] vue-fragment 사용 시 발생하는 DOM Exception 해결 (0) | 2022.02.28 |
[WEB] WEB과 HTTP, URI와 URL 개념 (0) | 2020.11.24 |
댓글