빌드(Build)란 무엇일까?

    안녕하세요. 이번 포스팅에서는 빌드(Build)에 대해서 알아보려고 합니다.

     

    프로그램을 만들고 프로그래밍 언어로 코딩을 해 본 경험이 있는 사람이라면 빌드라는 말을 들어봤을 가능성이 높고 설령 인지하지 못했을지라도 실제로 숱하게 많은 빌드 작업을 실행할 것입니다. 저는 개인적으로 현재 Visual Studio나 Visual Studio Code를 주로 사용하는 작업 환경에 있어서 이러한 IDE(Integrated Development Environment)를 통해서 작성한 스크립트 패키지를 빌드합니다.

    1. 빌드의 의미

    그렇다면 이 때 말하는 빌드는 어떤 동작을 수행하는 것일까요? 결론부터 말하자면 빌드는 컴파일(Compile)과 링크(Link)를 합쳐서 부르는 용어입니다. 그럼 컴파일과 링크가 각각 무엇인지 알아야 정확하게 이해할 수 있겠지요?​

    먼저, 컴파일이란 작성한 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업을 가리키는 용어입니다.

     

    * 기계어는 CPU가 이해할 수 있는 2진수의 나열을 가리키는 말입니다. 다시 말해 컴퓨터가 이해할 수 있는 언어는 반드시 0과 1로만 구성된 언어로 변환 될 수 있는 것이어야 합니다.

     

    이 작업을 수행하는 프로그램을 컴파일러라고 부릅니다. 사람으로 비유하자면 통역가라고 할 수 있겠습니다. 일반적으로 컴파일의 결과는 .exe 파일로 나타나는데, 어셈블리어로 작성한 asm 파일의 경우에는 컴파일의 결과가 exe 파일이 아닌 obj 파일입니다.

     

    * 어셈블리어: 0과 1로 구성되어 있는 기계어를 사람이 작성해서 프로그램을 만드는 것은 너무나 어려운 일입니다. 그래서 사람이 이해하기 수월한 언어로 작성하되, 기계어와 대응될 수 있도록 사용 가능한 언어가 어셈블리어입니다. 그 이유는 다수의 asm 파일을 하나의 exe 파일로 합치는 작업이 꽤나 불편한 작업이기 때문인데, 그래서 먼저 각각의 asm 파일에 대응되는 obj 파일을 컴파일을 통해서 생성한 이후에 다수의 obj 파일을 연결시켜서 궁극적으로 목표했던 exe 파일을 만드는 것입니다. ​

     

    이 때, obj 파일들을 연결해서 하나의 exe 파일을 만드는 작업을 링크라고 부르고, 이 동작을 수행하는 프로그램을 링커라고 합니다.

    어셈블리 빌드 과정 그림

    이렇게 각각의 컴파일과 링크 작업으로 생성되는 최종 exe 파일의 생성 작업을 통칭해서 빌드라고 합니다.

     

    질문이나 보완해야 할 내용에 대해서는 댓글로 남겨주시거나 여기로 메일을 보내주세요. 감사합니다.

    댓글

    Designed by JB FACTORY