# Table of Contents

# Compile

컴파일(Compile) 개발자가 작성한 소스코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정을 의미한다.

예를 들어 C 언어의 경우 gcc컴파일러가 .c파일을 컴파일하여 .o파일을 생성한다. Java 언어의 경우 javac컴파일러가 .java파일을 컴파일하여 .class파일을 생성한다.

# Build

프로젝트를 진행하다보면 여러 개의 소스코드 파일이 생성된다. A라는 소스코드 파일에서 B라는 소스코드 파일을 참조한다고 가정해보자. 이때 파일 A와 파일 B를 각각 컴파일하면 A에서 B를 찾지 못하므로 참조할 수가 없다. 따라서 파일 A와 파일 B를 연결하는 작업이 필요한데 이를 링크(Link)라고 한다.

빌드(Build)는 컴파일, 링크 등을 모두 포함하여 실행 가능한 소프트웨어로 만드는 과정을 의미한다.

# Build Tool

빌드 도구(Build Tool)는 소스코드를 실행 가능한 소프트웨어로 만들어주는 도구다. 요즘의 빌드 도구는 빌드 작업 뿐만 아니라 테스트, 빌드 자동화, 배포 등 다양한 기능을 제공하기도 한다. 자바나 코틀린의 빌드 도구에는 Maven, Build 등이 있다.