π PUB-SUB ν¨ν΄
PUB-SUB
ν¨ν΄μ Observer
ν¨ν΄μ μΌμ’
μ΄λ©°
λ€μμ consumer
κ° μμ μ΄ κ΄μ¬ μλ μ΄λ²€νΈλ₯Ό λΉλκΈ°μ μΌλ‘
μμ ν μ μλλ‘ ν©λλ€.
(λ¨, sender μ receiver
λ coupling
λμ§ μμ μλ‘μ μ‘΄μ¬λ₯Ό λͺ¨λ¦
λλ€.)
π PUB-SUB vs Observer
μλ Observer Pattern
μ λμ νλ¦μ
λλ€.
μ΄λ¬ν νλ¦μ ꡬνν μ ν리μΌμ΄μ
μ Observer Pattern
μ ꡬννλ€κ³ λ§ν μ μμ΅λλ€.
κ·Έλ λ€λ©΄ PUB-SUB
λ μ΄λ€ μ°¨μ΄κ° μλ κ² μΌκΉμ?
PUB-SUB
μ κ²½μ° Subject -> Publisher
κ·Έλ¦¬κ³ Observer -> Subscriber
λΌλ
λͺ μΉμμ λ³κ²½λ§ μ‘΄μ¬ν λΏ λμ λλ μ°¨μ΄μ μ μμ΄ λ³΄μ λλ€.
κ·Έλμ λ§μ μμ λ€μ΄ Observer === PUB-SUB
λΌκ³ νλ κ²½μ°κ° μ‘΄μ¬νλ κ²μ΄μ£ . π€¨
κ·Έλμ Observer μ PUB-SUB μ μ°¨μ΄μ μ΄ λκ°μ?
λ ν¨ν΄μ μ₯μ μ΄μ 곡ν΅μ μ λ κ°μ²΄ κ°μ μνΈ μμ‘΄μ±μ λμ¨νκ² ν΄μ€λ€λ κ²μ
λλ€.
Observer Pattern
κ³Ό PUB-SUB Pattern
μ μ½κ°μ μ°¨μ΄μ μ λ°λ‘ Topic/Event channel
μ μ‘΄μ¬ μ 무μ
λλ€.
μ΄λ‘μ¨ Publisher
λ Subscriber
μ μ§μ λ©μμ§λ₯Ό 보λ΄μ§ μμΌλ©° μ΄ λμ μλ‘μ μ‘΄μ¬λ₯Ό μμ§ λͺ»ν©λλ€.
Event Broker νΉμ Event Bus
λΌκ³ νλ κ²μ΄ μ΄ λμ μ€κ° λ€λ¦¬ μν μ νμ¬ λ©μμ§λ₯Ό νν°λ§
ν΄μ€λλ€.
λ©μμ§ νν°λ§μλ Topic-based & Content-based
κ° μ‘΄μ¬νλλ°
μ΄ λμ μ°¨μ΄μ μ λ€μ λΈλ‘κ·Έ κΈμ μ°Έκ³ νλ©΄ μ’μ κ² κ°μ΅λλ€.
π μ νμν κΉ?
μ¬λ¬ μ»΄ν¬λνΈκ° 곡ν΅λ λ°μ΄ν°λ₯Ό μ μ₯νλ μλ리μ€μμ
κΉλνκ³ λ©μ§ μ½λλ₯Ό μν΄μλ κ΄μ¬μ¬μ λΆλ¦¬
κ° νμν©λλ€.
μ°λ¦¬κ° μ§κΈκ» μ¬μ©ν λ€μν API λ€μ Publish & Subscribe
ν¨ν΄κ³Ό μ μ¬ν λμ μ리λ₯Ό κ°μ§κ³ μμ΅λλ€.
addEventListener | νΉμ μ΄λ²€νΈμ ν¨μλ₯Ό ꡬλ
νκ³ DOM μμμ μν΄ μ‘μ μ΄ λ°νλλ©΄ ν΄λΉ ν¨μκ° νΈμΆ |
Promise | νΉμ μ‘μ
λ€μ΄ μλ£λλ κ²μ ꡬλ
νλ©° λ°μ΄ν°κ° μ€λΉλλ©΄ λ°νλλ ν¨ν΄ |
React μ stateμ props | μ»΄ν¬λνΈλ€μ΄ λ°μ΄ν° λ³νλ₯Ό ꡬλ νμ¬ μ λ°μ΄νΈ |
Fetch API | λ§μ°¬κ°μ§ μ λλ€ π |
μ¦, μ΄λ ν λΉλκΈ° μ²λ¦¬ λ°©λ²μ μ¬μ©νλ μ§ μΈμ λ κ°μ ν¨ν΄! (무μΈκ°λ ꡬλ νκ³ λ¬΄μΈκ°λ λ°ν)
λν Loosing Coupling
μ κ° λͺ¨λμ΄ μλ‘μ μΈν°νμ΄μ€μ μμ‘΄νμ§ μμ λͺ¨λμ μ¬μ¬μ©μ±μ΄ μ¦κ°
ν©λλ€.
π λ¨μ μ μμκΉ?
Observer Pattern
μ΄λ PUB-SUB Pattern
λͺ¨λ consumer μ receiver
κ°μ λμ¨ν μ°κ²° λλ¬Έμ
μ ν리μΌμ΄μ
λμ μ crash
κ° λ°μνμ λ μμ€ν
μ λ€λ₯Έ λΆλΆμ μν₯μ μ£Όμ§ μλλ€λ κ²μ 보μ₯νκ±°λ
μΆμ λ° λλ²κΉ νκΈ° νλ€ μ μμ΅λλ€. (μ€μ λ‘ κ²ͺμμ΅λλ€... π)
π‘ μ£ΌμνκΈ°
λλ‘λ μ½κΈ° μ’μ μ½λμ μ μ§ λ³΄μλ₯Ό μν΄ μμ§λλ₯Ό λμ΄λ κ²μ΄ λ μ 리ν μ μμΌλ―λ‘
PUB-SUB Pattern μ λ¨μ©νμ§ μλλ‘ μ£Όμν©μλ€
π PUB-SUB λ₯Ό ꡬνν JS λΌμ΄λΈλ¬λ¦¬ λ° μμ
Modern Web Best Practice: Pub/Sub | Modern Web
Publisher subscriber pattern in React.js
π μ°Έκ³ μλ£
Applying publisher subscriber design pattern in javascript
Observer vs Pub-Sub pattern | Hacker Noon
Why would one use the Publish/Subscribe pattern (in JS/jQuery)?
The Publisher/Subscriber Pattern in JavaScript
JavaScript Design Patterns Part 2: The Publisher/Subscriber Pattern
'π archive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Haskell Tutorial] Function & Chaining (0) | 2022.11.28 |
---|---|
[Haskell Tutorial] Hello World! (0) | 2022.11.28 |
JWT (JSON Web Token) (0) | 2022.05.23 |
Cookie & Web Storage (0) | 2022.05.22 |
[Vue.js] λ°μν μμ€ν μ λ΄λΆ λμ λ°©μ μ΄ν΄λ³΄κΈ° (0) | 2022.03.07 |
π¬ λκΈ