본문 바로가기

Coding

Compile, Build, Deploy 차이

* Complie(컴파일)

- 사용자가 작성한 코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 일

- 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정을 말한다. (목적파일, object file이 생성된다)

- 즉 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 이러한 작업을 해주는 프로그램을 가르켜 complier라고 한다.

 

* Link(링크)

- 여러개로 분리된 소스파일들을 컴파일한 결과물들에서 최종 실행가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해주는 작업

- 프로젝트를 진행하다 보면 소스파일이 여러개 생성되고, A라는 소스파일에서 B라는 소스파일에 존재하는 함수(메서드)를 호출하는 경우가 있다.

- 이때 A와 B 소스파일을 각각 컴파일만 하면 서로를 못찾으므로, A와 B를 연결해주는 작업이 필요한데 이 작업을 링크라고 한다.

- 정적 링크(static link)는 컴파일된 소스파일을 연결하여 실행가능한 파일을 만드는 것이고,

- 동적 링크(dynamic link)는 프로그램 실행 도중 프로그램 외부에 존재하는 코드를 찾아서 연결하는 것이다.

 

 

* Build(빌드)

- 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일

- 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정을 말한다.

 

- 컴파일은 빌드의 부분집합이라고 할 수 있다.

 

* Deploy(배포)

- 빌드가 완성된 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치시키는 일

 

 

 

출처: 컴파일과 빌드 차이점, [QA] 컴파일? 빌드? 배포? 개념과 차이는 무엇일까?