안녕하세요. 이번 포스팅에서는 빌드와 컴파일 간의 차이에 대해서 알아보겠습니다.
🤔 빌드란?
- 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 결과를 의미합니다.
예시
- Java 프로젝트 - A.java 파일과 여러가지 정적 파일들이 담겨져 있는 resource가 존재함
IF) 빌드를 하게 될 경우
- 소스코드를 컴파일해서 .class 파일로 변환하고 resource를 .class에서 참조할 수 있는 적절한 위치로 옮기고 META-INF와 MANIFEST.MF들을 하나로 압축하는 과정을 하게 됨
- 빌드 툴(Build Tool) = 빌드 과정을 도와주는 도구
→ 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일
👨🏻🏫 추가설명 - 빌드 툴(Build Tool)
- 빌드에서는 컴파일, 테스트, 배포 등의 과정이 포함될 수 있고, 빌드 과정을 도와주는 도구를 빌드 툴이라고 합니다.
- 대표적인 Java의 빌드 툴로는 Ant, Maven, Gradle 등이 있습니다.
🔎 빌드 툴이 제공해주는 기능
- 전처리(Preprocessing), 컴파일(Compile), 패키징(Packaging), 테스팅(Testing), 배포(Distribution) 등이 있습니다.
🤔 컴파일이란?
- 컴퓨터가 이해할 수 있는 언어로 바꾸어 주는 과정을 말하며, java의 경우 컴파일의 결과로 자바 가상머신(JVM)에서 실행 가능한 “.class”파일이 생기게 됩니다.
→ 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업을 의미합니다.
⚠️ 주의점
- 컴파일과 빌드는 같다고 생각할 수도 있지만, 컴파일은 빌드를 진행하는 과정의 일종의 하나의 Task(작업)입니다.
👨🏻🏫 정리
- 빌드(Build) = 컴파일 + 그 외의 Task(작업)을 포함하는 개념
- 컴파일(Complie) = 소스코드를 기계어로 번역하는 작업, 빌드 과정 중 하나
📒 Reference
빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Complie)
빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Complie) 서버에 기능을 추가 하려면 개발자가 로컬 PC에서 개발을 하고 테스트까지 진행한 뒤에 문제가 없을 경우 사용자가 사용할 수 있도록 수정
choseongho93.tistory.com
'프로그래밍 언어 > JAVA 환경설치 및 작동 원리' 카테고리의 다른 글
JAVA의 빌드툴 (0) | 2023.06.05 |
---|---|
JVM 동작 방식 (0) | 2023.06.05 |
자바 프로그램의 실행 원리 (0) | 2022.10.10 |
Mac에서 자바 실행 환경 설정하기 (0) | 2022.10.09 |