스프링을 배우기 시작하면서 Maven, Gradle과 같은 빌드도구를 사용하게 되었다.
그런데도 빌드를 정확히 알지 못하고 있어서 간단한 개념만이라도 정리해보려고 한다.
개발자가 작성한 소스코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업
* 자바: JVM에서 실행가능한 클래스파일이 생성된다.
여러 개의 소스파일들을 컴파일한 결과물로 최종 실행가능한 파일을 만들 때, 필요한 부분(예를 들어 다른 소스파일의 함수를 호출하는 등)들을 찾아서 연결해주는 작업
* 자바: JVM이 프로그램 실행 중에 클래스를 찾아서 연결해준다(클래스패스에 로드)
소스코드 파일을 '살행 가능한 소프트웨어 산출물'로 만드는 일련의 과정.
소스코드 파일을 컴퓨터에서 실행될 수 있는 '독립적인 형태'로 변환하기까지 과정과 결과를 말한다.
따라서 컴파일, 링크 작업은 빌드의 부분집합이다.
컴파일, 링크 작업만 있지는 않고 테스트, 배포 등의 과정들이 빌드에 포함될 수 있다.
빌드 과정을 도와주는 도구를 빌드도구라고 한다.
빌드 자동화를 시켜주고,
일반적으로 전처리(preprocessing), 컴파일(compile), 패키징(packaging), 테스팅(testing), 배포(distribution)와 같은 기능들이 있다.
- 그동안 이클립스로 Java Application을 실행하면서 Build처리를 해준 적이 없는데..?
나는 이클립스라는 IDE를 통해 프로그램 실행을 시켰다.
이클립스에서 빌드까지 해서, 즉 실행 가능한 산출물로 만들어 그 결과물을 실행해준 것이다.