Angular Signals vs Observables — 내가 실제로 배운 것
Source: Dev.to
Signals vs Observables Overview
- Signals는 상태에 관한 것입니다.
- Observables는 시간에 따른 스트림에 관한 것입니다.
When Signals Shine
- 로컬 컴포넌트 상태
- 파생값
- 템플릿 기반 반응성
Characteristics of Signals
- 동기적
- 명시적
- 추적하기 쉬움
시그널이 변경되면 Angular는 정확히 어떤 부분을 업데이트해야 하는지 알기 때문에 컴포넌트가:
- 더 작아지고
- 이해하기 쉬워지며
- RxJS 연산자에 덜 의존하게 됩니다
When Observables Remain the Right Tool
- HTTP 요청
- 사용자 이벤트
- WebSocket
- 비동기 워크플로우
Key Observable Features
subscribeswitchMapretrydebounceTime
이러한 상황에서 Observables를 Signals로 대체하려고 하면 혼란만 가중됩니다.
The Most Important Lesson
실제 개선점은 성능이 아니라 명확성이었습니다. RxJS를 모든 곳에 강제로 적용하는 대신 이제는 이렇게 묻습니다:
- 이게 상태인가? → Signal
- 시간에 따라 비동기인가? → Observable
이 한 가지 질문만으로 가독성, 유지보수성, 팀 커뮤니케이션이 크게 향상되었습니다.
How I Use Them Together
- Observables로 데이터를 가져옵니다.
- 결과를 Signals로 변환합니다.
- Signals가 UI를 구동하도록 합니다.
이 조합은 자연스럽고 균형 잡힌 느낌을 줍니다. Angular의 힘은 그대로이며, Signals가 Observables를 대체하지도 않으며—저에게는 이것이 진정한 승리입니다.