[typescript] Angular 프로젝트 구조
Angular는 구조적으로 구성된 프레임워크이며, 적절한 구조를 사용하면 프로젝트를 쉽게 유지보수할 수 있습니다. Angular 프로젝트의 기본 구조와 각 부분의 역할에 대해 알아보겠습니다.
소스코드 구조
Angular 프로젝트는 기본적으로 다음과 같은 구조를 가지고 있습니다:
- /e2e
- /node_modules
- /src
- /app
- /assets
- /environments
- angular.json
- package.json
- tsconfig.json
각 부분의 역할은 다음과 같습니다:
/e2e
: 엔드 투 엔드(end-to-end) 테스트 시나리오 및 테스트 스크립트가 포함됩니다./node_modules
: 프로젝트에 설치된 모든 종속 항목이 여기에 저장됩니다./src
: 애플리케이션의 소스 코드와 관련 파일이 포함된 디렉터리입니다./app
: 애플리케이션의 컴포넌트, 모듈, 서비스 및 기타 Angular 파일들이 여기에 저장됩니다./assets
: 애플리케이션에 사용되는 이미지, 스타일 및 기타 정적 파일이 여기에 저장됩니다./environments
: 환경별 구성 파일이 여기에 저장됩니다.
angular.json
: Angular 프로젝트의 설정 파일로, 빌드, 실행 및 배포 구성을 정의합니다.package.json
: 프로젝트의 종속 항목 및 스크립트를 정의하는 Node.js 프로젝트 파일입니다.tsconfig.json
: TypeScript 컴파일러 설정 파일로, 프로젝트에서 사용되는 TypeScript 옵션을 정의합니다.
Angular 모듈 구조
Angular 애플리케이션은 여러 모듈로 구성됩니다. 각 모듈은 특정 기능 또는 애플리케이션 부분에 대한 코드를 그룹화합니다. 일반적으로 Angular 프로젝트에는 다음과 같은 기본 모듈이 있습니다:
AppModule
: 애플리케이션의 주 모듈로, 루트 모듈이라고도 합니다. 애플리케이션을 구동하기 위해 필요한 최소한의 구성이 여기에 포함됩니다.- Feature Modules: 특정 기능이나 비즈니스 영역을 담당하는 모듈들입니다. 이러한 모듈을 사용하여 애플리케이션을 기능별로 분리하고 기능들 간의 의존성을 최소화할 수 있습니다.
// app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
서비스 및 컴포넌트 구조
Angular 애플리케이션의 서비스와 컴포넌트는 주로 다음과 같은 구조로 구성됩니다:
Services
: 애플리케이션에서 공유되는 로직 및 데이터를 처리하는 서비스들은@Injectable
데코레이터로 표시된 클래스로 정의됩니다.Components
: 사용자 인터페이스를 구성하고 사용자와 상호작용하는 데 사용되는 컴포넌트들은@Component
데코레이터로 표시된 클래스로 정의됩니다.
이들은 주로 AppModule이나 Feature Modules 안에 포함되며, 필요에 따라 여러 모듈 사이에서 공유될 수 있습니다.
결론
Angular 프로젝트를 구성하는 방법을 이해하고, 알맞게 구조화하면 개발과 유지보수가 더욱 쉽고 효율적으로 이뤄집니다. 이러한 구조는 각 파일의 역할을 명확하게 정의하고, 협업과 확장성을 개선하는 데 도움이 됩니다. Angular의 기본적인 구조와 모듈화된 코드 작성 방법은 프로젝트 전체의 성능과 관리 용이성을 향상시킬 수 있습니다.
참고문헌: