Goals
Good
- ๋ญ๊ฐ ์ด๋ป๊ฒ๋ ๋๋ด๋ ค ํ๋ค..?
- ๋ฌด์ธ๊ฐ ๋๋ง์ ์๋ก์ด ๊ฒ์ ํ๋ ค๋ ์๋๋ฅผ ํ๋ ์ค์ด๋ค.
Bad
- ๋ฌธ์๋ฅผ ์กฐ๊ธ๋ ๊ผผ๊ผผํ ๋ณด์ง ์์๋ ๊ฒ: ์ง๋ฌธ์ผ๋ก ํด๊ฒฐํ์
- ์ค๊ฐ์ ๋ฃจํด์ด ๊นจ์ง ๊ฒ
- ๋ธ๋ก๊ทธ ๊ธ์ ๋ง์ด ์ฐ์ง ๋ชปํ ๊ฒ
Learns
- RawType์ ๋ฐ์ ViewModel์ ํํ๋ก ๋ณ๊ฒฝํด์ผ ํ๋ค๊ณ ํ์.
- RawType extension์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ๋งํ ๊ฒ๋ค์ ์ฒ๋ฆฌํด๋๋ค (var~)
- ViewModel์์๋ RawType์ ๋ฐ๋ ํํ์ Protocol์ ๋ง๋ค๊ณ , ๊ธฐ๋ณธ ๊ฐ๋ค์ extension์์ ์ฒ๋ฆฌํด๋๋ค.
- ์ค์ ๋ก ViewModel์์๋ ํด๋น RawType์ ๋ฐ์ View์ ์ฐ๊ด๋ ์ธ๋ถ๋ก์ง๋ง์ ์ฒ๋ฆฌํ๋ค.
- ๋ด ๋ฌธ์์ ์ค์ ์ฝ๋๋ฅผ ์ฃผ์ ์ฒ๋ฆฌ ํด๋์๋ค.
- ๋จผ์ ์ถ์ธกํ๊ธฐ
- ์ด๋ฐ ์ํฉ ๋ง์ฃผ์น๊ธฐ ์ฝ์ง ์์
- App ๊ธฐ๋ โ ์ฆ๊ฒจ์ฐพ๊ธฐ sync โ ๋ฐ์ดํฐ 5000๊ฐ๋ก ์ํฅ๋จ
- ์ผ๋จ ๋ฐ์ดํฐ๊ฐ ๋์ด๋๋ ์๊ฐ ๋ ๊ฑธ๋ฆด ๊ฑฐ๋ค.
- ๋คํธ์ํฌ ํธ์ถ
- ์ผ๋จ ๋ฐ์ดํฐ ํฌ๊ธฐ 2๋ฐฐ ๋์ด๊ฐ
- 2๋ฐฐ ์ด์ ์ฆ๊ฐํ ๊ฒ์
- 2.5์ด ๊ฑธ๋ ธ๋ค๊ฐ 5์ด ์ ๋๋ก ๊ฐ์ง ์์๊น?
- ๊ทผ๋ฐ 11์ด..? ๋ฉ์ธ์ ์๋ ์ ์์
- ํ์ฑ
- json ํ์ฑ
- ์ผ๋ง์ ๊ฑธ๋ฆด ๊ฒ์ด๋ผ ์์ํ๋ ๊ฐ์๊ฐ ๋ง์ผ๋ฉด?
- ์์ฆ์ ๋๋ฐ์ด์ค๊ฐ ์ข์ ํฌ๊ฒ ์๊ฑธ๋ฆด ์๋ ์์ผ๋ 10๋ฉ๊ฐ 10๋ฒ๋ณด๋ค 100๋ฉ๊ฐ ํ๋ฒ์ด ๋ ์ค๋๊ฑธ๋ ธ์์
- ์? ํ๋ฒ์ ๋ ๋ง์ CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐ๊ธฐ ๋๋ฌธ, ์ฆ ๋ฆฌ์์ค๋ฅผ ํ๋ฒ์ ๋ง์ด ์
- ์ด๊ฒ์ ๋ฐ๋ผ ์ต์ ํ๊ฐ ๋ฌ๋ผ์ง ์ ์์
- App ๋ด๋ถ ๋ก์ง
- DB ๋ฃ๊ธฐ
- 2000 โ 5000๊ฐ 2๋ฐฐ ์ด์ ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ์
- ๋ง์ปค ํด๋ฌ์คํฐ๋ง
- ์๋ 2๋ฐฐ์ ๋ ๊ฑธ๋ฆด ๊ฒ์
- ๊ทผ๋ฐ 2๋ฐฐ ์ด์์ผ๋ก ์ปค์ง ์๋ ์์, ์๊ฐ ๋ณต์ก๋์ ๋ฐ๋ผ.
- ํ๋กํ์ผ๋ง
- ๋จ์ํ CPU ํ์์ ๊ธฐ๋ฐ์ผ๋ก ํ๋จํ ์๋ ์์ ์ ์์
- ๊ทธ๋๋ ๊ทธ๋๋ง ์๊ฐ ์ธก์ ์ด ๊ฐ์ฅ ๋น ๋ฅด๋ค.
- Product > Profile
- ๋น๋ ์๋กํจ
- ๋น๋ ๊ณผ์ ์ profiling ํ์ํ ์ฝ๋ ์ฌ์
- Time Profiler
- ์ด๋์ ์๊ฐ ์ค๋๊ฑธ๋ฆฌ๋์ง?
- simulator๋กํ๋ฉด ์๊ฐ ์ข๋ ์ค๋๊ฑธ๋ฆผ
- ๋๋๊ทธ ํด์ ์ ํํ๋ฉด ๋ณด์
- ์๊ฐ ์ค๋๊ฑธ๋ฆฐ ๊ฒ๋ถํฐ ๋ณด๋ฉด ๋จ
- ์ฝ์ด๋ฐ์ดํฐ๋ ์กฐ๋ธ ๋๋ฆฌ๋ค.
- 5000๊ฐ๋ฅผ ๋ฃ์ผ๋ ค๋ฉด 5000๋ฒ ํธ์ถ๋๋ ํจ์๊ฐ ์์์
- ์ฌ๊ธฐ์ ์ค๋ณต์๋์ง ํ์ธํ๊ณ ์๋๋ฉด ๋ฃ๋ ํจ์
- ์ฌ๊ธฐ์ ์ค๋ณต ์ฒดํฌ ์ํ๋ฉด ๋นจ๋ผ์ง์ง ์์๊น?
- ์ ์ ๋ฐฉ๋ฒ
- ์ฒ์์ ํ ๋๋ ์ค๋ณต์ฒดํฌ ํ์์์์
- ์ผ์ผํ ์ค๋ณต ์ฒดํฌํ๋๊ฒ ์ค๋๊ฑธ๋ฆผ
- ์ฝ์ด๋ฐ์ดํฐ๋ key๊ฐ ์์
- ์ฆ, ์ฒ์๋ถํฐ ๋ค ๋ค์ง. Hash๊ฐ ์๋๋ผ๋ ๊ฒ.
- 5000๋ฒ ๋ค์ด์ค๋ฉด ๋ค ๋ค์ ธ์ ์ฐพ์
- core data๋ search๊ฐ ๋๋ฆผ.
- insert๋ ์๊ฐ๋ณด๋ค ๋น ๋ฆ
- ์ฝ๋ ์์
- ์ง์ฐ๋๊น 1์ด์ธ๊ฐ๋ง์ ๋จ
- ์ด์ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊ฒ์ธ๊ฐ?
- ํด๋ฌ์คํฐ๋ง์ด 6์ด๋ ๊ฑธ๋ฆผ
- ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ main thread.. ui blocking
- ์ด๋ป๊ฒ?
- ๋ฐฉ์
- addBookmark์์ ์๋์ง ํ์ธ ์ด๋ป๊ฒ ๋น ๋ฅด๊ฒ ํ ๊ฒ์ธ๊ฐ?
- ๋ง์ปค๋งค๋์ background thread?
- ํ๋กํ์ผ๋ง์ ๋ฐฐ์ด ๊ฒ
- ์ฒ์๋ถํฐ ์ด๋ ต๊ฒ ์ฝ๋ ์ง์ง ๋ง๋ผ
- ๊ตณ์ด backgroundํ ํ์์์ผ๋ฉด main์์ ํด๋ผ
- ๋์ค์ ์๊ฐํด๋ผ
- ์ถ์ธกํ๋ ๊ณผ์ , ๊ณํํ๋ ๊ณผ์ ๋ ํ์
- ํ๋กํ์ผ๋ง์ ์น๋ช
์ ์ธ ๋ถํฐ ๋ณธ๋ค, ์๊ฒํ๊ณ ํฐ ํจ๊ณผ
- CPU ์์น๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
- ํ๋กํ์ผ๋ง์ ๊ผญ! ํด๋ด์ผ ํ๋ค.
- main thread์ ๋ฌถ๊ณ ์๋ ๋
์์ด ์๋ค๋ฉด background๋ก ๋ณด๋ผ ๋ฐฉ๋ฒ์ ํด๋ด์ผ ํ๋ค.
- UI ์ ์ฉ ์ฝ๋ ๋ณด๋ค๊ฐ ๋ฐฐ์ด ๊ฒ
- shaver๋ณด๊ณ ๊น์ง ๋๋
- ๊ทธ๋ฅ extension์ ์ ์ํ๊ณ ํจ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก๋ง ์๊ฐํ๋๋ฐ,
- ๊ทธ๋ ๊ฒ ํ์ง ์๊ณ ์ฐ์ฐ์๋ฅผ ์ ์ํ์ฌ ์ ์ฉํ๋ ๊ฐ๋
์ผ๋ก ํ์ฅํจ
- ์ฆ, ๊ตฌ์กฐ์ฒด์๋ ๊ด๋ จ ๊ฐ๋ง ์ ์ํ๊ณ ์ฐ์ฐ์๋ฅผ ํตํด ์ ์ฉํ๋ ๋ฐฉ์์ ์ฌ์ฉ
- ๋๋ผ์.. ๊ฐ์ ์ฃผ์
ํ๋ ํํ(์ฐ์ฐ์)๋ฅผ ํตํด ์๊ฐํ๋ ๋ฐฉ์์ ๊ฐ์ ๊ฐ๋ฅ
Commitment
๋ฐฐ์ด ๋ด์ฉ
- ์ฑ๊ณผ๋ฅผ ๋ด๋ ค๋ ๊ฒ๋ณด๋ค ์ฑ์ฅ์ ์ด์ ์ ๋ง์ถฐ๋ผ.
- ๊ธ์ฐ๊ณ ๊ณต์ ์กฐ๊ธ๋ ์์ฃผํด๋ผ.
- ๊ธ์ ์ธ ๋, ์๋ฒฝํ๊ฒ ์์ฑํ๋ ค๋ ์๊ฐ์ ์กฐ๊ธ ๋ด๋ ค๋๋ผ.
- ๊ธ์ ๊ธธ์ด๋ฅผ ์กฐ๊ธ ์ค์ฌ๋ผ. ๊ฒฐ๊ตญ ๋งํ๊ณ ์ ํ๋ ๊ฒ์ ๊ฐ๋จํ๋ค.
- ๋งํ๊ณ ์ ํ๋ ๊ฒ์ ๊ณ ๋ฏผํ๋ ์๊ฐ์ ๋ ์์์ ๊ธ์ ์งง๊ฒ ์ฐ๋ ค๋ ์ฐ์ต์ ํด๋ผ.
- ํฌ๊ณ ๊ฐ๊ฐํ๋ณด๋ค, ์๊ณ ์์ฃผ๊ฐ ๋ ์ข๋ค.
- ๋ ๋ง์ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์๊ฒ ์๊ณ , ์ฝ๊ธฐ ์ฝ๊ฒ ์ ์ด๋ผ.
- ๊ตฌํ ํจํด์ ์ฝ์ด ์ฝ๋์ ํํ์ ๋๋ ์๊ฐ์ ์ค์ฌ๋ผ.
- ๊ตฌ์กฐ์ ๋ํ ๊ณ ๋ฏผ์ ์์ง ์ด๋ฅด๋ค.
- ๋์์ธ ํจํด์ ์ฝ์๋ค๊ณ ๋ฐ๋ก ์ ์ฉํ๋ ค๋ ์๋๋ ์คํ๋ ค ์ํํ ์ ์๋ค. ์์ ํ๋จ์ด ๋ชจ์ด๋ฉด ๊ทธ๋ฌํ ํจํด์ผ๋ก ๊ฐ ์ ์๋ค.
- ์์ ํ๋จ์ ์์ด ๋ ์ณ์ ๋ฐฉํฅ์ผ๋ก ํ๋ ค๋ ์ฐ์ต์ ๋ ๋ง์ด ํด๋ผ.
- ๊ฐ๊ฐํ ์๋ก์ด ์๋๋ฅผ ์๋ฐ์ ์ผ๋ก ํด๋ผ.
๋ฐฉํฅ
- ์ด๋ฒ๋ฌ์๋ ์ด์ฐ๋ณด๋ฉด ์ฒซ ์คํ์ด๋ผ ํ ์ ์๋ ๊ฒ์ ์ฒ๋ฆฌํ๋ค.
- ์ฝ๋์ ํ๋ฆ์ ๋ฐ๋ผ๊ฐ๋ ๊ฒ์ด ์ด๋ ค์ ๋ ๊ฒ ๊ฐ๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ ํ ํํ๋ค๋ก ๊ตฌํ๋์ด ์๋์ง ํ์
ํ๋ ๊ฒ์ด ์ค๋๊ฑธ๋ ธ๋ค.
- ํ์๋ถ์ ๋์์ ๋ฐ์ผ๋ฉด ๋ฐ์ ์๋ก ์ง๊ด์ ์ผ๋ก ์ดํดํ๋ ๋ฐ ๋์์ด ๋์๋ค.
- ๊ทธ๋ฌ๋ค๋ฉด ์กฐ๊ธ๋ ๋์ ์ฝ๋๋ฅผ ๋ฃ์ ์ ์์์ ํ
๋ฐ ํ๋ ์์ฌ์์ด ์๋ค.
- ์ง๊ด์ ์ผ๋ก ์ดํด๊ฐ ๊ฐ์ง ์๋๋ค๋ฉด ๋ฐ๋ก ๋์์ ์์ฒญํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค.
- ๋ด๊ฐ ํ ์ ์๋ ๋น์์ ์ต์ ์ ์ฝ๋๋ฅผ ๋ฃ๋๋ค๋ ๋ง์์ผ๋ก ํฌ๊ธฐํ์ง ๋ง๊ณ ์ํ์.
- ๋ฃจํด์ด ๊นจ์ง๋ฉด์ ๊น์ง ๋ฌด๋ฆฌํด์ ํ์ง๋ ๋ง์. ๋ ์ค์ํ ๊ฒ์ด ์๋ค.