AOT Compile

agnusdei·2023년 7월 18일
0

AOT(Ahead-of-Time) 컴파일은 Angular 프레임워크의 빌드 프로세스 중 하나로, 애플리케이션의 TypeScript 코드를 컴파일하여 JavaScript 코드를 생성하는 것을 의미합니다. AOT 컴파일은 Angular의 성능을 향상시키고, 런타임에서 발생하는 오류를 사전에 감지하여 더 안정적인 애플리케이션을 만들 수 있게 해줍니다. 기본적으로 Angular CLI에서 프로덕션 환경에서 "ng build --prod"를 실행할 때 AOT 컴파일이 수행됩니다.

AOT 컴파일과 그에 대비되는 개념으로는 JIT(Just-in-Time) 컴파일이 있습니다. JIT 컴파일은 런타임 시점에서 애플리케이션의 TypeScript 코드를 컴파일하여 브라우저에서 실행하는 방식입니다. 이는 개발 중에 변경사항을 빠르게 확인할 수 있어 편리하지만, 브라우저에서 컴파일을 수행하므로 애플리케이션 로딩 속도가 느릴 수 있고, 애플리케이션에 접근할 때 런타임 오류가 발생할 가능성이 있습니다.

AOT 컴파일의 주요 특징과 이점은 다음과 같습니다:

  1. 성능 향상: AOT 컴파일은 애플리케이션을 빌드할 때 미리 모든 템플릿과 컴포넌트를 컴파일하므로, 런타임에 동적 컴파일이 필요 없습니다. 이로 인해 브라우저에서 Angular 애플리케이션을 빠르게 로딩할 수 있으며, 초기 로딩 속도와 성능이 향상됩니다.

  2. 사전 오류 감지: AOT 컴파일러는 애플리케이션의 템플릿과 컴포넌트를 컴파일하기 때문에, 런타임 오류를 사전에 감지할 수 있습니다. 따라서 개발 중에 발생할 수 있는 많은 오류를 사전에 파악하여 디버깅에 도움이 됩니다.

  3. 작은 번들 크기: AOT 컴파일은 템플릿과 컴포넌트를 사전 컴파일하므로, 번들된 파일 크기를 줄일 수 있습니다. 이는 사용자가 애플리케이션을 빠르게 다운로드할 수 있도록 도와줍니다.

  4. 세부적인 트리 셰이킹: AOT 컴파일은 사용하지 않는 코드를 제거하여 애플리케이션의 번들 크기를 더욱 최적화할 수 있습니다. 이를 통해 불필요한 코드를 제거하고, 효율적인 애플리케이션을 구성할 수 있습니다.

단점으로는 AOT 컴파일이 JIT 컴파일에 비해 개발자 경험을 약간 저하시킬 수 있다는 점이 있습니다. AOT 컴파일을 사용하면 개발 시점에서 변경 사항을 확인하려면 추가적인 빌드 단계가 필요할 수 있습니다. 그러나 이는 성능과 안정성의 이점을 감안할 때 상대적으로 미비한 단점입니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

소중한 정보 감사드립니다!

답글 달기