디자인 패턴은 언어와 패러다임이 변화함에 따라 진화해 왔습니다 — 일부 고전 패턴은 이제 언어에 내장되거나 언어 기능에 의해 불필요해진 반면, 현대적 필요(함수형, 반응형, 분산형)를 위한 새로운 패턴이 등장했습니다. 이 진화를 이해하는 것은 정교한 관점을 반영합니다.
언어에 흡수된 고전 패턴
일부 GoF 패턴은 이제 언어 기능이거나 훨씬 단순해짐:
→ ITERATOR → 대부분 언어의 내장 반복 (for-of, generator)
→ STRATEGY / Command → 일급 함수 / 람다가 이것들을 사소하게 만듦 (그저 함수를
전달 — 정교한 클래스 계층이 필요 없음)
→ OBSERVER → 내장 이벤트, 반응형 라이브러리, 언어 기능 (signals)
→ SINGLETON → 모듈 (많은 언어에서 모듈은 사실상 singleton)
→ 함수형 기능(값으로서의 함수)이 많은 "행위" 패턴을 단순화함
현대 패러다임을 위한 새 패턴
✓ 함수형 패턴 → 고차 함수, 불변성, 모나드, 커링, 합성
✓ 반응형 패턴 → 스트림, observable (반응형 프로그래밍) 비동기 데이터 흐름용
✓ 동시성 패턴 → async/await, 액터, 채널, future/promise
✓ 분산형/아키텍처 패턴 → microservices, event sourcing, CQRS, saga, circuit
breaker (분산 시스템을 위한 패턴 — OO 패턴을 넘어)
✓ 프론트엔드 패턴 → 컴포넌트 모델, hook, 상태 관리 패턴 (Flux/Redux)
