728x90

 

이벀트 큐 νŒ¨ν„΄

 

λ©”μ‹œμ§€λ‚˜ 이벀트λ₯Ό λ³΄λ‚΄λŠ” μ‹œμ κ³Ό μ²˜λ¦¬ν•˜λŠ” μ‹œμ μ„ λ””μ»€ν”Œλ§ν•¨

λ³΄ν†΅μ˜ μ΄λ²€νŠΈλŠ” λ™κΈ°μ μœΌλ‘œ μ—°μ‚°

동기적(Synchronouse) 비동기적(Asynchronous)
μ–΄λ–€ μž‘μ—…μ„ μš”μ²­ν–ˆμ„ λ•Œ κ·Έ μž‘μ—…μ΄ μ’…λ£Œλ λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦° ν›„ λ‹€μŒ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 방식
μ–΄λ–€ μž‘μ—…μ„ μš”μ²­ν–ˆμ„ λ•Œ κ·Έ μž‘μ—…μ΄ μ’…λ£Œλ λ•ŒκΉŒμ§€ 기닀리지 μ•Šκ³  λ‹€λ₯Έ μž‘μ—…μ„ ν•˜κ³  μžˆλ‹€κ°€, μš”μ²­ν–ˆλ˜ μž‘μ—…μ΄ μ’…λ£Œλ˜λ©΄ 그에 λŒ€ν•œ μΆ”κ°€ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 방식
μ„œλΈŒλ£¨ν‹΄ 간에 λͺ…ν™•ν•œ μ‹€ν–‰ μˆœμ„œ 쑴재 μ„œλΈŒλ£¨ν‹΄ 간에 λͺ…ν™•ν•œ μ‹€ν–‰ μˆœμ„œ μ‘΄μž¬ν•˜μ§€ μ•ŠμŒ

 

이벀트λ₯Ό 보내고, μ²˜λ¦¬ν•˜λŠ” λ™μ•ˆ μŠ€λ ˆλ“œκ°€ λ©ˆμΆ°λ²„λ¦¬λŠ” 상황이 λ°œμƒ

이λ₯Ό ν•΄κ²°ν•˜κ³ μž λ‚˜μ˜¨ 것이 이벀트 큐 νŒ¨ν„΄μ΄λ‹€

 

이벀트 λ°œμƒ μ‹œ, λͺ…령을 λ‹΄μ•„ λ‘˜ 곡간이 ν•„μš”ν•œλ° Queue에 이벀트λ₯Ό λ‹΄μ•„λ‘”λ‹€

 

νŠœν† λ¦¬μ–Ό μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš©ν•  수 있음

 

그리고 μ΄λ²€νŠΈκ°€ 순차적으둜 진행이 되길 원할 λ•Œ μ‚¬μš©ν•  수 있음

예λ₯Ό λ“€μ–΄ 업적을 λ‹¬μ„±ν–ˆμ„ λ•Œ,

업적 달성에 λŒ€ν•œ λ°˜μ‘λ“€μ΄ λ‚˜νƒ€λ‚˜μ•Όν•¨

λ§Œμ•½ 업적 달성이 Popupκ³Ό Soundλ₯Ό 좜λ ₯ν•˜λŠ”λ°,

μ—¬λŸ¬κ°€μ§€ 업적을 ν•œλ²ˆμ— λ‹¬μ„±ν–ˆμ„ 경우 ν•΄λ‹Ή 업적 달성에 λŒ€ν•œ ν”Όλ“œλ°±μ„ λ™μ‹œμ μœΌλ‘œ 좜λ ₯ν•˜λ©΄ μ•ˆλ˜λŠ” 경우 FIFO λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ 이벀트 큐 νŒ¨ν„΄μ„ μ‚¬μš©ν•˜λ©΄ λœλ‹€

큐에 λ„£λŠ” μ΄μœ λŠ” κ²°κ³Όλ₯Ό 기닀리지 μ•ŠκΈ° μœ„ν•΄μ„œμ΄λ‹€

이벀트λ₯Ό 보내고, μ²˜λ¦¬ν•˜λŠ” λ™μ•ˆ μŠ€λ ˆλ“œκ°€ λ©ˆμΆ°λ²„λ¦¬λŠ” 상황을 λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œμ΄λ‹€

이벀트 νλŠ” κ΄€μ°°μ°¨ νŒ¨ν„΄μ˜ λΉ„λ™κΈ°ν˜•

 

κ΄€μ°°μž, λͺ…λ Ή νŒ¨ν„΄ 이벀트 큐 νŒ¨ν„΄
λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄λŠ” κ³³κ³Ό λ°›λŠ” 곳으둜 λΆ„λ¦¬ν•˜κ³  싢을 λ•Œ λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄λŠ” μ‹œμ κ³Ό λ°›λŠ” μ‹œμ μ„ λΆ„λ¦¬ν•˜κ³  싢을 λ•Œ μ‚¬μš©

 

 

μ£Όμ˜μ‚¬ν•­

  1. λͺ¨λ“  이벀트, λ©”μ‹œμ§€ μ‹œμŠ€ν…œμ€ ν”Όλ“œλ°± 루프가 생기면 μ•ˆλ¨
  2. 유기적으둜 계속 μ—°κ²°λ˜λŠ” μ΄λ²€νŠΈλ“€μ„ λ„£μœΌλ©΄ 이벀트 큐 νŒ¨ν„΄μ„ μ‚¬μš©ν•˜λŠ” μ˜λ―Έκ°€ 없어짐
  3. 이벀트λ₯Ό μ²˜λ¦¬ν•˜λŠ” μ½”λ“œ λ‚΄μ—μ„œλŠ” 이벀트λ₯Ό 보내지 μ•Šμ•„μ•Όν•¨

 

 

 

λ°˜μ‘ν˜•

'곡뢀 > Design Pattern' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

싱글톀(Singleton) νŒ¨ν„΄μ΄λž€?  (0) 2021.12.15

+ Recent posts