Good
- ์, ์๊ฐ๋ณด๋ค ์๋ค.
- ๋์๋ผ๋ ๋ฐฉ๋ฒ์ ํ๋ ์ถ๊ฐ์ ์ผ๋ก ์์๋ค.
- ๋ธ๋ฐ์น ๊ธ์ ๊พธ์คํ ์ฐ๊ณ ์๋ค.
Bad
- ์ด๋์ ๋ชปํ๋ค.
- ํ๋ฆฌ๊ฐ ์ํ๋ค.
- ์ฝ๊ฐ ๋ฌด๊ธฐ๋ ฅ์ฆ์ด ๋์ง๋ ๋๋์ด๋ค. ์ฝ๋๋ฅผ ๋ง์ด ์์ง์ ๊ทธ๋ฐ ๋ฏ ํ๋ค.
- ์ต๊ทผ์ ์ ์ ์ ๋ชป์ค๋๊ฒ ์๋ง์ ๋ฐ๋ ค์๋ค. ์๋ฒฝ์ ์ผ์ด๋๋ ๊ฑธ ๋ชปํ๋ค.
Learns
- ReActive ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ค.
- ์ค์ ๋ฐ๊นฅ์์ ์ฌ์ฉํ Publisher๋ฅผ internal์ผ๋ก ๋ง๋ ๋ค
- ์ด๊ณผ์ ์์ protocol์ ์ฑํํ์ฌ ๋ง๋ค ์๋ ์๋ค.
- ์ค์ ๋ด๋ถ์์๋ private์ผ๋ก publisher๋ฅผ ํ๋ ๋ง๋ค์ด์ ๊ทธ๋
์์ผ๋ก ์ง์ง๊ณ ๋ณถ๋๋ค.
- ์ด ๊ณผ์ ์์ ์ธ๋ถ publisher๋ฅผ ๋ฐ์ compactmap, flatmap์ผ๋ก ๋ณํํ์ฌ ๋ฐ๊นฅ์์ ์ฌ์ฉํ publisher๋ก ๋ง๋ค์ด๋ฒ๋ฆด ์๋ ์๋ค.
- ์ด ๋ ๋ณดํต computed property๋ฅผ ํตํด ์ ์ฉํ๋ค.
- ๋ฐ๊นฅ์์ ์ฌ์ฉํ ์น๊ตฌ์ type์ AnyPublisher๋ก ๊ฐ์ถ๋ค.
- method ์ถ์ถ์ญ์ refactoring์ด๋ค.
- View์์ ์์
์ ์ฒ๋ฆฌํ๊ณ ๋ค์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํด์ผ ํ๋ค๋ฉด completion handler๋ฅผ ํ์ฉํ์.
- ๋ญ๊ฐ ๋๋ฌด ์ปค์ ๋์ค์ ์์ ํด์ผ ํ๋๋ฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ ํ๋ ๊ฒฝ์ฐ protocol์ ๋ง๋ค์ด๋๊ณ extension์ ์ ์ฉํ์ฌ ๊ตฌํํด๋์ผ๋ฉด ์์ ๊ตฌ๋ถ๋์ด์ ๋์ค์ ๋ถ๋ฆฌํ๊ธฐ ํธํจ, ๊ฐ๋
์ฑ๋ ์ข์์ง๋ค.
- ๊ธฐ์ ์ ์ธ ์ด์ผ๊ธฐ๋ฅผ ๊ณต์ ํ ๋๋ ๊ทธ์ฌ๋ ์
์ฅ์์ ์๊ฐํ๊ณ ๋งํ๋ค.
- ์ ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋ํด ์ฝ๊ฒ ๋งํ๊ณ , ํต์ฌ์ ์ธ ๋ฌธ์ ์ ๋ํด์ ์ดํดํ ์ ์๋๋ก ๋งํ๋ค.
- ์ธ๋ถ ์ฌํญ์ ๊ฒฝ์ฐ ์ง๋ฌธ์ ๋ฐ๊ฑฐ๋, ํ๋ฐ๋ถ์ ๋งํ๊ธฐ
- ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ค์ํ ์ฉ์ด์ ๋ํด ์ ํํ๊ฒ ์ ์ํ๊ณ ์ด์ผ๊ธฐํด์ผ ๋
ผ์๊ฐ ๊ฐ๋ฅํด์ง๋ค.
- ์ด์ ์์ ์ ํ ๋, ๋น์ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉํฅ์ ๋์ด์ ์กฐ๊ธ๋ ๊น์ด ๋ฏ์ด๋ณด๋ ์ต๊ด์ด ํ์ํ ๋ฏํ๋ค.
- ํด๋น ๋ถ๋ถ์ ๋ณผ ๋, ๋ค๋ฅธ ์ฌ๋์ด ์ด ๋ถ๋ถ์ ๋ค์ ๋ณผ ์ ์์ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ค์ ๋ณธ๋ค๊ณ ํด๋ ๋๋งํผ์ ๋ฆฌ์์ค๋ฅผ ๋ค์ฌ ๋ณด๊ธฐ ๋๋ฌธ์, ์ฅ๊ธฐ์ ๊ด์ ์์ ๋ณด์์ ๋ ํด๋น ์ด์๋ฅผ ์ดํดํ ์์ ์ ์กฐ๊ธ์ด๋ผ๋ ์ฝ๋๋ฅผ ๋ซ๊ฒ ๋ง๋ค๊ณ ๋ ๋๋ ๊ฒ์ด ์ข์ ๋๋ฃ๊ฐ ๋๋ ๊ธธ์ด๋ค.
- ๋ด ํ๋จ์ ์กฐ๊ธ๋ ํ์ ์ ๊ฐ๊ณ , ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ์ง๋ฌธํ๋ ๊ฒ์ ๋๋ ค์ํ์ง ๋ง์.
Commitment
- ์ด๋์ ์ง์ง ํด์ผํ๋ค..
- ๋ค์ ์๋ฒฝ์ ์ผ์ด๋์ ์ด๋ํ๊ณ ์ถ๊ทผํ๋ ์ผ์์ ๋์ฐพ๋๋ค.
- ๊ท์น์ ์ธ ์์ต๊ด์ ๊ฐ์ง๋ค.