Angular

🌟 Angular란?

Angular는 Google에서 개발하고 유지보수 중인 TypeScript 기반의 프론트엔드 프레임워크입니다.
단순한 UI 라이브러리가 아니라, 전체 애플리케이션을 구축할 수 있는 완전한 솔루션을 제공합니다.

🔹 Angular는 AngularJS (v1.x) 와 구분되어야 하며,
현재 우리가 말하는 Angular는 v2 이상 버전 (2016년 이후) 을 의미합니다.

🧠 핵심 개념 요약

개념설명
🧱 Component 기반 구조UI는 컴포넌트 단위로 구성되며 재사용 가능
🛠 TypeScript 사용정적 타입 기반으로 코드 안정성 증가
🔄 양방향 데이터 바인딩뷰와 모델 간 실시간 동기화 가능
🧩 모듈 시스템앱을 논리적 단위(모듈)로 나누어 관리
🔀 강력한 라우팅 시스템SPA 구조에서 URL 기반 라우팅 제공
🌐 HTTPClient 내장백엔드 API 호출 내장 모듈로 가능
📦 RxJS 기반의 리액티브 프로그래밍비동기 데이터 흐름 제어 가능
✅ 의존성 주입(Dependency Injection)테스트 용이성, 확장성 향상

🏗 Angular 아키텍처

app/
├── app.module.ts → 루트 모듈
├── app.component.ts → 컴포넌트 클래스 (비즈니스 로직)
├── app.component.html → 템플릿 (UI 구조)
├── app.component.css → 스타일
└── service/ → 서비스 (비즈니스 로직 분리)

🔧 설치 및 프로젝트 생성

Angular는 CLI 도구를 사용하여 앱 생성 및 관리가 매우 편리합니다.

npm install -g @angular/cli         # CLI 설치
ng new my-app # 새 프로젝트 생성
cd my-app
ng serve # 개발 서버 실행 (localhost:4200)

💡 간단한 예제

📁 컴포넌트 코드 (app.component.ts)

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

@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
title = '나의 첫 번째 Angular 앱';
}

📁 템플릿 (app.component.html)

<h1>{{ title }}</h1>
<input [(ngModel)]="title">
<p>입력한 제목: {{ title }}</p>

📁 모듈 설정 (app.module.ts)

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';

import { AppComponent } from './app.component';

@NgModule({
declarations: [ AppComponent ],
imports: [ BrowserModule, FormsModule ],
providers: [],
bootstrap: [ AppComponent ]
})
export class AppModule { }

🧪 핵심 기능 요약

기능설명
@ComponentUI 단위 선언
@NgModule앱의 루트 및 서브 모듈 설정
@Injectable서비스 클래스 선언
RouterModule라우팅 설정
HttpClientModuleREST API 호출 가능
ngModel양방향 데이터 바인딩
*ngFor, *ngIf템플릿 반복 및 조건 처리

⚖️ Angular의 장단점

✅ 장점

  • 대형 애플리케이션에 최적화된 아키텍처
  • 완전한 프레임워크 (라우팅, HTTP, DI, 폼 등 다 내장)
  • 타입 안정성 (TypeScript 기반)
  • 강력한 커뮤니티와 Google의 지원
  • 공식 CLI 툴의 높은 생산성

❌ 단점

  • 진입 장벽이 높음 (러닝 커브 있음)
  • 초기 로딩 속도가 느릴 수 있음
  • 작은 프로젝트에는 다소 과도할 수 있음
  • 코드 양이 많아질 수 있음 (보일러플레이트)

💼 Angular를 사용하는 대표 기업

  • Google (Gmail, Google Cloud Console)
  • Microsoft Office 웹버전
  • Deutsche Bank
  • Upwork
  • Samsung

🧠 Angular vs React vs Vue 간단 비교

항목AngularReactVue
구조완전한 프레임워크UI 라이브러리진입장벽 낮은 프레임워크
언어TypeScriptJavaScript / TS 가능JavaScript / TS 가능
데이터 바인딩양방향단방향양방향
러닝 커브높음중간낮음
기업 사용처Google, 삼성, Microsoft 등Meta, Airbnb, Netflix 등Alibaba, Xiaomi 등

📌 정리 요약

항목설명
프레임워크명Angular
언어 기반TypeScript
구조 특징Component + Module 중심
바인딩 방식양방향 데이터 바인딩
공식 도구Angular CLI
적합 대상대형 SPA, 복잡한 B2B/B2C 시스템

Leave a Comment