컴퓨터 프로그래밍에서 소스 코드를 기계어로 번역하여 컴퓨터에서 실행 가능한 프로그램으로 만드는 작업은 컴파일러의 역할입니다. 전통적인 컴파일러는 코드 변환 과정에서 최적화를 수행하고, 각 CPU 아키텍처에 맞는 기계어를 생성합니다. 하지만 이 과정에서 발생하는 비효율성이나 다양한 프로그래밍 언어 및 아키텍처에 대한 대응이 어렵다는 문제점이 있었습니다. 이를 해결하기 위해 등장한 것이 LLVM이라는 모듈식 컴파일러 인프라스트럭처입니다. 이 글에서는 전통적인 컴파일러와 LLVM의 구조와 차이점을 설명하고, LLVM이 제공하는 장점들을 살펴보겠습니다.전통적인 컴파일러 구조컴파일러는 일반적으로 세 가지 단계로 구성됩니다: 프런트엔드(Frontend), 미들엔드(Middle-end), 그리고 백엔드(Backen..