7์์ ์๋กญ๊ฒ ํ๋ถ๊ธฐ๋ฅผ ์์ํ๋ ๋ฌ๋ก, ์ฑํฐ ๋ด์์๋ ํ๊ณ ์ถ์๋ MMKV ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ ๋ก๋ฉ ๊ฒฝํ ๊ฐ์ ๋๊ฐ์ง ์ผ๊ฐ์ ๋ด๋นํด ์งํํ๊ณ , ์ค์ฟผ๋์์๋ ์๋กญ๊ฒ ์์ฒญ์ ๊ธฐ๋ฐ์ด ์๋ ์๋ก์ด ๋น์ฆ๋์ค ๋ชจ๋ธ ์คํ์ ๋ง๋ ํผ๋ ํ๋ฉด์ ๊ตฌํํ๋ ๋ฑ ์๋ก์ด ์์ ๋ค์ ์ฌ๋ด์์ ๋ด๋นํด์ ์งํํ๊ฒ ๋์๋ค.
์ธ๋ถ ํ๋์ผ๋ก๋ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฒ์์ผ๋ก contribution์ ํด๋ณด๊ณ , ํ ์ค FE Accelerator์๋ ํฉ๊ฒฉํด ๋ฉํ ๋ง ๊ณผ์ ์ ์์ํ๋ค.
๋ค์ํ ์๋ก์ด ํ๋์ ์งํํ 7์์ ์ ๋ฆฌํ๊ณ , 8์์ ์ก์ ์์ดํ ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค.
7์์ ์ก์ ์์ดํ
6์ ํ๊ณ ๋ฅผ ์์ฑํ๋ฉด์ 7์์ ์ก์ ์์ดํ ์ผ๋ก ์๋์ ๊ฐ์ด ์ ์ ํ์๋ค.
- Native Stack ์ ์ฉ ๊ธ ์์ฑํ๊ธฐ
- Async Storage ๋์ฒดํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒํ ๋ฐ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ
- ์ ํ ๋ด ๋ก๋ฉ ์ํ ๊ฐ์ ํ๊ธฐ
- ์ปดํฌ๋ํธ ์ค๊ณ ์ถ๊ฐ ์์ ์งํํ๊ธฐ
- ํ์ด์ง๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๋ฌธ์ ๊ณ ๋ฏผํ๊ณ ๋ ผ์ํ๊ธฐ
Native Stack ์ ์ฉ๊ธฐ ๊ธ ์์ฑํ๊ธฐ
2๋ถ๊ธฐ OKR๋ก ํ๋ฉด ์ ํ๊ฐ ์ฑ๋ฅ ๊ฐ์ ์์ ์ ๋ด๋นํ๋ฉด์ ์ ์ฉํ Native Stack Navigation ์ ์ฉ๊ณผ์ ์ ๋ํ ๊ธ์ ์์ฑํ๋ค. Native Stack Navigation์ ์ ์ฉํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ CPU ์ฌ์ฉ๋์ ๊ฐ์์์ผ ํ๋ฉด ์ ํ๊ฐ ๋ฒ๋ฒ ์์ ๊ฐ์ ๊ณผ์ ๊ณผ, ์์ ๊ฐ ์ด๋ ค์ ๋ ์ , ํธ๋ฌ๋ธ ์ํ ์ ์ ๋ฆฌํ ์ ์์๊ณ ์ดํ ์๋ํ๋ฉด ์ข์ ์์ ๋ค์ ๋ํด์๋ ์ ๋ฆฌํ ์ ์์๋ค.
ํ์์
์ผ๋ก ์๊ฐํ๋ ์ผ๊ฐ ์ค ํ๋์๋ ๊ฒ์ ํ๋ฉด ์ง์
์ ๋ฒ๋ฒ
์ด๋ ์ด์
์ ๋ํ ์์
์ ์ถ๊ฐ์ ์ผ๋ก ์งํํ๋ค.
ํด๋น ์ด์๋ react native screens์ ๋ฑ๋ก๋์ด ์๋ ์ด์๋ก ์ ํ๋๋ ํ๋ฉด์ TextInput์ด AutoFocus๊ฐ true๋ก ๋์ด์์ ๊ฒฝ์ฐ AutoFocus๋ก ์ธํ ํค๋ณด๋ ๋ ธ์ถ ์ด๋ฒคํธ์ ํ๋ฉด ์ ํ ์ด๋ฒคํธ๊ฐ ํจ๊ป ์ฒ๋ฆฌ๋๋ฉด์ ๋ฒ๋ฒ ์์ด ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ณด์๋ค.
[Repo์ ๋ฑ๋ก๋ ์ด์์ ์ฌํ ์์]
UI ์ค๋ ๋์ ๋ถํ๋ฅผ ์ค์ด๊ธฐ ์ํด์ AutoFocus๋ฅผ true๋ก ์ค์ ํ๋ ๊ฒ ๋์ , ํ๋ฉด์ ํ ์๋ฃ ์ดํ์ manualํ๊ฒ TextInput ref์ focus๋ฅผ ๋์์ํค๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ ์ ์์๋ค.
ํ์์ ์ ํตํด ๋ด๋นํ๋ ์ผ๊ฐ์ ๋ํ ์์ฑ๋๋ฅผ ๋์ผ ์ ์์ด ๋ฟ๋ฏํ๋ ์๊ฐ์ด์๋ค.
Async Storage ๋์ฒดํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ ํ๊ธฐ
Async Storage๋ฅผ ์ด์ฉํ๋ฉด์ ํฐ ๋ฌธ์ ๋ ์์ง๋ง, ์กฐ๊ธ ๋ ๋น ๋ฅด๋ฉด์๋ ์ฌ์ฉ์ฑ์ด ์ข์ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ๊ณ ์ ์ฉํ๋ ์์ ์ ์์ํ๊ฒ ๋์๋ค.
ํ๋ณด๊ตฐ์ผ๋ก๋ WatermelonDB, MMKV, OP-SQLite๋ก ์ด 3๊ฐ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ ํ๊ฒ ๋์๋๋ฐ MMKV๋ง์ ์ฌ์ค ์ฒซ ๋ชฉํ๋ก ์์ ์ ๊ธฐํํ์์ง๋ง, ์ฑํฐ์ ๋ถ๋ค์ ์ถ์ฒ์ผ๋ก ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๋ ํจ๊ป ๋น๊ตํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ์๋ ค์ฃผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ํจ๊ป ๋น๊ตํด๋ณด๊ธฐ๋ก ํ๋ค.
ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋น๊ตํ๊ธฐ ์ํด MMKV ๋ ํฌ์ ์๊ฐ๋์ด์๋ Bench Mark ๋ ํฌ๋ฅผ ์ฐธ๊ณ ํ๊ณ , ์๋กญ๊ฒ ๋ ํฌ๋ฅผ ๋ง๋ค์ด ๋น๊ต๋ฅผ ์งํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฆฌํด๋ณด์๋ค.
์๋๋ ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณ๋ก ์ฑ๋ฅ์ ๋น๊ตํ ๊ฒฐ๊ณผ๋ก key: 'k', value: 'hello'
์ ์ฅ์ 1000๋ฒ ๋ฐ๋ณตํ ํ์ ์๊ฐ์ ์ธก์ ํ ๊ฒฐ๊ณผ๋ก, MMKV๊ฐ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๋์์์ ํ์ธํ ์ ์์๋ค.
์๋๋ ์ค์ํ์ง๋ง ๊ฐ๋ฐ์ ๊ฒฝํ, ์ปค๋ฎค๋ํฐ ์ง์, ์ค์ ์ ํ์ ์ ์ฉ์ด ๊ฐ๋ฅํ์ง ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๋น๊ต๊ฐ ํ์ํ๊ณ ๊ฒฐ๋ก ์ ์ผ๋ก MMKV
๋ฅผ ์ ์ ํ๊ฒ ๋์๋ค.
[๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ณ npm ํธ๋ ๋ ๋น๊ต]
์ ๋ฆฌํ ๋ด์ฉ๋ค์ ํตํด ์ฑํฐ์๋ถ๋ค๊ป ๋ฐํ๋ฅผ ์งํํ๊ณ , MMKV๋ฅผ ์ค์ ์ ํ์ ์ ์ฉํ์ ๋ ๊ธฐ๋๋๋ ์ฑ๋ฅ์ ์ธ ์ด์ ๋ ๊ณต์ ํ๋ค.
๊ณต์ ํ ๋ด์ฉ์ค์ ์๊ฐ ์ธก์ ์ API ์๋ต์๊ฐ๋ ํจ๊ป ํฌํจ๋์ด์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ , ์กฐ๊ธ ๋ ์ ํํ ์ธก์ ์ ์ํด ์ถ๊ฐ์ ์ธ ์์ ์ด ํ์ํ๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ์๊ณ , ์ด์ ๋ํ ์ถ๊ฐ์ ์ธ ์์ ์ ์งํํ ํ์ ์ ํํ๊ฒ ์ผ๋ง๋ ์ฑ๋ฅ์ ์ธ ์ด์ ์ ๊ธฐ๋ํ ์ ์์์ง ๋ค์ ์ธก์ ํ๋ ์์ ์ ์งํํ๊ธฐ๋ ํ๋ค.
MMKV๊ฐ ์ ๋น ๋ฅธ์ง, ๋ ์ ํ์ ์ ์ฉํ๋ฉด์ ๊ณ ๋ คํ๋ ์ ๋ฑ์ ๋ํ ๋ด์ฉ์ 8์์ ์ ํ์ ๋ฐ์ํ ํ์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค.
์ ํ ๋ด ๋ก๋ฉ ์ํ ๊ฐ์ ํ๊ธฐ
์ ํ ๋ด ๋น๋๊ธฐ ์ํ๋ฅผ ๊ด๋ฆฌ๋ฅผ ๊ณ ๋ํํ๊ธฐ ์ํด ๋ก๋ฉ ์ํ ๊ฐ์ ์์ ์ ๋ฐ์ ํ๊ณ ์งํนํ๊ฒ ๋์๋ค. ์๋ฌ๋ฐ์ด๋๋ฆฌ ์์ ์ ํ๋ฉด์, ์ ์ฒด ์ ํ์ ํ๋ฉด๋ค์ ๋ณด๊ฒ ๋๋ฉด์ ๋ก๋ฉํ๋ฉด์ด ํ์ํ๋ฐ ์๋ ๊ฒฝ์ฐ, ๋ก๋ฉํ๋ฉด์ด ์๋๋ฐ ๋ถํ์ํ๊ฒ ๊น๋นก์ด๋ ๊ฒฝ์ฐ๋ค์ ๋ณด๊ฒ ๋์๋ค.
๋ก๋ฉํ๋ฉด์ด ํ์ํ๋ฐ ์๋ ๊ฒฝ์ฐ๋ ์น๋ทฐ ์ง์ ์ ํ๋ฉด, ๋ชฉ๋ก ํ๋ฉด์์ ํญ์ ๋๋ ์ ๋ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋๋์ ๋ก๋ฉ ์ํ๊ฐ ์์ด ๋ฐ์์ด ์๋ ๊ฒ ์ฒ๋ผ ๋ณด์ด๋ ๋ฑ ์ฌ์ฉ์ฑ ๊ฐ์ ์ ์ํ ๋ก๋ฉ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋ถ๋ถ๋ค์ด ์์ด๋ณด์๋ค. ํด๋น ์ผ์ด์ค๋ ๊ฐ๊ฐ์ ๋ง๋ ๋ก๋ฉ ์ํ๋ฅผ ์ถ๊ฐํด์ ํด๊ฒฐํด๋๊ฐ๊ณ ์๋ค.
๋ก๋ฉํ๋ฉด์ด ์๋๋ฐ ๊น๋นก์ธ๋ค๊ณ ๋๊ปด์ง๋ ๊ฒฝ์ฐ๋ ํ๋ฉด ์กฐํ๋ฅผ ์ํ API ์๋ต์๋๊ฐ ๋๋ฌด ๋น ๋ฅผ ๋ ์คํ๋ ค ๋ก๋ฉ ์ํ ํ๋ฉด์ด ๋์๋ค ์ฌ๋ผ์ง๋ ์๋๊ฐ ๋นจ๋ผ์ ๊น๋นก์ด๋ ๊ฒ์ฒ๋ผ ๋๋ผ๊ฒ๋๋ค. ์ด์ ๋ํ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์๋๋ฐ ํ๋๋ ๋ก๋ฉ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ์ต์์๊ฐ ์ค์ ๋ฐฉ๋ฒ๊ณผ ๋ค๋ฅธ ํ๋๋ ์นด์นด์ค ํ์ด์ง์ ๋ฌด์กฐ๊ฑด ์ค์ผ๋ ํค ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋๊ฒ ์ฌ์ฉ์ ๊ฒฝํ์ ๋์์ด ๋ ๊น์? ๊ธ์์ ์๊ฐ๋ ์ผ์ ์๊ฐ ๋ด ์๋ต์ด ์ค๋ฉด ๋ก๋ฉํ๋ฉด์ ๋ณด์ฌ์ฃผ์ง ์๋ ๋ฐฉ๋ฒ์ด ์์๋ค.
๋๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํด์๋ ์ฅ๋จ์ ์ด ์กด์ฌํ๋ค.
์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ฅ์ ์ ์ ์ ๊ฐ ์๋ฌด๋ฆฌ ๋นจ๋ผ๋ ์ต์์๊ฐ ์ค์ ์ด ์์ผ๋๊น ํต์ผํ๋ ๋ก๋ฉ ๊ฒฝํ์ ํ ์์์ง๋ง, ๋จ์ ์ผ๋ก ๋น ๋ฅธ ์๋ต์ ๋ฐ์์์๋ ๋ถ๊ตฌํ๊ณ ๋ก๋ฉํ๋ฉด์ด ๋ ์ค๋ ๋ณด์ฌ์ง๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง ์ ์๋ค.
๋๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ฅ์ ์ ๋น ๋ฅธ ์๋ต์ ๋ฐ์์ ๋ ๋ก๋ฉํ๋ฉด์ ๋ณด์ฌ์ฃผ์ง ์์ ์ฌ์ฉ์ ๊ฒฝํ์ด ๋ ์ข์์ง ์ ์์ง๋ง, ๋จ์ ์ผ๋ก ํด๋น ์๊ฐ ์ด์์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฉด์ ์ผ๋ง ์ฐจ์ด๊ฐ ๋์ง ์๋ ๊ฒฝ์ฐ ๊น๋นก์ด๋ ํจ๊ณผ๋ฅผ ๋๋ค์ ๋๋ ์ ๋ฐ์ ์๋ค๋ ์ ์ด๋ค. (๊ธฐ์ค 200ms ์ด๋ด๋ ๋ณด์ฌ์ฃผ์ง ์๋๋ค๋ฉด 300ms ์๋ต์ด ์์ ๋ ๋ก๋ฉ์ 100ms๋์ ๋ณด์ด๋ฉด์ ๊น๋นก์์ ์ฌ์ ํ ๋๋ ์ ์๋ค.)
ํด๋น ์ฅ๋จ์ ์ ๋น๊ตํ๊ณ ์ผ๊ฐ ๋ชฉํ๋ฅผ ๊ณ ๋ฏผํ์ ๋ ์ต์ ์๊ฐ ์ค์ ์ ์๊ฐํ๊ณ ์์์ง๋ง ์นด์นด์ค ํ์ด์ง์ ๊ธ๊ณผ, ์ฑํฐ์ ๋ถ๋ค๊ป ๋ฐฉํฅ์ ๊ณต์ ๋๋ฆฌ๋ฉด์ ์ด๋ฏธ ๋น ๋ฅธ๋ฐ ์ผ๋ถ๋ก ๋๋ฆฌ๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด ๋ ์ ํ์ ์์ข์ ๊ฒ ๊ฐ๋ค
๋ ํผ๋๋ฐฑ์ ๋ฃ๊ณ , ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ ํํ๋ค.
์ด์ ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ ํ๋ฉด์ ๋ก๋ฉํ๋ฉด์ ๋ณด์ฌ์ฃผ์ง ์๋ ์๊ฐ์ ์ด๋ป๊ฒ ์ค์ ํ ์ง, ์ด๋ค ํ๋ฉด์ ์ ์ฉํ ์ง ๋ฑ ๋ค์ํ ๊ณ ๋ฏผ์ ํ๋ฉด์ ์ ์ฉ์์
์ ์งํํ๊ณ ์๋ค.
์ถ๊ฐ์ ์ผ๋ก ๋ก๋ฉ ๊ฒฝํ ๊ฐ์ ์ ์ํด React Query๋ฅผ ์ด์ฉํด ๋น๋๊ธฐ ์ํ๋ฅผ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ์ฉํด๊ฐ๊ณ ์๋ค. ๊ทธ์ค ๊ฐ์ฅ ๋ง์ด ๊ณต๋ถํ๊ณ ์ ์ฉํด๋ณด๋ ค ํ๋ ๋ฐฉ์์ ๋ก๋ฉ ์ํ๋ฅผ ์ ์ธ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ suspense์ ๋์ ์ธ๋ฐ, suspense๊ฐ ์ ์ข์์ง, ์ด๋ค ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ธ์ง ๋ฑ์ 8์ ์ค์ ๋ฐํํด๋ณด๊ณ ์ฑํฐ ๋ด ๋น๋๊ธฐ ์ฝ๋๋ฅผ ๊ฐ์ ํ๋๋ฐ ๊ธฐ์ฌํด๋ณด๊ณ ์ ํ๋ค.
ํ์ง ๋ชปํ ์ก์ ์์ดํ
ํ์ง ๋ชปํ๋ ์ก์ ์์ดํ ๋ค๋ก๋ ์ปดํฌ๋ํธ ์ค๊ณ ์์ ๊ณต์ ์ ํ์ด์ง๊ฐ ๋ฐ์ดํฐ ๊ณต์ ํด๊ฒฐํด๋ณด๊ธฐ๊ฐ ์์๋ค.
ํ์ด์ง๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๋ฌธ์ ๋ ์ฑํฐ ๋๋ฃ ๋ถ๊ป์ Zustand๋ฅผ ๋์ ์์ ์ ํด์ฃผ์๋ฉด์ ๋๋ฉ์ธ ๊ฐ ๊ณต์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ํตํด ํด๊ฒฐํด์ฃผ์ ์, ๋ค์ ๋ฌ์๋ ๋จ์์๋ ์ปดํฌ๋ํธ ์ค๊ณ๋ถ๋ถ์ ๋ ๊ณ ๋ฏผํ๊ณ ํด๊ฒฐํด๋ณด๋ ค ํ๋ค.
์๋กญ๊ฒ ์งํํ๋ ํ๋๋ค
์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ contributionํ๊ธฐ
7์์๋ ํน๋ณํ ๊ฒฝํ๋ค์ ๋ง์ด ํ ์ ์์๋๋ฐ, ๋จผ์ ํ ์ค์ es-toolkit ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ contribution์ ํ๋ค. ์ฑํฐ์๋ถ๊ป์ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์๊ฐํด์ฃผ์๋ฉด์ ์คํ์์ค์ ๊ธฐ์ฌํ๋ ๊ฒฝํ์ ํด๋ณด๋ฉด ์ข๊ฒ ๋ค๋ฉฐ ์ฌ๋์ ๊ณต์ ํด์ฃผ์ จ๋ค.
ํ์ ์คํ์์ค์ ๊ธฐ์ฌ๋ฅผ ํ๊ณ ์ถ์ง๋ง, ์ด๋์๋ถํฐ ์ด๋ป๊ฒ ํด์ผํ๋์ง ์์ง ๋ชปํด, ๋ ๋ถ์๋ง ํ๊ณ ์๋ค๊ฐ ์ข์ ๊ธฐํ๋ผ ์๊ฐํด ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋๋ค์ ๋ณด๊ฒ๋์๋ค.
์ ์ค๋ช ๋ ๋ฌธ์๋ค๊ณผ ์ ํ์์ ์์ฃผ ์ฌ์ฉํ๋ lodash๋ฅผ ์ต์ ECMAScript์ ๋ง๊ฒ, ์ฑ๋ฅ๊ณผ ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ํฅ์์ํจ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค ๋ณด๋ ์๋์ ์ผ๋ก ์ด๋ค ํจํค์ง๋ณด๋ค ๋์๊ฒ ํ๋ค์ด ๋ฎ์ ๋ณด์๋ค.
์์ ์ด ํ์ํ ์ด์๋ค๊ณผ ์ด๋ฏธ ์๋ฃ๋ PR, ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์ํ ์์ ์ด ์ด๋ค ๊ฒ์ธ์ง ํ์ ํ๊ณ , ์ด๋ฏธ ๋ณํฉ๋ PR๋ค์ ๋ถ์ํด๋ณด๋ฉด์ ์ด๋ค ์ ๋ค์ ๊ณ ๋ฏผํ๋ฉด ์ข์์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ดํด๋๊ฐ ๋์ฌ๊ฐ๋ค.
์ด 7๊ฐ์ PR์ ์ฌ๋ ธ๊ณ , ๊ทธ์ค 3๊ฐ๋ ์์ ์ด ํ์ํ๊ฑฐ๋, ๋ถํ์ํ ๊ฒ ๊ฐ๋ค๋ ๋ ผ์ ๋์ closeํ๊ฒ ๋์๊ณ , 4๊ฐ์ PR์ merge๋๊ฒ ๋์๋ค.
[๋ด๊ฐ ์ฌ๋ ธ๋ PR]
์ด๋ ๊ฒ ์ฐ์ด๋ถํฐ ๊ฐ์ธ์ ์ผ๋ก ๋ชฉํ๋ก ์ก๊ณ ์์๋ ์คํ์์ค ๊ธฐ์ฌ๋ฅผ ํ ์ ์์ด์ ๋ฟ๋ฏํ๊ณ , ์ด์ ๋ ์ด๋ป๊ฒ ํ๋์ง ์์์ผ๋ ์์ผ๋ก๋ ๊ณ์ํด์ ๊ด์ฌ์๊ฒ ๋ณด๊ณ ๋ด๊ฐ ์์ฃผ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ฌธ์ ๋ค์ ์ฐพ์์ ๊ธฐ์ฌํด๋ณด๊ณ ์ถ๋ค.
ํ ์ค FE Accelerator ๋ฉํ ๋ง
์ฐ์ฐํ ๋งํฌ๋์ธ์์ ๋ณด๊ฒ๋ ํ ์ค FE Accelerator ํ๋ก๊ทธ๋จ์ 6์ ๋ง์ ์ง์ํด ํ ์คํธ, ๋ฉด์ ๊ณผ์ ์ ๊ฑฐ์ณ 7์๋ถํฐ ๋ฉํ ๋ง ๊ณผ์ ์ ์์ํ๊ฒ ๋์๋ค.
ํ ์ค slash ๊ฐ๋ฐ์ ์ปจํผ๋ฐ์ค๋ฅผ ์ด์ฌํ ๋ฃ๋ ์ ์ฒญ์๋ก์ ํ ์ค๋ ์ด๋ป๊ฒ ์ผํ๊ณ ์๋์ง, ํ์ฌ ๋ฐ์ ๋ค๋ฅธ ๊ฐ๋ฐ์ ๋ถ๋ค์ ๊ณ ๋ฏผ๊ณผ ์ข์ ์ฝ๋๋ ์ด๋ค ๊ฒ์ด๋ผ ์๊ฐํ๋์ง ๊ถ๊ธํ๋ ๋์๊ฒ ๋๋ฌด ์ข์ ๊ธฐํ๊ฐ ๋์๋ค.
ํจ๊ป ์กฐ๋ก ๋ฐฐ์ ๋ ๋ค๋ฅธ ํ์ฌ์ FE ๊ฐ๋ฐ์๋ถ๋ค๊ณผ ํ ์ค ๋ฆฌ๋๋ถ๊ณผ ํจ๊ป ๋งค์ฃผ์ฐจ ์คํ๋ผ์ธ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด์ ์๋ก ๊ฐ์ ๊ณผ์ ๋ฅผ ๋๊ณ ์ ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋์ง, ๋ ์ข์ ๋ฐฉ๋ฒ์ ์์์ง ๋ฑ์ ํจ๊ป ์ด์ผ๊ธฐ ํ๋ฉด์ ๋งค์ฃผ์ฐจ ํ๋์ ์ฃผ์ ์ ๋ํ ๊น์ด๋ฅผ ๋ํด๊ฐ๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
ํ์ฌ์์ ์ผํ๋ค๋ณด๋ฉด ์๋ก ๋ค๋ฅธ ๋๋ฉ์ธ์ ๋ด๋นํ๊ณ ์ผ์ ํ๊ฒ ๋๊ณ , ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํ๋๋ผ๋ ๋ ๊น์ด ๊ณ ๋ฏผํ๊ณ ์์
ํ์ ์์
์ ๋ถ์ ๋ง์์ ๋ ์กด์คํ๊ณ ๋๋ณด๋ค ๋ฐฐ๊ฒฝ์ ๋ํด ๋ ์ ์๊ณ ๊ณ์๋๊น
๋ผ๊ณ ์๊ฐํ๋ฉด์ ์ด๋ ์ ๋ ๋ฏฟ๊ณ ์งํํ๋ ๊ฒฝ์ฐ๋ ๋ง์๋ ๊ฒ ๊ฐ๋ค.
ํ์ง๋ง ๋ฉํ ๋ง ๊ณผ์ ์ ์งํํ๋ฉด์ ๋งค์ฃผ ์งํํ๋ ๊ณผ์ ๋ ๋ชจ๋๊ฐ ๊ฐ๋ค๋ณด๋, ๋ฐฐ๊ฒฝ์ด ๋์ผํ ์ํฉ์์ ์ด๊ฒ ์ ๊ฒ ๋ฌผ์ด๋ณด๋ค ๋ณด๋, ๋งค์ฃผ ๋ด๊ฐ ๊ณ ๋ คํ์ง ๋ชปํ๋ ๋ถ๋ถ, ๋ด๊ฐ ๋์น ๋ถ๋ถ๋ค์ ๋ค์ ํ๋ฒ ์๊ฐํด๋ณด๊ฒ ๋๋ ์๊ฐ์ด ๋๊ณ ์๋ค.
7์์ ์งํํ ์ฃผ์ ๋ค
7์์ 2๊ฐ์ง ์ฃผ์ , ๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ ํผ๋๊ฐ ์ํ๊ด๋ฆฌ๋ฅผ ์ฃผ์ ๋ก ํ์ฃผ์ฉ ์งํํ๋ค. 3์ ํ๊ณ ๋๋ถํฐ ์ธ๊ธํ๋ ํผ๋๊ฐ ์ํ๊ด๋ฆฌ๋ฅผ ๊ณ ๋ฏผํ๋ ๋์๊ฒ ์์ฐ์ค๋ฝ๊ฒ, ํผ๋๊ฐ ์ํ๊ด๋ฆฌ๋ผ๋ ๊ด์ฌ์ฌ๋ฅผ ์ด๋ป๊ฒ ์ฐ์ํ๊ฒ ํด๊ฒฐํ ์ ์์์ง ๊ณ ๋ฏผํ๊ฒ ๋์๋ค.
ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฒซ๋ฒ์งธ๋ก Routing ํ์ด์ง์ ํ์ํ ์ ๋ณด๋ฅผ ์ง์ญ์ํ๋ก ์ ์ธํด ๊ฐ ํ์ด์ง์ ํ์ํ ์ ๋ณด๋ฅผ ์ฃผ์ ํ๋ ๋ฐฉ์์ผ๋ก ์์ฑํ๊ณ ์ด๋ฅผ ๊ณต์ ํ์ง๋ง, ํด๋น ๋ฐฉ์์ Routing๊ณผ ํผ๋ ์คํ ๊ด๋ฆฌ ๊ด์ฌ์ฌ๊ฐ ํผ์ฌํด ๋ถ๋ฆฌ๋๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์์๋ค.
์ฒซ์ฃผ์ฐจ ๋ฉํ ๋ง ์๊ฐ์ด ๋๋๊ณ ๋ฆฌํฉํ ๋ง์ ํ๋ฉด์ ์ฐ์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ ์ด์ ์ ๋ง์ถฐ์ ํผ๋๊ฐ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด ์ ์์ ์ธ Zustand๋ฅผ ์ด์ฉํ ์ ์ญ์คํ ์ด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ด์ฉํด ํด๊ฒฐํ ์ ์์๋ค.
๊ณผ์ ์ ํ
์คํธ ์ฝ๋๋ค๋ ๋ค ํต๊ณผํ๊ณ , ๊ธฐ์กด ํผ๋๋ฐฑ์ ๋ฐ๋ผ ์ ์์ ํ ๊ฒ ๊ฐ์ง๋ง, ์ค๋ซ๋์ ๊ณ ๋ฏผํ๋ ์ฃผ์ ์๊ณ ์ด๋ฒ์ ๊ณต๋ถํ์ง ์์ผ๋ฉด ์ดํ์๋ ๊ณ์ํด์ ๋ง์ ํ์ผ ์ ๋จ์์์ ๊ฒ ๊ฐ์ useFunnel
์ฝ๋๋ฅผ ๋ถ์ํ๊ณ , ์ด๋ฅผ ์ ์ฉํด๋ณด๋ ๊ณผ์ ์ ์งํํ๋ค.
useFunnel ์ฝ๋๋ฅผ ์ฌ๋ฌ๋ฒ ๋ณด๊ณ , ๋ฐํ๋ด์ฉ์ ์ฌ๋ฌ๋ฒ ๋ค์ผ๋ฉด์, ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ คํ๋ ํ
์ธ์ง, ์ ์ฝ๋๊ฐ ์ด๋ ๊ฒ ์์ฑ๋์๋์ง
ํ๋ ํ๋ ์ดํดํ๋ ๊ณผ์ ์ ๊ฑฐ์น ์ ์์๋ค.
์ฒ์์๋ ๊ณผํ๊ฐ ์ถ์์ง๋ง ๋ถ์ํ๊ณ ์ง์ ์ ์ฉํด๋ณด๋ฉด์ ๋๋ฌด ์ข์ ๊ฒฝํ์ด์๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ๋์๋ค.
2์ฃผ์ฐจ ๋ฉํ ๋ง ์๊ฐ์ ๋น๋ก ์๋ฒฝํ๊ฒ ๊ตฌํํ ๊ฑด ์๋์ง๋ง ํ์ฌ ๊ณผ์ ์ ๋ง๊ฒ ์ด๋์ ๋ ๊ตฌํํ ๊ฒฐ๊ณผ๋ฌผ์ ๊ฐ์ ธ๊ฐ๊ณ , ํจ๊ป ๊ณต์ ํ์ ๋ ์ข์ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์์๊ณ , ์ค์ ์ฌ๋ด ์ ํ์๋ ์ ์ฉํ๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ๋ ๋ค์๋ค.
useFunnel์ ์กฐ๊ธ ๋ ์๋ฒฝํ๊ฒ ๋ถ์ํ ํ์ ์คํ์์ค ๋ถ์๊ณผ์ ์ ๊ณต์ ํ๋ ๊ธ์ ์์ฑํด๋ ์ข์ ๊ฒ ๊ฐ๋ค.
๋ฒ์จ 2์ฃผ๋ ํ๋ ์ง๋ง ์์ผ๋ก ๋จ์ ๊ณผ์ ๋ค์ ์งํํ๋ฉด์, ๋จ์ํ ๋ด๊ฐ ์๊ณ ์๋ ๋ฐ์ด๋๋ฆฌ ๋ด์์ ์ต์ ์ด ์๋๋ผ, ์กฐ๊ธ์ ๊ณผํ๊ฒ ๊ณ ๋ฏผํ๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ํจ๊ป ๊ณต์ ํ๋ฉด์ ๋ ์ข์ ๋ฐฉ๋ฒ์ ์ฐพ์๊ฐ๋ ๊ณผ์ ์ ๋ ๋ง์ด ๊ฒฝํํด๋ณด๊ณ ์ถ๋ค.
8์์ ์ก์ ์์ดํ
7์์ ๋ค์ํ ์๋ก์ด ํ๋๊ณผ ํจ๊ป ์๋์ ๊ฐ์ด 8์์ ์ก์ ์์ดํ ์ ์ ์ ํ๋ค.
- MMKV ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ฉ ํ ์ฑ๋ฅ ๊ฐ์ ๊ฒฐ๊ณผ ์ ๋ฆฌํ๊ธฐ
- React Query๋ฅผ ์ด์ฉํ ๋น๋๊ธฐ ์ํ ๊ฐ์ ๋ฐฉํฅ ๊ณต์ ํ๊ธฐ
- useFunnel ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ์ ํ ์คํ์์ค ๋ถ์ ๊ณผ์ ๊ณต์ ํ๊ธฐ
- ์ปดํฌ๋ํธ ์ค๊ณ ์ถ๊ฐ ์์ ์งํํ๊ธฐ
ํ๋ ๊ฑธ ๊พธ์คํ ์ํ๋ ๊ฒ๋ ์ค์ํ์ง๋ง, ๋ ์ํ๊ธฐ ์ํด ์ง๊ธ ๋ณด๋ค extra mile์ ๊ณ ๋ฏผํ๋ ๊ฒ ์ง๊ธ ์์ ์ ํ์ํ๋ค๊ณ ์๊ฐ์ด ๋ค์๋ค.
์๋ก์ด ์์ผ์ ๋ค์ํ ๊ฒฝํ์ ํตํด ๋ ์ข์ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด 8์์๋ ๋ ธ๋ ฅํด๋ณด๋ ค ํ๋ค.