[typescript] Angular 모듈

Angular 프레임워크는 모듈을 사용하여 애플리케이션의 기능을 구성하고 구현하는 데 중요한 역할을 합니다. 모듈은 애플리케이션을 구성하는 기본적인 빌딩 블록이며, 컴포넌트, 디렉티브, 파이프, 서비스 등과 같은 관련된 기능들을 결합합니다.

모듈의 기본 개념

모듈은 관련된 코드를 그룹화하여 하나의 단위로 다루는 Angular의 핵심 개념입니다. 모듈은 @NgModule 데코레이터를 사용하여 정의하며, 해당 모듈에 속한 컴포넌트, 디렉티브, 파이프, 서비스 등을 정의하고 관리합니다.

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MyComponent } from './my.component';

@NgModule({
  declarations: [
    MyComponent
  ],
  imports: [
    CommonModule
  ]
})
export class MyModule { }

위의 예제에서 @NgModule 데코레이터 내부의 속성들은 해당 모듈이 포함하는 컴포넌트, 디렉티브, 파이프, 서비스를 정의하고, 필요한 외부 모듈을 가져오는 역할을 합니다.

모듈의 종류

루트 모듈 (Root Module)

가장 상위 수준의 모듈로, 일반적으로 AppModule이라고 불립니다. 애플리케이션을 구동하기 위해 필수적으로 필요하며, 다른 모듈을 로드하고 애플리케이션의 기본 설정을 포함합니다.

기능 모듈 (Feature Module)

특정 기능이나 비즈니스 영역에 관련된 모듈로, 애플리케이션을 더 작은 부분으로 나누어 구조화할 때 사용됩니다. 각 모듈은 자체적인 라우팅, 컴포넌트, 서비스 및 기능적인 요소들을 포함합니다.

공유 모듈 (Shared Module)

여러 모듈 간에 공통으로 사용되는 컴포넌트, 디렉티브, 파이프, 서비스 등을 포함하며, 중복 코드를 최소화하는 데 사용됩니다.

모듈의 사용

모듈은 @NgModule 데코레이터로 정의되며, imports, declarations, providers, exports 등의 특정 속성으로 관련된 구성 요소들을 포함합니다. 모듈은 애플리케이션의 기능을 조직화하고 재사용 가능한 코드 단위로 만드는 데 도움을 줍니다.

자세한 내용은 Angular 모듈 공식 문서를 참고하시기 바랍니다.