[angular] 체인지 디텍션 전략 구성

체인지 디텍션 전략 구성

Angular 애플리케이션을 개발할 때, 컴포넌트 간 데이터가 변경될 때 이를 감지하여 적절한 로직을 수행하는 체인지 디텍션 전략을 설정해야 합니다. 이전에는 기본적으로 ChangeDetectionStrategy.Default가 사용되었지만, 고성능을 원하는 경우 ChangeDetectionStrategy.OnPush를 고려할 수 있습니다.

ChangeDetectionStrategy.Default vs ChangeDetectionStrategy.OnPush

ChangeDetectionStrategy.Default는 컴포넌트가 변경 검사를 실행할 때, 해당 컴포넌트와 그 자식 컴포넌트에 대해 전체 변경 검사를 수행합니다. 따라서, 컴포넌트나 부모 컴포넌트 중 하나가 변경되었을 때, 모든 자식 컴포넌트가 변경 검사를 수행합니다.

반면, ChangeDetectionStrategy.OnPush는 컴포넌트의 입력 바인딩이 변경되었거나 EventEmitter를 통해 이벤트가 발생할 때만 변경 검사를 수행합니다. 이로써 컴포넌트 트리 내에서 변경되지 않은 부분은 변경 검사를 수행하지 않아 성능이 향상됩니다.

적절한 전략 구성

ChangeDetectionStrategy.OnPush를 적용하여 변경 검사의 빈도를 줄이고 성능을 향상시킬 수 있지만, 올바르게 구성하지 않으면 예상치 못한 동작이 발생할 수 있습니다. 이에 따라 컴포넌트의 입력과 상태를 조정하여 올바르게 ChangeDetectionStrategy.OnPush를 적용하는 것이 중요합니다.

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

@Component({
  selector: 'app-example',
  templateUrl: './example.component.html',
  changeDetection: ChangeDetectionStrategy.OnPush
})
export class ExampleComponent {
  // 컴포넌트의 입력과 상태 설정
}

Angular 애플리케이션에서 적절한 변경 검사 전략을 구성하여 성능을 최적화하고 예기치 않은 문제를 방지할 수 있습니다.

더 자세한 정보는 Angular 공식 문서를 참고하세요. ```