빌드란
in Interview on woowaCourse
1. 빌드
인텔리제이에서 개발자가 작성한 소스코드(.java)는 사람은 해석할 수 있지만, 기계는 알아들을 수 없기에 이를 원시파일 이라고 합니다.
이를 컴퓨터가 알아들을 수 있게 바이너리 파일로 만들어주는 과정을 컴파일 이라고 합니다.
컴파일을 거치게 되면 컴퓨터가 알아들을 수 있는 바이너리 형태의 오브젝트 파일(.class) 이 나오게 됩니다.
오브젝트 파일이 컴퓨터가 알아들을 수 있다고 해서 바로 실행할 수 있는 것은 아닙니다.
프로그래밍을 할 때, 다른 외부 라이브러리, 함수 등등의 다른 리소스를 사용하기 때문에 이러한 리소스를 연결시켜주는 과정이 필요한데 이를 링크 라고 합니다.
자바의 경우에는 다른 언어와 다르게 별도의 링크과정이 존재하지 않고, 런타임에 필요한 클래스들이 자바 가상기계에 링크되며 클래스 로더가 동적으로 필요한 클래스를 로딩합니다.
이렇게 링크를 통해 실행파일(.jar) 이 나오게 됩니다.
빌드란 사람들이 알아들을 수 있는 형태의 원시파일을 실제 컴퓨터에서 실행할 수 있게끔 만드는 이 일련의 과정을 빌드 라고 합니다.
정리하자면, 컴파일은 빌드 안의 부분집합 입니다.
2. 빌드 도구
빌드 도구란 소스 코드로부터 실행 가능한 어플리케이션을 생성하는 것(빌드)을 자동화하는 프로그램 입니다.
일반적으로 자바 진영에서는 Maven, Gradle을 빌드 도구로 사용하고 있습니다.
빌드 자동화는 다음과 같은 일을 합니다.
- 의존성 다운로드
- 소스 코드를 이진 코드로 컴파일
- 이진 코드 패키징
- 자동화된 테스트 실행
- 프로덕션 시스템 배포