제이제이
article thumbnail

 

안녕하세요. 이번 포스팅에서는 빌드와 컴파일 간의 차이에 대해서 알아보겠습니다.

 

🤔 빌드란?


  • 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 결과를 의미합니다.

 

예시

  • 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

profile

제이제이

@아사비치즈스틱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!