2์ด๊ฐ ์คํด์ ์ด๋ ๊ฒ ๋ง๋ค์๋ค ์น์
1. ์ฒซ๋ฒ์งธ ์คํด์ ๊ฑธ๋ฆฌ๋ฉฐ ์คํด์ค์ด true๊ฐ ๋๋ค
2. 1์ด๋ค์ ๋๋ฒ์งธ ์คํด์ด ๊ฑธ๋ฆฐ๋ค
3. ์ฒซ๋ฒ์งธ ์คํด์ด 1์ด๋ค์ ํ๋ฆฌ๋ฉฐ ์คํด์ค์ false ๋ก ๋ง๋ค์ด ๋ฒ๋ฆผ
4. ๊ฒฐ๊ณผ 2๋ฒ์งธ ๊ฑธ์ด๋์ ์คํด์ด 2์ด๋ฅผ ์ ์ง ๋ชปํ๊ณ 1์ด๋ง์ ํ๋ฆฐ๋ค(๋ฒ๊ทธ)
์ด๋ ๊ฒ ๋ง๋ค๋ฉด ์ด์
1. ์ฒซ๋ฒ์จฐ ์คํด: ์นด์ดํธ 1
2. 1์ด๋ค์ ๋๋ฒ์จฐ ์คํด์ด ๊ฑธ๋ฆฌ๋ฉด ์นด์ดํธ๊ฐ 2๋ก ์ฌ๋ผ๊ฐ๊ณ
3. 1์ด๋ค์ ์ฒซ๋ฒ์งธ ์คํด์ด ํ๋ ค๋ ์์ง ์นด์ดํธ๊ฐ 1 ์ด๊ธฐ ๋๋ฌธ์ ์คํด์ค์ true ์ด๋ค (๋ฒ๊ทธํด๊ฒฐ!)
๊ทผ๋ฐ ์ฌ๊ธฐ์ ์คํด์ ๋์คํ ํ๋ค๊ณ ์น์ย
๋์คํ ๋ก ์คํด์ ํด์ ํ๊ฑฐ ๊น์ง ์ข์๋ฐย
1. ๋์คํ ๋ก ์คํด ์นด์ดํธ๊ฐ 0์ด๋๋ค
2. ๋์คํ ์ด์ ์ ๊ฑธ๋ ค์๋ ์คํด๋ค์ด ๋๋ ์ด ์ดํ ์นด์ดํธ๋ฅผ ๋ง์ด๋์ค๋ก ๋ง๋ค์ด ๋ฒ๋ฆฐ๋ค
3. ๊ทธ๋ฌ๋ฉด ์ดํ ์คํด์ด ๊ฑธ๋ ค๋ 0๋ณด๋ค ์๊ธฐ ๋๋ฌธ์ ์คํด์ด ์๊ฑธ๋ฆฌ๋ ๋ฒ๊ทธ๊ฐ ์๊ธด๋ค
๊ทธ๋ผ ์ด๋ ๊ฒ ๋ง์ด๋์ค๋ก ๋ด๋ ค๊ฐ๋๊ฑธ ๋ง์์ผ๋ ์์ฌ! ์ด๋ผ๊ณ ์ฐฉ๊ฐํ์ง๋ง
์ฌ๊ธฐ์ ๋๋ค๋ฅธ ๋ฒ๊ทธ๊ฐ ์๊ฒจ๋๋ค
1. ์คํด์ ๋์คํ ๋ก ํด์ ํ๋๋ฐ
2. ๊ทธ๋ค์ ๋๊ตฐ๊ฐ ์คํด์ ๊ฑธ์๊ณ
3. ํด์ ์ ์ ๋๋ ์ด ๋์ด์๋ ์คํด์ด ์๋ก ๊ฑธ๋ฆฐ ์คํด์ ํ์ด๋ฒ๋ฆผ (๋ ๋ฒ๊ทธ!!!)
๋ ธ- ๋ต
์ฌ๊ธฐ์ ์ฐ๋ฆฌ์ ๊ตฌ์ํฌ์ R3์ย Disposable.Create ์ย CompositeDisposable ์ด ๋ฑ์ฅํ๋ค
(R3๊ฐ ๋ญ์ง๋ ๊ฐ๋ ๊ธ์ ์ฌ๋ผ๊ฐ ์์ผ๋ ์ฐธ๊ณ )
1. Disposable.Create() ๋ก ์์ฑ๋ ํด๋์ค๋ Diospose() ๊ฐ ํธ์ถ๋๋ฉด onDisposed๋ฅผ ์คํํ๋ค
2. using var ๋ก ์ ์ธ๋ ํด๋์ค๋ ๊ทธ ๋ฉ์๋๊ฐ ๋๋ ๋ ์๋์ผ๋ก Diospose๊ฐ ํธ์ถ๋๋ค (์์ต์ using ๋ฌธ๋ฒ)
3. CompositeDisposable.Clear(); ๋ ์ง๊ธ๊น์ง ๋ชจ์๋์ ๋ชจ๋ ํด๋์ค๋ค์ Diospose() ํ๋ค (๊ฒฐ๊ณผ ์นด์ดํธ๊ฐ 0์ด๋๋ฉฐ ์คํด ํด์ )
4. Disposable.Create() ๋ก ์์ฑ๋ ํด๋์ค๋ ํ๋ฒ onDisposed๊ฐ ๋ฐ๋๋๋ฉด
์ดํ์ ๋ค์ Dispose ๋๋ onDisposed๊ฐ ๋ฐ๋๋์ง ์๋๋ค (๋ฉฑ๋ฑ)
๋๋ฌธ์ CompositeDisposable.Clear()์์ ํ๋ฒ ํ๋ ค๋ฒ๋ฆฐ ์คํด์ ์ดํ์ ๋๋ ์ด๊ฐ ์ข ๋ฃ ๋๋ฉด์ Diospose()๊ฐ ๋ค์ ํธ์ถ๋๋ ์นด์ดํธ๋ฅผ ๋ด๋ฆฌ์ง ์๋๋คย
๊ฒฐ๊ณผ ์ค์ฒฉ์คํด, ์คํด ํด์ , ์คํด ํด์ ์ดํ ์คํด ๋ค์ ๊ฑธ๊ธฐ ๋ฑ ์จ๊ฐ ๋์ฅํ์๋ ๋ฒ๊ทธ๊ฐ ๋์ง ์๊ฒ๋จ
๋ณด๋์ค1: ์นด์ดํธ๋ฅผย ReactiveProperty<int> ๋ก ๋ง๋ค๋ฉด ์ดํํธ๋ ์ ์์ด๋ ์๋ ๋ฐ์ํจ
๋ณด๋์ค2: ํ์ฌ ์นด์ดํธ๊ฐ ๋ช ์ธ์ง๋ฅผ ํ์ฉํ๋ฉด ๋ ์ฒ๋ผ ๋ง์ด ๊ฑธ๋ฆด์๋ก ์ค์ฒฉํจ๊ณผ๊ฐ ์๋ ๋๋ฒํ ๋ก ์ธ ์๋ ์์
๋ณดํต StatusEffect๊ฐ์ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ์ปจํ ์ด๋์ ๋ค๋ฃจ๊ฒ ๋ ๊ฑฐ๋๊น ์ฌ์ค ๋์ ์์์ชฝ ์ฝ๋ ์์ฒด๊ฐ ์ง๋์ ์ฝ๋๋ผ๊ณ ๋ณด๊ธด ํด์ผ ํ ๋ฏ. ๊ฐ์ฒด๋ก ๋ค๋ฃธ์ผ๋ก์จ lifecycle์ ์ ์ดํ ์ ์๋ ์ด์ ์ R3๋ ๋ณดํธ์ ์ผ๋ก ๊ฐ์ง๋ ํธํ ๋ถ๋ถ์ ๋ง์ ๊ฒ ๊ฐ๋ค
์ค ๊ทธ ๋ฐฉ์์ ๋ญ์ง ์ฌ๋ ค์ฃผ์ ๊ถ๊ธํจ R3๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ก์ด๊ฑธ ํ ์ ์๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ผ๊ธฐ ๋ณด๋จ ๋ณต์กํ๊ฑธ ํธํ๊ณ ๊ฐ๋จํ๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ์๊ฐํจ ์๋ช ์ ๊ฐ์ง ๊ฐ์ฒด๋ ๋๋ค๋ก ๋๋ฑ ๋ง๋ค์ด์ฃผ๊ณ ํธํจ ใ ใ