[typescript] Angular 성능 최적화

Angular는 대규모 응용 프로그램을 개발하는 데 매우 강력한 프레임워크입니다. 그러나 Angular 애플리케이션의 성능 문제가 발생할 수 있으며, 이를 해결하기 위해 몇 가지 최적화 기법을 적용할 수 있습니다.

컴포넌트 단위 최적화

Angular에서 성능을 향상시키는 가장 일반적인 방법 중 하나는 컴포넌트 단위 최적화입니다. 이는 각 컴포넌트가 변경될 때마다 Angular가 다시 그리는 방식을 최적화하는 것을 의미합니다. 컴포넌트의 변경 감지 전략을 선택적으로 사용하여 변경 검사를 줄일 수 있습니다.

예를 들어, ChangeDetectionStrategy.OnPush를 사용하여 변경 감지 전략을 수정할 수 있습니다.

import { Component, ChangeDetectionStrategy } from '@angular/core';

@Component({
  selector: 'app-my-component',
  templateUrl: 'my-component.html',
  changeDetection: ChangeDetectionStrategy.OnPush
})
export class MyComponent {}

모듈 지연 로딩

Angular 애플리케이션에 사용되는 모든 모듈을 한 번에 로드하면 초기 페이지 로딩 시간이 길어질 수 있습니다. 따라서 모듈 지연 로딩을 통해 초기 로딩 시간을 줄일 수 있습니다.

const routes: Routes = [
  { path: 'lazy', loadChildren: () => import('./lazy/lazy.module').then(m => m.LazyModule) }
];

위의 코드에서 loadChildren 속성을 사용하여 지연 로딩을 적용할 수 있습니다.

AOT 컴파일

AOT(Ahead-of-Time) 컴파일을 사용하여 Angular 어플리케이션의 성능을 향상시킬 수 있습니다. AOT 컴파일을 통해 미리 컴파일된 코드를 브라우저에 제공함으로써 초기 로딩 시간을 줄일 수 있습니다.

ng build --aot 명령을 사용하여 AOT 컴파일을 수행할 수 있습니다.

서버 사이드 렌더링

Angular 애플리케이션에 서버 사이드 렌더링을 구현하여 초기 로딩 시간을 줄일 수 있습니다. 이를 통해 첫 화면의 로딩 시간을 크게 개선할 수 있습니다.

결론

Angular 애플리케이션의 성능을 향상시키는 것은 매우 중요합니다. 위에서 언급한 몇 가지 방법을 통해 Angular 애플리케이션의 성능을 개선할 수 있습니다. 하지만 매번 성능 문제가 발생했을 때 이러한 방법을 적용하는 것이 아니라, 초기 설계 및 구현 단계에서 성능에 대한 고려를 하는 것이 중요합니다.

참고 자료