CS

[CS]빌드 프로세스

programmer-faust 2025. 8. 27. 17:33
  • 순서
    1. 빌드란?
    2. 빌드의 종류
    3. 빌드 과정
  • 빌드란?
    1. 컴퓨터는 2진법으로 0과 1밖에 모르기 때문에 코드를 컴퓨터가 이해할 수 있도록 기계어로 번역하여, 실행 가능한 파일로 만드는 과정
    2. 우리가 만든 소스코드를 빌드라는 과정을 통해 실행 파일을 얻음. 이렇게 얻은 실행파일은 컴퓨터가 읽을 수 있는 이진코드인 기계어로 이루어져있음.
  • 빌드의 종류
    1. Compile Type: 소스코드 전체를 기계어로 번역함
    2. Interpreted Type: 소스코드를 한 줄씩 번역하면서 실행함
    3. Hybrid Type: 소스코드 전체를 중간코드(바이트 코드)로 번역한 뒤 가상머신(VM)에서 한 줄씩 실행함
  • 빌드 과정
    1. CompileType의 빌드과정
      • 전처리(Processing)
        1. #include, #define, #if같은 지시문들을 처리함
        2. 헤더 파일을 불러오고, 매크로를 치환하며, 조건부 컴파일을 실행하여 순수한 소스 코드를 만들어냄
      • 컴파일(Compilation)
        1. 전처리된 소스를 바탕으로 어휘 분석(Lexical Analysis), 구문 분석(Syntax Analysis), 의미 분석(Semantic Analysis)을 수행함
        2. 사람이 읽을 수 있는 소스코드를 기계어로 직접 바꾸는 게 아니라 중간 단계의 어셈블리어로 변환
        3. 각 .cpp 파일마다 .obj 또는 .o같은 목적 파일이 생성
      • 어셈블(Assemble)
        1. 어셈블리 코드를 실제 CPU가 이해할 수 있는 기계어(바이너리 코드)로 변환
        2. 해당 단계에서 보통 컴파일러 내부에서 자동 처리됨
        3. 결과 .obj/.o 파일이 CPU 아키텍처에 맞는 기계어를 포함하게 
      • 링킹(Linking)
        1. 여러개의 .obj/.o 파일을 하나로 합침
        2. 외부 라이브러리(.lib, .dll, .so 등)와 연결
        3. 심볼(함수, 변수) 참조를 해결 > 정의도니 코드와 연결
        4. 결과적으로 실행 가능한 최종 바이너라 혹은 라이브러리 생성
      • 컴파일 언어의 장점
        1. 빌드가 완료된 실행가능한 파일은 실행 속도가 빠릅니다.
        2. 매번 번역할 필요 없이 실행 파일만 실행하면 되기 때문에 전체적인 시간면에서 효율적임.
      • 컴파일 언어의 단점
        1. 프로그램을 수정해야 할 경우 처음부터 빌드과정을 다시 거쳐야하기 때문에 특히나 대규모 프로그램에서는 생산성이 떨어짐.
        2. 플랫폼에 매우 의존적임.

'CS' 카테고리의 다른 글

[CS] 프로세스와 스레드  (2) 2025.08.28
[CS]메모리 단편화  (1) 2025.08.28
[CS]프로세스의 메모리  (1) 2025.08.27
[CS] CPU와 GPU  (4) 2025.08.26
[CS] 컴퓨터의 메모리 구조  (4) 2025.08.22