출처: https://e2e2e2.tistory.com/29
빌드란? 컴파일된 소스코드를 실행될 수 있는 소프트웨어 형태로 변환(실행할 수 있는 독립적인 구조로 변환)하는 과정, 혹은 그 결과
라이프 사이클이란 이미 정해져 있는 프로젝트 빌드 순서임.
(실행될 수 있는 소프트웨어로 변환하는 과정, 결과가 빌드이고 서버에 배포하는 과정, 결과가 빌드이니 배포의 의미는 결국 서버에 반영하여 실행될 수 있는 소프트웨어로 변환하는 것이다)
web/기타
빌드(build), 메이븐과 라이프 사이클
컴파일이란?
소스코드를 컴퓨터가 이해하는 기계어(바이너리코드)로 변환하는 과정
자바의 경우는 jvm에서 실행할 수 있는 바이트코드의 클래스 파일이 생성됨
빌드란?
소스코드를 실행할 수 있는 소프트웨어 형태로 변환하는 과정
→ 소스코드(java)나 프로젝트 리소스(.xml, .jpg, ...)를 jvm이나 was(톰캣)이 인식할 수 있는 구조로 패키징 하는 과정
소프트웨어가 응집력 있는 하나의 단위로써 작동하게 하는 과정
(테스트, 검사, 배포 기능등을 포함하는 단위로 생각하기도 함)
빌드 툴
- 프로젝트 생성, 테스트 빌드, 배포 등 전체적인 라이프 사이클을 관리하기 위한 전용 프로그램(프로젝트 빌드순서가 라이프 사이클임)
- 엔터프라이즈 개발시 일어나는 빈번한 라이브러리 추가 및 버전 동기화의 어려움을 해소
- 코드 컴파일, 컴포넌트 패키징, 개발 테스트 실행, 버전관리 도구 통합, 문서 생성, 배포 기능 포함
~ maven, gradle
Maven
- 의존성 관리 : pom.xml에 라이브러리를 설정하면 해당 라이브러리와 의존 라이브러리를 네트워크를 통해 자동으로 다운로드해서 로컬 레파지토리에 저장해준다.
- → 이러한 기능이 없으면 다른 작업 환경에서 라이브러리 패스가 불일치 하거나 일일히 프로젝트 라이브러리 안에 저장하는 문제가 발생
- 빌드 과정이 정해져 있으며(라이프 사이클) 프로젝트 관리 기능도 포함(build tool + project management) → 프로젝트 생성
- 컴파일과 빌드 동시 수행, 패키지 배포의 용이함, 테스트 지원