Vincent
1
Reactive Extension(Rx)์ .NET์ ํ๋์ ์ผ๋ก ๊ฐ๋ฐํ ์ ์๋ ๋ฐฉ๋ฒ ์ค ํ๋์ธ๋ฐ, ์ด๋ฅผ ์ด์ฉํ ์คํ ์์ค UI ํ๋ ์์ํฌ์ธ ReativeUI(RxUI)๊ฐ ์์ต๋๋ค.
RxUI๋ ๋ฉ์ ธ๋ณด์ด์ง๋ง, ๋ค๊ฐ๊ฐ๊ธฐ ์ด๋ ต๊ณ ํ๊ตญ์ด ๋ ํผ๋ฐ์ค๊ฐ ์ ๋ฌดํ ๊ธฐ์ ์
๋๋ค.
์ ๋ AvaloniaUI๋ฅผ ํตํด RxUI๋ฅผ ์ฒ์ ์ ํ๋๋ฐ, ํ ์ดํ๋ก์ ํธ๋ฅผ ํ๋ ํด๋ณด๊ณ ๋งค๋ ฅ์ ๋๋ผ๋ ์ค ๋ ์ ์๊ณ ์ถ์ด์ ์ฑ
๊ตฌ๋งคํ๊ฒ ๋์์ต๋๋ค.
https://kent-boogaart.com/you-i-and-reactiveui/
์ ๋ฌธ์์ ๊ตฌ๋งค๋งํฌ์์ blurb ๋ก ์ด๋ํ์ฌ ์์ ๊ตฌ๋งคํ์ต๋๋ค.
์ฑ
์์ฒด๋ 73๋ฌ๋ฌ์ง๋ง, ๋ฐฐ์ก๋ฃ๊ฐ ๋ถ์ด์ 108๋ฌ๋ฌ์ ๊ตฌ๋งคํ์ต๋๋ค.
์ง๋ ์ฃผ ํ์์ผ(1์ 24์ผ)์ ๊ตฌ๋งคํด์ ์ค๋(1์ 30์ผ) ์๋ นํ์ต๋๋ค.
๊ตฌ๋งคํ๋ฉด ์ด๋ฉ์ผ๋ก ์๋์ ๊ฐ์ ์์์ฆ์ด ์ต๋๋ค
๊ทธ๋ฆฌ๊ณ ์ฃผ๋ฌธ๋ฒํธ๋ฅผ ํ๊ณ ๋ค์ด๊ฐ๋ฉด ์๋์ ๊ฐ์ด ๋ฐฐ์ก์ถ์ ์ด ๋ฉ๋๋ค.
UPS๋ ํด์ธ์ง๊ตฌํ ๋ ๊ฝค ์ ๋ช
ํ ์
์ฒด๋ผ๊ณ ํ๋ค์. DHL๊ธ์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์๋ ๊ธ์ ์ด์ด, ์ค์ ๊ตฌ๋งค๋ฅผ ํ๊ณ ์๋ นํ๊ฒ ๋๋ ๊ธฐ์ฉ๋๋ค.
๋ค๋งโฆ์์ฅ๋ณธ์ด๋ผ์ ๋ง์ด ํด๋ณด๋ฉด ์ฑ
์ด ๋ถ์
์ง๊ฑฐ๊ฐ์๋ฐโฆ์คํ๋ง์ฒ ์ ์ํด 2๊ถ ์ด ๊ป ํ๋ ์์ฌ์์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฑ
์ด ์๋ค์.
์์ด์ฑ
์ด๋ผ ์ด๋ฏธ ๋ถ๋ด์ด์ง๋ง ์์ด ์ ์ด์ ๋ถ๋ด์ด ์ข ์ ์ด์ง ๊ฒ๋ ์์ต๋๋ค. (์ฌ์ค ๋ง์ผ๋ฉด ๋ ์ข๊ฒ ์ง๋ง ์๋ณผ๊น๋ด)
์ด์ฌํ ๋ณด๊ณ ๋
ํ๊ฐ ํ๊ธฐ๋ ์์ฑํ๋ฉด ์ข๊ฒ ์ต๋๋ค.
8๊ฐ์ ์ข์์
dimohy
2
ReativeUI์ ๊ด์ฌ์ด ์์ด ์ด์ง ๊ณต๋ถํ๋ค๊ฐ Observer์ ๊ฐ๋
์ด ๋ซ์ค์ด์ ์ฌ์ฉํ ์์ค์ผ๋ก ์ดํดํ๋๋ฐ ์คํจํ๋๋ฐ ๊ด๋ จ ๊ฒฝํ์ ์ด๊ณณ์ ๋๋ ์ฃผ์ค ์ ์๋ค๋ฉด ๋์์ด ๋ง์ด ๋ ๋ฏ ํฉ๋๋ค.
2๊ฐ์ ์ข์์
Reactive Extensions ํ๋ก๊ทธ๋๋ฐ์
Observer ํจํด
+ LINQ
+ Scheduler
๋ก ํ๋ก๊ทธ๋๋ฐ ํ๋ ๋ฐฉ์์
๋๋ค.
์ฌ๊ธฐ์์
-
Observer : ์ผ๋ฐ์ ์ผ๋ก ์๋ ค์ง ์ต์ ๋ฒ ํจํด. ์ด๋ฅผ ์ํ ๊ฐ์ฒด์ ์ถ์ํ๋ฅผ IObservable๊ณผ ์น๊ตฌ๋ค๋ก ์ ๊ณต
(C#์์ ์ด๋ฏธ ์ต์ํ ์ต์ ๋ฒ ํจํด์ event ํค์๋)
(IObservable: ๊ตฌ๋
์ ์๋ฝํด์ฃผ๋ ๋
์)
(IObserver: ๊ตฌ๋
ํ๋ ๋
์)
(์ด ํ ๋ ๋ฒจ ์ถ์ํ๋ค ์ธ์ ๋ถ๊ฐ์ ์ธ ์น๊ตฌ๋ค ์กด์ฌ)
-
LINQ
: ์๊ณ ๊ณ์ .NET์ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
-
Scheduler
: ์ค๋ ๋ฉ
์ต์ ๋ฒ๋ ์ง์ง c#์ event ํค์๋ ๋ง๋ฅ, ์ต์ ๋ฒ ํจํด์ ๋๋ค๋ฅธ ๋ฌผ๋ฆฌ์ ๊ตฌํ์ฒด์
๋๋ค.
์ถ๊ฐ์ ์ผ๋ก RX๋ฅผ ์ข ๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋ ์์๋โฆ
LINQ๋ ์ปฌ๋ ์
์ ์ง์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
.
RX๋ ์ปฌ๋ ์
์ด ์๋๋ผ ์ด๋ฒคํธ๋ฅผ ์ง์ (ํํฐ๋ง)
ํฉ๋๋ค.
์ฌ๊ธฐ์ ์ค๋ ๋ฉ์ ์กฐ์ํ๋ Scheduler๋ฅผ ๋ถ์ฌ์ ํ๋ก๊ทธ๋๋ฐํฉ๋๋ค.
Application์ ๋ชจ๋ ์
๋ฐ์ดํธ๋ ํน์ ์ํ์ ์ต์ด ์ด๋ฒคํธ์ ์ํด ํ์์ ์ผ๋ก ๋ฐ์ํฉ๋๋ค. (๋๋นํจ๊ณผ?)
์ด ์ต์ด ์ด๋ฒคํธ์์ ๋ถํฐ ์ข
๋จ(endpoint)๊น์ง ์ด๋ฒคํธ๋ฅผ ์ง์ํ๊ฑฐ๋ ๋ณ์ ์์ผ์ ํผ๋ค ๋๋ฆ
๋๋ค.
9๊ฐ์ ์ข์์