Angular Signals 이해하기 — Angular에서 리액티비티의 미래

발행: (2025년 12월 3일 오후 05:59 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Signals란 무엇인가요?

Signal은 특별한 반응형 변수입니다. 값이 변경되면 Angular가 자동으로 UI를 업데이트합니다—구독도, async 파이프도, 보일러플레이트도 필요 없습니다.

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

const counter = signal(0);
counter(); // returns 0

Signal을 상태 컨테이너로 생각하면 됩니다. 상태가 바뀔 때 “반응”합니다.

왜 Signals를 사용해야 할까요?

  • 더 이상 수동 구독이 필요 없음subscribe()unsubscribe() 같은 번거로움이 사라집니다.
  • 예측 가능한 UI 업데이트 – 영향을 받은 부분만 다시 렌더링됩니다.
  • 컴포넌트 로직이 깔끔해짐 – Signal을 함수처럼 읽습니다: mySignal().
  • 로컬 및 공유 상태에 모두 적합 – 컴포넌트 상태 관리를 크게 단순화합니다.

Angular에서 Signals 사용 방법

Signal 만들기

count = signal(0);

템플릿에서 읽기

Count: {{ count() }}

Signal 업데이트하기

increment() {
  this.count.update(value => value + 1);
}

새 값 설정하기

this.count.set(100);

Computed Signals

computed()를 사용하면 파생값을 자동으로 만들 수 있습니다.

fullName = computed(() => `${this.firstName()} ${this.lastName()}`);

firstName이나 lastName이 변경될 때마다 fullName이 즉시 업데이트됩니다.

Effects – Signal이 변할 때 로직 실행하기

effect(() => {
  // 예시: API 호출, 로그 남기기, 상태 변화에 반응 등
});

Signals와 RxJS 비교

Signals는 RxJS를 대체하는 것이 아닙니다; RxJS가 과도하게 복잡하게 느껴질 수 있는 일반적인 경우를 단순화해 주지만, 고급 스트리밍 시나리오에서는 여전히 RxJS가 유용합니다.


Angular Signals는 현대적이고 가볍으며 매우 예측 가능한 반응성 모델을 Angular에 제공합니다. 작은 기능이든 대규모 애플리케이션이든, Signals를 사용하면 코드가 더 깔끔해지고 정신적 부담이 줄어듭니다. 아직 Signals를 사용해 보지 않았다면, 지금이 바로 시작하기에 완벽한 시점입니다—Angular 작업 흐름이 더 빠르고, 간단하며, 즐거워질 것입니다.

Back to Blog

관련 글

더 보기 »

🧱 강의 9B : 제품 관리 (Angular)

소개 이 모듈은 전체 제품 관리 기능을 구축하는 데 중점을 두며, 전체 CRUD 작업과 프론트엔드와의 원활한 통합을 포함합니다.