본문 바로가기

Dev. Etc/knowledge

빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Complie)

 

 

 

빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Complie)

 


 

 

 

서버에 기능을 추가 하려면 개발자가 로컬 PC에서 개발을 하고 테스트까지 진행한 뒤에 문제가 없을 경우 사용자가 사용할 수 있도록 수정된 코드를 실서버에 반영해야 합니다.

서버에 반영을 하는 것을 "배포"라고 하고 배포(Deploy) 하기 위한 과정을 "빌드"라고 합니다.

 

 

 

 

 

● 빌드(Build)란?

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

예를 들어 Java프로젝트를 진행한다면 개발자가 작성한 A.java와 여러가지 정적 파일등에 해당하는 resource가 존재합니다.

빌드를 한다면 소스코드를 컴파일해서 .class로 변환하고 resource를 .class에서 참조할 수 있는 적절한 위치로 옮기고 META-INF와 MANIFEST.MF 들을 하나로 압축하는 과정을 의미합니다.

컴파일은 빌드의 부분집합이라고 생각하시면 됩니다.

또한, 빌드 과정을 도와주는 도구를 Build Tool이라고 합니다.

즉, 컴파일 된 코드를 실제 실행할 수 있는 상태로 만드는 일을 Build 라는 개념으로 생각하시면 됩니다.

 

 

 

 

● 빌드 툴(Build Tool) 종류 

빌드에서는 컴파일, 테스트, 배포 등 과정이 포함될 수 있고, 빌드 과정을 도와주는 도구를 빌드 툴이라 합니다.

일반적으로 빌드 툴이 제공해주는 기능으로는 다음과 같은 기능들이 있습니다.

전처리(preprocessing), 컴파일(Compile), 패키징(packaging), 테스팅(testing), 배포(distribution)

빌드 툴로는 Ant, Maven, Gradle 등이 있습니다.

 

 

 

 

 

 

 

 

 

 

● 컴파일이란?

컴퓨터가 이해할 수 있는 언어로 바꾸어주는 과정을 말하며, java의 경우 컴파일의 결과로 자바가상머신(JVM)에서 실행가능한 ".class" 파일이 생깁니다.

컴파일과 빌드와 같다고 생각하실 수 있지만, 컴파일은 빌드를 진행하는 과정의 일종의 하나인 Task 입니다.

즉, 소스코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업을 말한다.

 

 

 

 

 

결론

Build = Complie + 그 외 작업

Run = Build + 실행

      = (Complie + 그외작업) + 실행

 

 

 

 

 

 

 

 

 

Ref: https://velog.io/@leede418/CS-Compile-Link-Build-%EB%9E%80