토픽 108 / 111·코드 실행 체계 (Code Execution Model)
AOT 컴파일 (Ahead-Of-Time Compilation)
AOT 컴파일 (Ahead-Of-Time Compilation)
프로그램 실행 전에 소스코드나 바이트코드를 대상 플랫폼의 네이티브 기계어로 미리 컴파일하는 기법으로, 실행 시 추가 컴파일 없이 즉시 실행 가능
목적: 즉시 실행(Cold Start 제거), 예측 가능한 성능, 메모리 최적화, 보안 강화
특징: 사전 컴파일, 즉시 시작, 일관된 성능, 작은 메모리 풋프린트, 정적 링크
주요 기술: GraalVM Native Image(Java→네이티브), Go 컴파일러, Rust 컴파일러, .NET NativeAOT, Android ART(설치 시 컴파일)
장점: 빠른 시작 시간, 낮은 메모리 사용, 예측 가능 성능, 배포 단순(단일 바이너리)
단점: 런타임 최적화 불가, 리플렉션/동적로딩 제약, 긴 빌드 시간, 플랫폼별 빌드 필요
적용사례: 서버리스(Lambda/Cloud Functions), CLI 도구, 마이크로서비스, 임베디드, 모바일
비교: AOT(즉시실행/정적최적화/작은메모리/Go·Rust) vs JIT(웜업필요/동적최적화/큰메모리/Java·JS)
연관: JIT, GraalVM, 네이티브 이미지, 서버리스, 컨테이너