๐๐ปโ๏ธ ์์ํ๋ฉฐ
๋ฆฌ์กํธ๋ฅผ ์ด๋ ์ ๋ ๋ค๋ฃฐ ์ค ์๋ค๊ณ ์๊ฐํ์ง๋ง, ํ๋ก์ ํธ๊ฐ ์ปค์ง์๋ก ์ ์ ๋ถ์ํด์ก์ต๋๋ค.
“์ด ๊ตฌ์กฐ๊ฐ ๋ง๋ ๊ฑธ๊น?” “์ด ์ํ, ์ฌ๊ธฐ์ ๊ด๋ฆฌํด๋ ๋ ๊น?”
์ฒ์์ ๊ณ ๋ฏผํ์ง ์์๋ ๋๋ ๋ฌธ์ ๋ค์ด ํ๋๋ ๋์ด๋๋ฉด์, ๋ฆฌ์กํธ๋ฅผ ‘์ ์ฐ๊ณ ์๋ ๊ฒ ๋ง๋์ง’ ์ค์ค๋ก์๊ฒ ๋ฌผ์ด๋ณด๊ฒ ๋์์ด์.
๊ทธ๋ฐ ๊ณ ๋ฏผ์ ํ๋ ์ค ใ๋๊ท๋ชจ ๋ฆฌ์กํธ ์น ์ฑ ๊ฐ๋ฐใ์ด๋ผ๋ ์ฑ ์ ์๊ฒ ๋์๊ณ ,
์ฝ๋ ๋ด๋ด “๋ด๊ฐ ์ง๊ธ๊น์ง ์ ์ด๋ ๊ฒ ํ๋ค๊ฒ ๊ฐ๋ฐํ๊ณ ์์์๊น” ํ๋ ๋ง์์ด ๋ค์์ต๋๋ค.
์ค๋์ ๊ทธ ๊นจ๋ฌ์๊ณผ ๋ฐฐ์์ ์ฌ๋ฌ๋ถ๊ณผ ๋๋๊ณ ์ถ์ด์.
“์ด๊ฒ ์ง์ง ๋ฆฌ์กํธ ๊ฐ๋ฐ์๊ฐ ๋ง๋…?”
๊ทธ๋ด ๋ ๋ด ๋์์ ๋ํ๋ ์ฑ ์ด ๋ฐ๋ก ใ๋๊ท๋ชจ ๋ฆฌ์กํธ ์น์ฑ ๊ฐ๋ฐใ์ด๋ค.
ํ์ง๋ถํฐ ๋ญ๊ฐ ๋ฏฟ์์งํ ์ด ์ฑ ์, ๋จ์ํ ๋ฆฌ์กํธ ์ฌ์ฉ๋ฒ์ด๋ ๊ธฐ์ ์ ์ค๋ช ์ด ์๋ “๋ฆฌ์กํธ๋ฅผ ์ง์ง ์ ์ฐ๋ ๋ฐฉ๋ฒ”์ ์๋ ค์ค๋ค.
์ฝ๊ณ ๋์ ๋ ์๊ฐ์?
“์ ์ด๊ฑด ์ง์ง ์ค๋ฌด์ ํ๋ ์๋ค.”
๐ฆ ์ด ์ฑ ์ ๋ญ๊ฐ ๋ค๋ฅผ๊น?
์ด ์ฑ ์ ๋จ์ํ ๋ฆฌ์กํธ ๋ฌธ๋ฒ์ด๋ ์ปดํฌ๋ํธ ์์ฑ๋ฒ์ ์๋ ค์ฃผ๋ ์ ๋ฌธ์๊ฐ ์๋๋๋ค.
๋๊ท๋ชจ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ป๊ฒ ์ค๊ณํ๊ณ ์ ์ง๋ณด์ํ ๊ฒ์ธ๊ฐ์ ๋ํด ์ด์ผ๊ธฐํ๋,
์ค๋ฌด ๊ฒฝํ์ด ํ๋ถํ ๊ฐ๋ฐ์์ ์ธ์ฌ์ดํธ๊ฐ ๋ด๊ธด “์ค๊ณ ์ค์ฌ์ ๋ฆฌ์กํธ ์ค์ ์”์ ๊ฐ๊น์ต๋๋ค.
“์ฝ๋ ์ ์ง๋ ๋ฒ”์ด ์๋๋ผ “์์คํ ์ ์ค๊ณํ๋ ๋ฒ”์ ์๋ ค์ฃผ๋ ์ฑ
๋ค๋ฃจ๋ ์ฃผ์ ๋ ๋จ์ํ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๊ตญํ๋์ง ์๊ณ ๊ฝค ๋์ ๋ฒ์๋ฅผ ํฌ๊ดํด์:
- ๋๊ท๋ชจ ์น์ฑ์์ ๋ณต์ก์ฑ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ
- ๋์์ธ ์์คํ ์ ์ด๋ป๊ฒ ๋์ ํ๊ณ ์ ์งํ ๊ฒ์ธ๊ฐ
- ์ํ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ํ์นญ, ๊ตญ์ ํ(i18n), ์ฝ๋ ์ํคํ ์ฒ ์ค๊ณ
- ๊ฐ์ธํ, A/B ํ ์คํธ, ๋๊ท๋ชจ ๋ฆฌํฉํ ๋ง, ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ต
- ๊ทธ๋ฆฌ๊ณ ํ์ ์คํฌ๋ฆฝํธ, ํ ์คํธ, ์ฑ๋ฅ ์ต์ ํ
๊ทธ๋์ “์ ๋ต์ ๋ชฐ๋ผ์” ๊ทธ๋ฅ ์ง๋์ณ์จ ๋ถ๋ถ๋ค์ ๋ํด ๋ช ์พํ๊ฒ ์ค๋ช ํด์ฃผ์ด์, ๋ง์น ์ ๋ฐฐ ๊ฐ๋ฐ์์๊ฒ 1:1๋ก ๋ฉํ ๋ง์ ๋ฐ๋ ๊ธฐ๋ถ์ด์์ต๋๋ค.
๐งฑ ์ฑํฐ๋ณ ์ธ์ ๊น์ ํฌ์ธํธ ๋ชจ์.zip
1๏ธโฃ ์ํํธ์จ์ด ๋ณต์ก์ฑ ๊ด๋ฆฌํ๊ธฐ
๐ ๋ณต์ก์ฑ์ ํผํ ์ ์๋ค, ๋ค๋ง ํต์ ํ ์ ์๋ค
ํ๋ก์ ํธ๊ฐ ์ปค์ง๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๋ณต์กํด์ง๋ ๊ฒ์ ๋น์ฐํฉ๋๋ค.
์ด ์ฑ ์์๋ ์ด๋ฌํ ๋ณต์ก์ฑ์ ๋ฌด์กฐ๊ฑด ์ค์ด๋ ค๊ณ ์ ์ฐ๊ธฐ๋ณด๋ค๋, ์์ธก ๊ฐ๋ฅํ๊ณ ์ ์ด ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๊ตฌ์กฐํํ ๊ฒ์ ๊ฐ์กฐํฉ๋๋ค.
ํนํ ์ธ์ ๊น์๋ ๋ถ๋ถ์ “๋ณต์ก์ฑ์ ์ ๊ฑฐํ๋ ค ํ์ง ๋ง๊ณ , ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ํ๋ก ๋ง๋ค์ด๋ผ”๋ ๋ฉ์์ง์์ต๋๋ค.
์ค์ ๋ก ์ฝ๋๋ฅผ ์ฝ๋ ์ฌ๋ ์
์ฅ์์ “์ด ๊ธฐ๋ฅ์ด ์ ์ฌ๊ธฐ ์๊ณ , ์ด๋ค ์ญํ ์ ํ๋์ง”๋ฅผ ์์ธกํ ์ ์์ด์ผ ํ๋ค๋ ์ ์ด ์ธ์ ๊น์์ด์.
์๋ฅผ ๋ค์ด, Side Effect๋ฅผ ์ต์ํํ๋ ์ค๊ณ, ๋ช ํํ ์์กด์ฑ ๊ด๋ฆฌ, ์ปดํฌ๋ํธ์ ์ญํ ๋ถ๋ฆฌ ๋ฑ์ ํตํด ๋ณต์ก์ฑ์ ๋ค๋ฃจ๋ ์ ๋ต์ด ์๊ฐ๋์๋๋ฐ,
์ด๋ฅผ ๋ณด๊ณ ๋๋ ์ด์ ์ ์์ ํ๋ ํ๋ก์ ํธ์์ ์ ๋ฆฌํฉํ ๋ง์ด ํ๋ค์๋์ง ๋ฉ๋์ด ๋๋๋ผ๊ณ ์
๐ ์ ๋ ์ด ๋ด์ฉ์ ๋ฐํ์ผ๋ก, ์๋ก์ด ์ฌ์ด๋ ํ๋ก์ ํธ์์๋
์ฒ์๋ถํฐ ํด๋ ๊ตฌ์กฐ์ ๊ด์ฌ์ฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ๋๋๋ ์ฐ์ต์ ์์ํด๋ดค์ต๋๋ค.
2๏ธโฃ ๋ชจ๋์ฑ
๐ ๋์์ธ ์์คํ ์ ๊ฐ๋ฐ์์ ๋๊ตฌ์ด๊ธฐ๋ ํ๋ค
๋์์ธ ์์คํ ์ ๋์์ด๋๋ค์ ์์ญ์ด๋ผ๊ณ ์๊ฐํ๋ ์ ์ด ์์์ด์,
๊ทธ๋ฐ๋ฐ ์ฑ ์์๋ ๋์์ธ ์์คํ ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ์ผ๊ด๋๊ณ ํ์ฅ ๊ฐ๋ฅํ UI๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๋๊ตฌ๋ผ๊ณ ์ ์ํด์.
์ฆ, ๊ฐ๋ฐ์๊ฐ ์ ๊ทน์ ์ผ๋ก ๊ด์ฌํ๊ณ ๋ง๋ค์ด๊ฐ๋ ๊ฒ์ด ๋ฐ๋ก ๋์์ธ ์์คํ ์ด๋ผ๋ ๊ฑฐ์ฃ .
ํนํ, ๋์์ธ ํ ํฐ, ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ๋ฆฌ ์ ๋ต, ์ ๊ทผ์ฑ์ ๊ณ ๋ คํ ์ค๊ณ ๋ฑ์ ์ค์ ์ฌ๋ก๋ค์ด ์ ์๋์ด ์์ต๋๋ค
“์ด๊ฑด ์ง์ง ์จ๋จน์ ์ ์๋ ๋ด์ฉ์ด๋ค” ์ถ์์ด์.
๐ ์ ๋ ๊ฐ์ธ ํ๋ก์ ํธ์์๋ Styled-components์ Storybook์ ์ด์ฉํด
๋์์ธ ์์คํ ๊ธฐ์ด๋ฅผ ๊ตฌ์ฑํด๋ณด๊ธฐ ์์ํ์ด์. ์์ง์ ๋ฏธ์ํ์ง๋ง,
๊ณตํต ๋ฒํผ/์ ๋ ฅ์ฐฝ ๋ฑ UI ์์์ ํต์ผ์ฑ ์ ์ง๊ฐ ๊ฐ๋ฐ ์๋์ ํฐ ์ํฅ์ ์ค๋ค๋ ๊ฑธ ์ฒด๊ฐ ์ค์ ๋๋ค.
3๏ธโฃ ์ํ ๊ด๋ฆฌ
๐ ์ํ ๊ด๋ฆฌ๋ ๋จ์ํ Redux vs Context์ ๋ฌธ์ ๊ฐ ์๋๋ค
๋ง์ ์ํ ๊ด๋ฆฌ ๋๊ตฌ๋ค์ด ์์ง๋ง,
“์ํ๋ฅผ ์ด๋์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ์ง”์ ๋ํ ์ฒ ํ์ ์ธ ์ ๊ทผ์ด ์ ๋ง ์ข์์ต๋๋ค.
์ํ ๊ด๋ฆฌ์ ๋ํ ๊ณ ๋ฏผ์ ๋ฆฌ์กํธ๋ฅผ ์ด๋ ์ ๋ ์จ๋ณธ ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ ํ๋ ์ฃผ์ ์ฃ .
“์ด ์ํ, ์ ์ญ์ผ๋ก ์ฌ๋ฆด๊น?”, “๋ก์ปฌ์์ ์ฒ๋ฆฌํ ๊น?”, “์๋ฒ ์ํ๋ก ๋๋ ๊ฒ ๋์๊น?”
๊ทธ๋ฐ ๊ณ ๋ฏผ์ ๋ํด ์ด ์ฑ ์ “์ ํ์ ๊ธฐ์ค”์ ๋ช ํํ๊ฒ ์ ์ํด์ค๋๋ค.
์๋ฅผ ๋ค์ด, UI ์ํ, ๋น์ฆ๋์ค ์ํ, ์๋ฒ์์ ์ค๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํด์ ๊ด๋ฆฌํ๋ ๋ฐฉ์์
๋ถํ์ํ ๋ฆฌ๋ ๋๋ง๊ณผ ๋ก์ง ์ค๋ณต์ ์ค์ด๋ ๋ฐ์ ํฐ ๋์์ด ๋์์ต๋๋ค.
์ํ๋ฅผ ๋ก์ปฌ์ ๋์ง, ์ ์ญ์ ๋์ง, ์๋ฒ ์ํ์ ํด๋ผ์ด์ธํธ ์ํ๋ฅผ ์ด๋ป๊ฒ ๋๋์ง ๋ฑ
์ ๋ต์ ์ ์ํ๊ธฐ๋ณด๋จ ์ํฉ์ ๋ฐ๋ฅธ ํ๋จ ๊ธฐ์ค์ ์๋ ค์ฃผ์ด์ ๋์ฑ ์ ์ตํ์ด์.
๐ ์ ๋ ์ด ํํธ๋ฅผ ์ฝ๊ณ , ์ ์ญ์ผ๋ก ๋ค ๋ชฐ์๋ฃ์๋ ์ํ๋ค์ ๋ค์ ์ ๊ฒํ๊ฒ ๋์์ด์.
ํนํ React Query๋ฅผ ์ธ ๋๋ ํด๋ผ์ด์ธํธ ์ํ์ ์๋ฒ ์ํ๋ฅผ ํผ๋ํ๋ฉด ๋๋ฒ๊น ์ด ์ด๋ ค์ ๋๋ฐ,
์ด์ ๋ ์ค๊ณ ๋จ๊ณ๋ถํฐ ์ญํ ์ ๊ตฌ๋ถํ๋ ค ๋ ธ๋ ฅํ๊ณ ์์ด์.
05. ์ํ ๊ด๋ฆฌ & API ์ต์ ํ ์ ๋ต
Contribute to DoITFronts/Frontend development by creating an account on GitHub.
github.com
์ค์ ์ฌ์ด๋ ํ๋ก์ ํธ์ ์ ์ฉํ ์์ ์ ๋ฆฌ ์ํค์ ๋๋ค!
4๏ธโฃ ๊ฐ์ธํ, A/B ํ ์คํ , ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ต
์ฑ ํ๋ฐ๋ถ์ ์๊ฐ๋๋ ์ด ํํธ๋ “์ง๊ธ ๋น์ฅ ํ์ํ์ง ์์ง๋ง, ๊ณง ๋ถ๋ชํ๊ฒ ๋ ๋ฌธ์ ”๋ค์ ๋ํ ์ ์ ์ ์ธ ๊ฐ์ด๋์์ด์.
ํ๋ฐ๋ถ ์ฑํฐ๋ ์ค๋ฌด์๋ค์๊ฒ ์ ๋ง ๊ทํ ๋ด์ฉ์ด ๋ด๊ฒจ ์์ต๋๋ค.
์ฌ์ฉ์๋ณ๋ก UI๋ฅผ ๋ค๋ฅด๊ฒ ๋ณด์ฌ์ฃผ๊ฑฐ๋, ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ์ ์ฉํ๋ A/B ํ ์คํธ,
๋๋ ๊ธฐ์กด ์์คํ ์ ์ค๋จ ์์ด ์๋ก์ด ๊ตฌ์กฐ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ์ ๋ต๋ค์ด ๋ฐ๋ก ๊ทธ๊ฒ์ด์ฃ .
ํนํ ์ ๋ ๊ธฐ๋ฅ ํ๋๊ทธ(Feature Flag)๋ฅผ ๋์ ํ๋ ์ฑํฐ๊ฐ ์ธ์ ๊น์์ด์.
๋จ์ํ if (user.isNew) ์กฐ๊ฑด์ ์ฐ๋ ๊ฒ ์๋๋ผ, ์ด๋ป๊ฒ ์ด๋ฅผ ์๋น์ค ์ ์ฒด์ ์ผ๋ก ์ค๊ณํ๊ณ ์ ์งํ ๊ฒ์ธ๊ฐ์ ๋ํ
์ํคํ ์ฒ ๊ด์ ์ ์ค๋ช ์ด ๋ด๊ฒจ ์์ด์ ์์ผ๊ฐ ํ ๋์ด์ก์ต๋๋ค.
๐ ์์ง ์ง์ ์ ์ฉํด๋ณผ ๊ธฐํ๋ ์์ง๋ง,
ํ๋ก๋ํธ๋ฅผ ์ด์ํ๋ ์ ์ฅ์์ ‘์คํ ๊ฐ๋ฅํ ์ฝ๋๋ฒ ์ด์ค’๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค ๊ฒ์ธ๊ฐ์ ๋ํ
์ ๋ต์ ์ฌ๊ณ ๋ฅผ ์ฐ์ตํ๊ฒ ๋ ๊ณ๊ธฐ๊ฐ ๋์์ด์.
๐ ์ด ์ฑ ์ ์ฝ๊ณ ๋ฌ๋ผ์ง ์
- ๋ฌด์์ ๊ธฐ๋ฅ์ ๋ง๋ค๊ธฐ๋ณด๋ค ๊ตฌ์กฐ๋ฅผ ๋จผ์ ๊ณ ๋ฏผํ๊ฒ ๋์์ต๋๋ค.
- ์ฌ์ด๋ ํ๋ก์ ํธ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฅ ๊ธฐ๋ฐ์ผ๋ก ๋ฆฌํฉํ ๋งํ์ด์.
- ์ํ ๊ด๋ฆฌ๋ฅผ ์ค๊ณํ ๋ “๋ฐ์ดํฐ์ ์ถ์ฒ์ ์๋น ์์น”๋ฅผ ํจ๊ป ๊ณ ๋ คํ๊ฒ ๋์์ด์.
- ๋์์ธ ์์คํ ์ ์ฝ๋ ๋ ๋ฒจ์์ ๊ตฌ์ถํ๊ณ ์ถ์ ์์ฌ์ด ์๊ฒผ์ต๋๋ค.
๐ ๋ค๋ง ์ด๋ฐ ๋ถ๋ค๊ป๋ ์กฐ๊ธ ์ด๋ ค์ธ ์ ์์ด์
- ๋ฆฌ์กํธ ์ ๋ฌธ์๋ถ๋ค์๊ฒ ๋ค์ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
→ ๋ฌธ๋ฒ ์ค๋ช ๋ณด๋ค๋ ์ค๊ณ์ ์ฒ ํ ์ค์ฌ์ ๋ด์ฉ์ด๊ธฐ ๋๋ฌธ์ด์์.
- ์ฑํฐ๋ณ๋ก ๊ด๋ฒ์ํ ๋ด์ฉ์ ๋ด๊ณ ์๋ค ๋ณด๋, ๊น์ด๋ณด๋ค๋ ๋์ด์ ์ง์คํ ํธ์ ๋๋ค.
→ ๋ฐ๋ผ์ ๊ฐ ์ฃผ์ ์ ๋ํ ์ค์ต์ ๋ณ๋๋ก ํด๋ณด๋ ๊ฑธ ์ถ์ฒ๋๋ ค์.
๐ฏ ์ด๋ฐ ๋ถ๋ค๊ป ์ถ์ฒ๋๋ ค์
๋์ | ์ด์ |
์ค๊ธ ์ด์์ ๋ฆฌ์กํธ ๊ฐ๋ฐ์ | ์ค๊ณ, ์ ์ง๋ณด์, ์ํคํ ์ฒ์ ๊ด์ฌ ์๋ ๋ถ |
์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํ๊ณ ์ถ์ ๋ถ | ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ, ์ํ ๊ด๋ฆฌ ์ ๋ต์ ๋ํ ํต์ฐฐ ๊ฐ๋ฅ |
์ค๋ฌด์์ ํผ์ ํ๋จํ๊ณ ๊ฒฐ์ ํด์ผ ํ ์ผ์ด ๋ง์ ๋ถ | ๊ทผ๊ฑฐ ์๋ ์ค๊ณ ๊ธฐ์ค์ ์ป์ ์ ์์ |
๐งต ๋ง์น๋ฉฐ
ใ๋๊ท๋ชจ ๋ฆฌ์กํธ ์น ์ฑ ๊ฐ๋ฐใ์ ์ ์๊ฒ “๋ฆฌ์กํธ๋ฅผ ์ ์ด๋ค”๋ ๊ฒ์ ์๋ฏธ๋ฅผ ๋๋ฌป๊ฒ ํด์ค ์ฑ ์ด์์ต๋๋ค.
์ง๊ธ๊น์ง๋ ‘์๋ํ๋ฉด ๋์ง’๋ผ๋ ๋ง์์ผ๋ก ๊ฐ๋ฐ์ ํด์๋ค๋ฉด,
์ด ์ฑ ์ ํตํด ‘์ง์ ๊ฐ๋ฅํ ๊ฐ๋ฐ’, ๊ทธ๋ฆฌ๊ณ ‘๊ฐ์ด ์ผํ๊ธฐ ์ข์ ์ฝ๋’์ ๋ํด ๋ค์ ์๊ฐํ๊ฒ ๋์์ด์.
์ค๋ฌด์์ ๋ฐฉํฅ์ฑ์ ๊ณ ๋ฏผํ๊ณ ๊ณ์ ๋ถ๋ค๊ป, ์ง์ฌ์ผ๋ก ์ถ์ฒ๋๋ฆฝ๋๋ค.
์ฝ๋ ๋ด๋ด ๋ฌด๋ฆ์ ํ ์น๊ฒ ๋๋ ๋ฌธ์ฅ์ด ๊ฐ๋ํ์ด์.