MySurpin ํ๋ก์ ํธ ํ๊ณ
My Surpin ๐๐ปโ๏ธ๐๐ผโ๏ธ
ํ์์ด ๊ฒฐ์ ๋๊ณ ์์ด๋์ด๋ฅผ ์ ํ ๋๋งํด๋ 2์ฃผ๋ฉด ๋๋ํ ์๊ฐ์ด๋ ์ฌ๋ฌ ๋์ ๋ค์ ํด๋ณผ ์ ์๊ฒ ๊ตฌ๋ ํ๊ณ ์๊ฐํ๋๋ฐ ๊ทธ๋ฅ ์ ๋ง ํ ์ง๋๊ฐ๋ฒ๋ ธ๋ค. ์ด๋ฒ ํ๋ก์ ํธ ๋ ๋๋ ํ์ฅ ์ญํ ์ ๋งก๊ฒ ๋์๊ณ , ํ๋ก ํธ์๋ ์ชฝ์ ์ง์คํ๋ค. ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ๋ง์ด ๊ฒฝํํด๋ดค์ง๋ง, 4๋ช ์ด ํจ๊ปํ๋ ํ๋ก์ ํธ๋ ์ฒ์์ด์๋ค. ๊ทธ๋์์ธ์ง ๊ฐ์ ์์ฑํ๋ ํด๋ผ์ด์ธํธ, ์๋ฒ ์ฝ๋๋ฅผ ์ฐ๊ฒฐ์์ผฐ๋๋ฐ ์ ์์ ์ผ๋ก ์๋ํ์ ๋, ๊ทธ๋ฆฌ๊ณ ๋ฐฐํฌ ํ ํ์๋ค๊ณผ ์ฐ๋ฆฌ์ ๋๋ฉ์ธ์์ ๋ง๋ฌ์ ๋ ๋ญ๊ฐ ๋น์ฐํ ์ผ์ง๋ง ๋ ๊ธฐ์๊ณ ์ ๊ธฐํ๊ฒ ์๋ฟ์๋ ๊ฒ ๊ฐ๋ค. ํ์๋ค ๋ชจ๋ ์ด๋ ค์ด ์ ์ด ์๊ธฐ๋ฉด ๋ฐ๋ก ๊ณต์ ํ๋ ๋ถ์๊ธฐ์ด๊ณ , ๋ฐฐ์ฐ๋ ค๋ ์์ง๊ฐ ๊ฐํ ๋ถ๋ค๋ก ๊ตฌ์ฑ๋์ด ๋คํ์ด์๋ค. ๋๋ถ์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ ์ ์์๊ณ , ์๋ก ์๋ ค์ฃผ๊ณ ๋ฐฐ์ฐ๋ฉด์ ๋ค๋ค ๋ง์ ๊ฑธ ๋ฐฐ์๊ฐ ์ ์๊ธฐ๋ ํ๋ค. ๋ฌด์๋ณด๋ค๋ ๊ฐ์ฅ ํฌ๊ฒ ์ป์๊ฑด ์ด์ ํผ์๊ฐ ์๋๋ผ ์ฌ๋ฌ๋ช ์ด ํ๋์ ์๋น์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ์ด๋ค์์ผ๋ก ํ์ ์ ํด์ผํ๋ ์ง์ ๋ํ ์ ๋ฐ์ ์ธ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ์ ์๊ฒ ๋ ๊ฒ ๊ฐ๋ค. ์ด์ 2์ฃผ ๋์ 4๋ช ์ ํ์์ด ๋ง๋ MySurpin์ด๋ผ๋ ์๋น์ค๋ฅผ ์๊ฐํด๋ณด๊ณ ์ ํ๋ค.
My Surpin์ด ๋ฌด์จ ๋ง์ด์ผ..?
๐โ๏ธ ๋น์ ๋ง์ ๋ถ๋งํฌ ๋ชจ์์ง์ ๋ง๋ค์ด๋ณด์ธ์! ๐โ๏ธ
์ธํฐ๋ท์๋ ์๋ง์ ์น์ฌ์ดํธ, ์๋น์ค๋ค์ด ์๋๋ฐ ๋ณดํต ์์ฃผ ๋ฐฉ๋ฌธํ๋ ์ ์ฉํ ์ฌ์ดํธ๋ค์ ๋ถ๋งํฌํด๋๊ณ ํธ๋ฆฌํ๊ฒ ๊ทธ ํ์ด์ง๋ก ์ด๋ํ ์ ์๋๋ก ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ๋งํฌ๋ค์ด ์๋ฉ ์์ด๋ ๊ฒฝ์ฐ, ๋ณดํต ํด๋๋ก ๋๋ ์ ๊ด๋ฆฌ๋ฅผ ํ๋ ๊ฑธ ๋ง์ด ๋ดค๋ค.
๋๋ Github ๋ ํ์งํ ๋ฆฌ์ ๊ทธ๋ฐ ์ ์ฉํ ์ฌ์ดํธ๋ค์ ๋ชจ์๋๋ ๊ฒ๋ ๋ณผ ์ ์์๋๋ฐ, ๊ต์ฅํ ๋ง์ ์ฌ๋๋ค์ด ๋์ค์ ๋ณด๊ธฐ์ํด fork๋ฅผ ํด๊ฐ๊ณ ์์๋ค. ์ ํ๋ธ ์ฌ์๋ชฉ๋ก์ด๋, melon์ ๋ฉ๋ก DJ ๋ ์๊ธฐ๋ง์ ํด๋, ๋ฆฌ์คํธ๋ฅผ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๊ณต์ ํ๋ค๋ ์ ์์ ๋น์ทํ ์ญํ ์ ํ๋ ๊ฒ ๊ฐ์ ๋์ฆ๊ฐ ์์ ๊ฑฐ๋ผ๋ ์๊ฐ์ ์์ด๋์ด๋ฅผ ์ ์ํ๊ฒ ๋์๋ค.
์ด๋ฌํ ์์ด๋์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ํด์ง ํ์๋ค๊ณผ ์ด์ผ๊ธฐ๋ฅผ ๋๋๋ค๋ณด๋ ๋ค์ํ ์ฌ๋๋ค์ ๋ถ๋งํฌ ๋ชจ์์ ํ๊ณณ์์ ๋ชจ์์ ๋ณผ ์ ์๋ค๋ฉด ์ ์ฉํ ์ฌ์ดํธ๊ฐ ๋ ๊ฒ ๊ฐ๊ณ , ๊ทธ๋ฐ ๋ถ๋งํฌ ๋ชจ์์ ์์ ๋ฏธ๋ํํผ ํํ๋ก ๊ตฌ๊ฒฝํ ์ ์๋๋ก ๋ง๋ ๋ค๋ฉด ์ฌ๋ฐ์ง ์์๊น ํ๋ ์๊ฒฌ์ผ๋ก ์ข ๋ ๊ตฌ์ฒดํ๋์ด๊ฐ๋ค.
My Surpin =My + Surfing + Pin
My Surpin์ My + Surfing + Pin ์ด ํฉ์ณ์ง ๋จ์ด์ด๋ค. 'Surpin'์ ์น ์ํ์ Surfing๐โ๏ธ๊ณผ ๋ฌด์ธ๊ฐ๋ฅผ ๊ณ ์ ํ๋ ์ฉ๋์ Pin๐์ด ํฉ์ณ์ง ํฉ์ฑ์ด์ด๋ค. ์น์ํ์ ํ๋ค๊ฐ ๋ง์ ๋๋ ์ฅ์๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ํ์ ๊ฝ์๋๋ผ๋ ์๋ฏธ์ด๋ค. ์ํ์ ์ทจ๋ฏธ๋ก ํ์๋ ํ์๋ถ์ด ๊ณ์ ์ ๊ทธ ํ์๋ถ์ด ์น ์ํ์ด๋ผ๋ ๋จ์ด์ ์ฐ๊ด ์ง์ด๋ณด๋๊ฒ ์ด๋ป๊ฒ ๋ค๋ ์๊ฒฌ์ ์ฃผ์ จ๋ค. ๋ค๋ฅธ ํ์๋ถ์ด ๊ทธ์ ๋ํด ํ๊ณผ ํฉ์ณ ์ํ์ด๋ผ๋ ์ด๋ฆ์ ์ ์ํ์ จ๋๋ฐ, ๋ชจ๋์ ๋ง์ ๋ฑ ๋๋ ์ด๋ฆ์ด๋ผ ๋ฐ๋ก ๊ฒฐ์ ๋์๋ค.
Surpin ?!
์ํ์ ํ ๋ง๋๋ก ๊ฐ์์ ๊ด์ฌ์ฌ๊ฐ ๋ฐ์๋ ์น์ฌ์ดํธ URL ๋ชจ์์ง์ด๋ค. ์์ ๋ถ๋งํฌ ํด๋ ๋์ ์ด๋ ๊ฒ URL ๋ชฉ๋ก๋ค์ ๊ด๋ฆฌํ๊ณ , ๊ณต์ ๋ํ ์ ์๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํ์ ๊ตฌ๊ฒฝํ ์๋ ์๋ค ๐๐ป ๋ ์ด์ ๋ธ๋ผ์ฐ์ ์๋จ์ ๊พธ๊น๊พธ๊นํ๊ฒ ๋ถ๋งํฌ๋ค์ ๋ณด๊ดํ์ง ๋ง์,,!
My Surpin์ ์ด๋ค ๊ธฐ์ ๋ก ๋ง๋ค์ด์ก์๊น..?! ๐ง
์ ๋ฐ์ ์ผ๋ก๋ ์์ ๊ฐ์ ์คํ์ ์ฌ์ฉํด ๋ง๋ค์๋ค. ๊ฐ ์คํ์ ์ฌ์ฉํ ์ด์ ์ ๋ํด ๊ฐ๋จํ ์๊ฐํ์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
React
- ์ปดํฌ๋ํธ์ ์ฌ์ฌ์ฉ์ฑ (ํนํ..๋ชจ๋ฌ์ฐฝ)
- Classํ์ ๋นํด Life Cycle ๊ด๋ฆฌ๊ฐ ์ฌ์
- ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๋ถ๋ถ๋ค์ ์ปดํฌ๋ํธ ๋ผ๋ ์ญํ , ๊ธฐ๋ฅ์ ๋ฐ๋ผ ์ชผ๊ฐ์ด ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์
Redux
- ์ํ์ ์ค์ํ๋ก ์ ์ฒด ์ํ ๊ด๋ฆฌ ์ฉ์ด
- props๋ฅผ ํ๋ํ๋ ๋ด๋ ค์ฃผ์ง ์์๋ ์ด๋์๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ ์ํ์ ์ ๊ทผ ๊ฐ๋ฅ
- ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์, ๋ธ๋ผ์ฐ์ ์ข ๋ฃ ํ์๋ ๋์ผ ์์ ๋ถํฐ ์ฌ์งํ ๊ฐ๋ฅ (Redux Persist)
Sass
- ์์ Selector์ ์ฐธ์กฐํ๋ฏ๋ก ํด๋์ค๋ช ์ ์ฌ๋ฌ๋ฒ ๋ฐ๋ณตํด ์ ๋ ๋ฑ์ ์ฝ๋ ์ค๋ณต ๋ฐฉ์ง ๊ฐ๋ฅ
- ๋ณ์์ฌ์ฉ์ผ๋ก ์ ์ง๋ณด์ ์ฉ์ด
- ๋์ ๊ฐ๋ ์ฑ
My Surpin ๋ณธ๊ฒฉ ๊ตฌ๊ฒฝํ๊ธฐ ๐
1. ๋ฉ์ธํ์ด์ง
๋ฉ์ธํ์ด์ง๋ ์ํ์ ์ด๋ฏธ์ง์ ๊ฑธ๋ง๊ฒ ๋์ ์ผ๋ก ์๋ํ๋ค. ๋ฆฌ์กํธ์ useRef()๋ก ์ปดํฌ๋ํธ DOM์ ์์น์ ์ ๊ทผํ๊ฒ ํจ์ผ๋ก์ ๋ฒํผ์ ๋๋ ์ ๋, ํด๋นํ๋ Section ์์น๋ก ์ด๋ํ๋๋ก ํ๋ค. ์ฐจํธ ๋ถ๋ถ์ ํน์ ์์น์ ๋๋ฌํ์ ๋ ๋ฐ์ดํฐ ๊ฐ์ ๋ณํ์ํด์ผ๋ก์จ ๊ทธ๋ํ๊ฐ ์์นํ๋ ๋ฏํ ํจ๊ณผ๋ฅผ ๋ด๋๋ก ๊ตฌํํ๋ค. Navbar ์๋ ์ฌ์ฉ์๊ฐ ์ธ์ ๋ ์ง ๊ฒ์์ด ๊ฐ๋ฅํ๋๋ก ๊ณ ์ ์ ์ธ ๊ฒ์์ฐฝ์ ์ถ๊ฐํด ํธ์์ฑ์ ๋์๋ค.
2. ์ ๋ชฉ, ์ค๋ช , ํ๊ทธ, URL ๋ชฉ๋ก, ์ธ๋ค์ผ ๋ฑ์ ์ง์ ํด ๋๋ง์ ์ํ ๋ง๋ค๊ธฐ
2-1. ์ธ๋ค์ผ ์ด๋ฏธ์ง ์ ๋ก๋
Node.js์ Javsscript์ฉ AWS SDK๋ฅผ ํ์ฉํ๋ค. ์ ์ ํ์ผ์ธ ์ธ๋ค์ผ ์ด๋ฏธ์ง๋ฅผ <input>ํ๊ทธ๋ก ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์, S3 ๋ฒํท์ผ๋ก ์ ๋ฌํ๋๋ก ํ๋ค. ์ ๋ฌ ํ ์๋ต์ผ๋ก ๋ฐ์์จ S3 url์ ์๋ฒ์ ๋ค์ ์ ๋ฌํด DB์ ์ ์ฅ์ํค๊ณ , ์ดํ์๋ DB์ ์ ์ฅ๋ url์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์ ์ธ๋ค์ผ์ ๋ณด์ฌ์ฃผ๋๋ก ๊ตฌํํ๋ค.
2-1. URL๋ง ์ ๋ ฅํ๋ฉด ์๋์ผ๋ก ํ์ด์ง์ Title์ด ์ด๋ฆ์ผ๋ก ์ ๋ ฅ๋จ
URL ์ ์ ๋ ฅํ๋ฉด ํด๋น URL html์ <title> ๋ถ๋ถ์ ๊ฐ์ ธ์ค๋ ํจ์๋ฅผ ์์ฑํ๋ค. ์ฐ์ ์๋ฒ ์ปจํธ๋กค๋ฌ ๋ถ๋ถ์ axios๋ก ํด๋น url์ html์ ๊ธ์ด์จ ํ title ๋ถ๋ถ๋ง ๋งค์นญ์ํค๋ ์ ๊ท์์ ์ ์ฉํด๋์๊ณ , ํด๋ผ์ด์ธํธ์์๋ ์ฌ์ฉ์๊ฐ url ์ด๋ฆ์ ์ ๋ ฅํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ์์ฒญ์ ๋ณด๋ด title์ ๊ฐ์ ธ์ค๋๋ก ํ๋ค.
2-2. Drag & drop์ผ๋ก ๊ฐํธํ๊ฒ url ๋ชฉ๋ก ์์ ์กฐ์ ๊ฐ๋ฅ
beautiful dnd ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด url ๋ฆฌ์คํธ ์์๋ฅผ ๋๋๊ทธ๋ก ๊ฐํธํ๊ฒ ์์ ํ ์ ์๋๋ก ํด ๊ฐํธ์ฑ์ ๋์๋ค. ์ถ๊ฐ๋ก, ๊ฐ url์ ํด๋ฆญํ๊ฒ๋๋ฉด ํด๋น ์น์ฌ์ดํธ๋ก ์ด๋์์ผ์ค๋ค. ๋ค์ ์ํ์ฐฝ์ผ๋ก ๋์์ค๊ธฐ ํธํ๋๋ก ์์ฐฝ์ ์ด์ด ๋์์ฃผ๋๋ก ํ๋ค.
3. ํ๊ทธ ๊ธฐ๋ฐ์ผ๋ก ์ํ ๊ฒ์
์ด ๋ถ๋ถ๋ useRef()๋ฅผ ์ด์ฉํด, ํ์ด์ง์ ๊ฐ์ฅ ์๋ ๋ถ๋ถ์ ์คํฌ๋กค ์์น๊ฐ ๋๋ฌํ์ ๋ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ๋ฌ๋ผ๊ณ ์๋ฒ์ ์์ฒญํ๋๋ก ํ๋ค. ๋ฌดํ์คํฌ๋กค ํํ๋ผ ๋ชจ๋ ๋ฆฌ์คํธ๊ฐ ๋ ๋๋ง ๋์์์๋ ์์ฒญ์ด ๊ฐ๋๊ฑธ ๋ฐฉ์งํ๊ธฐ ์ํด, ์ด ๊ฒ์๊ฒฐ๊ณผ ๊ฐ์๋ฅผ ๋ฏธ๋ฆฌ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์ ํ๋ฒ์ ๋ก๋ฉ์ํค๋ ๊ฐ์๋ก ๋๋์ด ์์ฒญ ๊ฐ๋ฅ ํ์๋ฅผ ์ ํํ๋ ์กฐ๊ฑด๋ฌธ์ ์ถ๊ฐํ๋ค.
4. ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ ์ํ ํผ์ค๊ธฐ
๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ง๋ ์ํ์ ๊ตฌ๊ฒฝํ๋ค๊ฐ ๋ง์ ๋๋ ์ํ์ ๋ฐ๊ฒฌํ๋ฉด, ํผ์ฌ์๋ ์๋ค. ๋ฌผ๋ก ๋ชฉ์ ์ ๋ง๊ฒ ์์ ๋ ๊ฐ๋ฅํ๋ค. ํผ์ค๋ ๊ฒฝ์ฐ์๋, DB์์ ์ํid๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ก ์นด์ดํธํ๊ณ ์๋ ์๋ณธ ์ํ์ ์ธ๊ธฐ๋๊ฐ ์ฌ๋ผ๊ฐ๊ณ , ํ๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฒ์ํ์ ๋ ์ด ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ธ๊ธฐ์๋ ์ํ ๋ถ๋ถ์ ์๋จ์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ค.
5. ํด๋ฆฝ๋ณด๋ ๋ณต์ฌ ํ๋ฒ์ผ๋ก ๊ฐ๋จํ๊ฒ ๊ณต์
๋๋ง ์๊ธฐ ์๊น์ด ์ํ์ ๊ฐ๋จํ ํด๋ฆญํ๋ฒ์ผ๋ก ์น๊ตฌ์๊ฒ ๊ณต์ ํ ์ ์๋ค. select() ๋ฉ์๋ ์ execCommand๋ฅผ ์ด์ฉํด ๊ฐ์์ input ํ๊ทธ์ ๋ด์๋ ๊ฐ์ ๋ณต์ฌํด์ค๋๋ก ํ๋ค.
6. ํ์ฌ ํธ๋ ๋, ์๋ก ์์ฑ๋ ์ํ๋ค ํ์ธ ๊ฐ๋ฅ
ํ์ฌ ๊ฐ์ฅ ์ธ๊ธฐ์๋ ๊ฒ์์ด๋ฅผ ๋ง์ด์ํ์ trend now ๋ฅผ ํตํด ํ์ธํ ์ ์๋ค. ๊ทธ๋ํ๋ Chart.js(๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ก ๊ธฐ๋ณธ์ ์ธ ์ฐจํธ๋ฅผ ์์ฑํ๊ณ , gradient ํจ๊ณผ๋ฅผ ์ฃผ๊ธฐ ์ํด canvas API๋ฅผ ์ด์ฉํ๋ค. ๊ฒ์ ๋ญํน์ด ๋จ๋ ๋ถ๋ถ์ '์ํ'์ด๋ผ๋ ์ปจ์ ์ ๋ง๊ฒ ํ๋๊ฐ ์น๋ ๋๋์ ์ถ๊ฐํ๋ค. ์ด ๋ถ๋ถ์ CSS์ keyframe์ ํ์ฉํ๋ค.
Flow Chart
DB ์คํค๋ง
API ๊ฐ์
์ํ ์ , ๊ฐ์ ํด์ผํ ์
์ํ ์
1. ๋์ ์ ์ , ์๋ก์ด๊ฒ์ ๋ํด ๊ฒ๋จน๊ธฐ๋ณด๋ค ์๋๋ถํฐ ํ๋ ํ๋
2. ๋งค์ผ ์์นจ์๋ ํ์์๊ฐ, ์ ๋ ์๋ ํ๊ณ ์๊ฐ์ ๊ฐ์ง ๊ฒ
3. ํ์๋ค์ด (ํ๋ฃจ์ข ์ผ..) zoom์ผ๋ก ์ง์์ ์ผ๋ก ์ํตํ ๊ฒ
4. ์ด๋ ค์ด ์ ์ด ์๊ธฐ๋ฉด ๋ฐ๋ก ๊ณต์ ํ๋ ๋ถ์๊ธฐ
5. ์ ์ฐํ ๊ท์น ์ ์ฉ
๊ฐ์ธ์ ์ผ๋ก ์ํ๋ค๊ณ ์๊ฐํ๊ณ , ๋ค์ ํ๋ก์ ํธ ๋๋ ์ ์งํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ ์ฌํญ๋ค์ด๋ค. ์ญ์ ๋น ๋ฅด๊ฒ ์งํ๋๋ ํ๋ก์ ํธ์์ ์ด๋ค ์ผ์ ํ๋์ง, ๋ฐฐ์ด๊ฑด ๋ฌด์์ธ์ง ๊ธฐ์ตํ๊ธฐ ์ํด์๋ ๋ฌด์กฐ๊ฑด ๊ธฐ๋ก์ ํด์ผํ๋ค. ๊ทธ๋ฐ ๋ฉด์์ ๋งค์ผ ํ๊ณ ์๊ฐ์ ๊ฐ์ง๊ณ ๋ชจ๋ ํ์๋ค์ด ํ๊ณ ๋ก์ ์์ฑํ๋ ๊ฑด ์ ์ ํ์์๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์๋ค์ด ์ง์ ๋ง๋์ง๋ ๋ชปํ์ง๋ง ํ๋ฃจ์ข ์ผ ์ค์ ํ๊ณ ์ง์์ ์ผ๋ก ์ํต์ ํ ์ ๋ ์ํ๋ค๊ณ ์๊ฐํ๋ค. ์์ ์ ํ๋ค๊ฐ ์ด๋ ค์ด ๋ถ๋ถ์ด ์๊ธฐ๋ฉด ๊ณต์ ํ๊ณ , ๊ฐ์ ํ์คํฌ๋ฅผ ์ ๋์ ์ผ๋ก ๋ถ๋ฐฐํ ์ ์์ด์ ์ข ๋ ๋น ๋ฅด๊ฒ ์งํํ ์ ์์ง ์์๋ ์๊ฐ์ด ๋ ๋ค.
๊ฐ์ ํ ์
1. ๊ฐ์ ์์ฑํ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ์๊ฐ ๋ถ์กฑ
2. commit ๊ท์น, PR, ์ด์์นด๋ ํ ํ๋ฆฟ์ ์ ์ ์งํค์ง ์์ ๊ฒ
3. branch ๊ด๋ฆฌ๋ฅผ ์ข ๋ ์ธ๋ถํํ ํ์์ฑ
4. ํ์คํฌ ๋ถ๋ฐฐ ๋ฐฉ์๊ฐ์ ์์ฑํ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ์๊ฐ ๋ถ์กฑ
5. ์ฒด๋ ฅ๊ด๋ฆฌ! ์๊ฐ๊ด๋ฆฌ! ํ์
6. ๋์์ธ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ(UX) ์ ๋ํด ์ข ๋ ๊น์ ๊ณ ๋ฏผ์ด ํ์
๊ฐ์ธ์ ์ผ๋ก ์์ฌ์์ ๋๋ผ๊ฑฐ๋ ๋ค์ ํ๋ก์ ํธ ๋๋ ๊ฐ์ ํด์ผํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ๋ ์ฌํญ๋ค์ด๋ค. ์ผ๋จ ์๊ฐ์ด ์ด๋ฐํ๋ค๊ณ ๋๊ปด์ง๋ค๋ณด๋ ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํ ์๊ฐ์ด ๋ง์ด ๋ถ์กฑํด์ ๋ค๋ก ๊ฐ์๋ก ๊ฐ์ ์์ฑํ ์ฝ๋๋ฅผ ๋ฐ๋ก merge ํ๋ ์์ด ๋์๋ค. ์คํ๋ ค ์ถฉ๋์ ์ผ์ผํค๋ ๋ถ๋ถ๋ ์๊ณ ๋ค๋ฅธ ์ฌ๋์ด ์์ฑํ ์ฝ๋๋ฅผ ์ดํดํ์ง ๋ชปํ๊ณ ๋์ด๊ฐ๊ธฐ๋ ํ์ด์ ์ด๋ถ๋ถ์ ๊ผญ ๊ฐ์ ํด์ผ ํ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ฅ๊ตฌํ๋ ๋ฌผ๋ก ์ค์ํ์ง๋ง, ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๊ธฐ ํธํ๊ณ , ๊ธฐ๋ฅ์ ์์๋ณด๊ธฐ ์ฌ์ด ์ฌ์ดํธ๋ฅผ ๊ตฌํํ๋ ๊ฒ๋ ์ค์ํ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๋๋์ โ๐ป
ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์๊ฐ๋๋ก ์๋ํ์ง ์๋ Github๊ณผ React Hooks, Redux ๋๋ฌธ์ ๊ณ ์์ ํ์๋๋ฐ, ์ด์ ๋ ์ข ์นํด์ง ๋๋์ด๋ค. ํนํ React๋ Redux ๋ ์จ๋ณด๊ธฐ๋ ํ์ง๋ง ์ด๋ค ์ญํ ์ ํ๊ณ , ์ด๋ค ์ ์์ ํธํ๊ตฌ๋ ํ๋ ์ ๋๋ก ๋์ด๊ฐ์๋๋ฐ ์ด๋ ๊ฒ ์ง์ ์ด์ฉํด์ ๋ญ๊ฐ๋ฅผ ๋ง๋ค์ด๋ณด๋๊น ์ด์ ์์ผ ์ด๋ค ๋ฉ์๋๋ฅผ ์ธ์ ์จ์ผํ๋์ง ๊ตฌ๋ถํ ์ ์๊ฒ ๋๊ณ , ์ ์ฐ๋์ง, ์ฅ์ ์ด ๋ญ์ง ๋ชธ์ ๊นจ๋ซ๊ฒ ๋ ์ ์๋ ๊ฒ ๊ฐ๋ค. ์ญ์ ์ฝ์ง์ ํด์ผ ๋ง์ด ๋ฐฐ์ด๋ค..! ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์ ๊ฒฝํ(UX) ์ธก๋ฉด์์ ์ด๋ป๊ฒ ๊ตฌํํด์ผ ์๋น์ค๋ฅผ ์ข ๋ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉํ ๊น? ํ๋ ๊ณ ๋ฏผ๋ ๋๋ฆ๋๋ก ํ๋๋ฐ, ๋๋ฌด ์ฌ์ํด์ ํ๋์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์ธ์ํ์ง ๋ชปํ ์ ๋์ ํ์ด์ง ์ ํ, ์ค๋ฌด์คํ ์คํฌ๋กค.. ๋ฑ ํธ๋ฆฌํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํด์ ์๊ฐ๋ณด๋ค๋ ํจ์ฌ ๋ ๋ง์ ์ ์ฑ์ด ํ์ํ๊ณ , ๊ทธ๋ฐ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์น์ฌ์ดํธ์๋ ๊ฐ๋ฐ์๋ค์ ๋ ธ๋ ฅ์ด ๋ด๊ฒจ์ ธ์๋ค๋ ๊ฒ๋ ๊นจ๋ฌ์๋ค.
์ด ์ธ์๋ ๋๋ฒ์งธ ๋ฐฐํฌ ํ ์คํธ๋ฅผ ํ๊ณ ํ์ธํด๋ณด๋๋ฐ, ๋ด ํ๊ฒฝ์ด๋์ ๋ค๋ฅด๊ฒ ๋ํ๋๋ ๋ถ๋ถ๋ค์ด ์์ด์ ๋ค๋ฅธ ์ด๊ธฐ ํ๊ฒฝ์์ ๋ฐ๋์ ํ ์คํธ๋ฅผ ํด๋ด์ผ๊ฒ ๋ค๋ ๋ค์ง๋ ํ๊ณ , ๋ด๊ฐ ๋์ถฉ ๋์ด๊ฐ๋ ๋ถ๋ถ์ด ๋ค๋ฅธ ํ์๋คํํ ํผํด๋ฅผ ๋ผ์น ์ ์๊ธฐ ๋๋ฌธ์ merge๋ฅผ ํ๊ธฐ ์ ์ ์ฝ๋๋ฅผ ์ข ๋ ๊ผผ๊ผผํ๊ฒ ํ์ธ์ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ๋ ๋ค์๋ค. ๋ฌผ๋ก ์์ฌ์ด ์ ๋ ์๊ธฐ๋ ํ์ง๋ง, ๊ทธ๋ณด๋ค๋ ๋๋ฌด ๋ง์๊ฒ๋ค์ ๋ฐฐ์ ๋ค๊ณ ์๊ฐํ๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ๋ฐํ์ผ์ ํ๋ฌ ํ๋ก์ ํธ ๋๋ ํจ์ฌ ๋ ์ฒด๊ณ์ ์ผ๋ก ์งํํด์ผ๊ฒ ๋ค.
ํ์๋ค๊ณผ 2์ฃผ ๋์ ์ด์ฌํ ๋ฌ๋ ค์ ์ ์ฒด์ ์ผ๋ก๋ ๊ต์ฅํ ์ง์น ์ํ์ง๋ง, ์ฌ์ ํ ์ฝ๋ฉํ๋๊ฑด ์ฌ๋ฐ๊ณ , ์์๊ฐ๊ณ ๋ฐฐ์๊ฐ์๋ก ๋์ ํด๋ณด๊ณ ์ถ์ ๊ฒ๋ค์ ๋ ๋ง์์ ธ์ ํ๋ฃจ๋ง ํน ์๊ณ ์ผ๋ฅธ ๋ค์ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ ์ถ๋ค..! ๐๐ป