์ฌํด๋ ์ด๊น์์ด ์ฐพ์์จ ์ฐ๋ง ํ๊ณ ํ์! ๋ฒ์จ 3๋ฒ์งธ ์ฐ๋ง ํ๊ณ ์ด๋ค. ํ๊ณ ๋ ํ๋ฉด ํ ์๋ก ์๊ธฐ ๊ฐ๊ดํ์ ๋ง์ ๋์์ ์ค๋ค. ํนํ ๋์ฒ๋ผ ๋จธ๋ฆฟ์์ ์๊ฐ์ด ๊ฐ๋ ์ฐจ์๊ณ ์ ๋ฆฌ๊ฐ ์๋ ๋๋ ์๊ฐ์ ๊ธ๋ก ์ ๋ฆฌํ๋ฉด ๋๋ฅผ ๋๋์๋ณผ ์ ์๊ณ ์ง์คํ ์ ์๊ฒ ๋์ด ๋จธ๋ฆฟ์์ ๋น์ธ ์ ์๋ค. ๋จผ์ 2021๋ ์๋ ์ด๋ค ๊ณํ์ ์ธ์ ๊ณ ์ ์ง์ผฐ๋์ง ํ์ธํด ๋ณผ๊น? ๐ ์๋ ์ ์ธ์ ๋ ๊ณํ์ ์ ์ง์ผฐ์ด? ๐ฏ Github Daily Commit ๊ณ์ ์ ์งํ๊ธฐ Daily commit์ ์ฌ์ ํ ๊พธ์คํ๊ฒ ์ ์งํ๊ณ ์๋ค. ์ฌํด daily commit 2๋ ์ฐจ๊ฐ ๋์ด์ ํ๊ณ ๋ ์์ฑํ์๋ค. ์๋ ์ ํ๋ค๋ฉด ๊ทธ๋ง๋๊ฒ ๋ค๊ณ ํ์๋๋ฐ ์์ง๊น์ง๋ ํ ๋งํ๋ค. ์ญ์ ์ต๊ด์ด ๋๊ธฐ๊น์ง๊ฐ ์ด๋ ค์ด ๊ฑฐ์ง ์ต๊ด์ด ๋๋ฉด ๋งค์ผ ์์น๋ฅผ ํ๋ ๊ฒ์ฒ๋ผ ๋น์ฐํ ํด์ผ ํ ์ผ ์ค์ ํ..
์ด ๊ธ์ 2022๋ 10์ 11์ผ ํ์์ผ์ EO ์ฃผ๊ด์ผ๋ก Grepp์ CTO์ด์ ํ๊ธฐ์ฉ ๋์ ์คํ๋ผ์ธ ํ ํฌ์ด๋ฒคํธ๋ฅผ ์ฐธ์ ํ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ์คํ๋ผ์ธ์ผ๋ก ๋ฃ๊ณ ์์ฑํ ๋ด์ฉ์ด๋ผ ์๋ชป๋ ๋ถ๋ถ์ด ์์ ์๋ ์์ผ๋ ์ฐธ๊ณ ํด์ฃผ์๊ณ ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค. ์๋์ ์ด 3๋ถ์ EO ์ ํ๋ธ๋ฅผ ํตํด์ ํ๊ธฐ์ฉ ๋์ ์๊ฒ ๋์๊ณ ๋๋ฌด ๊ฐ๋ช ๊น๊ฒ ๋ด์ ์คํ๋ผ์ธ ํ ํฌ์ด๋ฒคํธ๋ฅผ ์ ์ฒญ ํ ์ฐธ์ํ๊ฒ ๋์์ต๋๋ค. ํด๋น ์ ํ๋ธ ์์์ ํ ํฌ์ด๋ฒคํธ ๋ด์ฉ์ ์์์ด ์๋๋๋ค. ์ฐธ๊ณ ํด ์ฃผ์ธ์. EO ํ๊ธฐ์ฉ๋์ 1๋ถ (์ด 3๋ถ์) ๐ ์ปค๋ฆฌ์ด ์ฑ์ฅ: ๋์์๋ ์ฑ์๊ณผ ์ฑ์ ์ปค๋ฆฌ์ด๋ ์ ๊ธ์ง ๋ง์ ๊ฒฝํ๋ค์ด ์์ฒ๋ก๋ง ๋จ์ง ์์ผ๋ฉด ๋์์ด ๋๋ค. ๊ผญ ์๋ก ๊ฐ ํ์๋ ์๋ค. ๋ค์ํ ์ญํ ์ ํด๋ณด์. (๋ฆฌ๋ ์ญํ , ๋งค๋์ ์ญํ .. etc) ๊ฒฐ๊ตญ์๋ ํผ์์๋ง ์ผํ๋ ๊ฒ ..
์ด ๊ธ์ ์๋ (2021๋ ) 12์๋ถํฐ ์ฌํด(2022๋ ) 4์์ ์นด์ฌ์ฝ๋ฆฌ์์ ์น ๊ฑฐ๋์ MVP(Minimum Viable Product) ๋ฐ์นญ ๊ณผ์ ๊ณผ ๋ฐ์นญ ์ดํ ํ์ฌ(๊ธ ์์ฑ์ผ ๊ธฐ์ค 2022๋ 9์)๊น์ง์ ๊ฒช์๋ ํ๊ณ ์ ๋๋ค. MVP ๋ฐ์นญ ํ ํ๊ณ ๋ฅผ ์์ฑํ๊ณ ์ถ์๋๋ฐ ํ์ ๊ณผ ๋ค๋ฅธ ๊ณต๋ถ์ ์ฐ์ ์์๊ฐ ๋ฐ๋ ค ์ด์ ์ผ ์์ฑํ๊ฒ ๋์๋ค. ์ ๋ชฉ์ฒ๋ผ ๋๋ 2๋ ์ฐจ ์ฃผ๋์ด ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ด๋ค. ํ์ฌ ์นด์ฌ์ฝ๋ฆฌ์์ ํ๋ก ํธ์๋ ์์ง๋์ด๋ก ์นด์ฌ์ฝ๋ฆฌ์์ ์ ๋ฐ์ ์ธ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ด๋นํ๊ณ ์๋ค. ๋ฏฟ๊ธฐ์ง๋ ์์ง๋ง ๋๋ ์น ๊ฑฐ๋์ ๊ฐ๋ฐ์ ๋ด๋นํ์ฌ ์ด๊ธฐ ์ธํ ๋ถํฐ ๋ฐ์นญ๊น์ง ๊ณผ์ ์ ๊ฒฝํ์ ํด๋ดค๋ค. ์ง๊ธ๋ถํฐ ๊ทธ ๊ฒฝํํ ๊ณผ์ ๊ณผ ์์ฌ๊ฒฐ์ ๊ณผ์ ๋ฐ ์ด๋ป๊ฒ ๊ฐ๋ฐ์ ์งํํด์๋์ง์ ๋ํด์ ๊ธฐ์ต์ ๋์๊ธฐ๋ฉฐ ํ๊ณ ๋ฅผ ํด๋ณด๋ ค ํ๋ค. ์นด์ฌ์ฝ๋ฆฌ์๋? ์์ํ๊ธฐ์ ..
์ด์ ์ daily commit 1๋ ์ฐจ ํ๊ณ ๋ฅผ ์์ฑํ ์ ์ด ์์๋๋ฐ ๋ฒ์จ 2๋ ์ด ์ง๋์ 2๋ ์ฐจ ํ๊ณ ๋ฅผ ์์ฑํฉ๋๋ค. Daily Commit์ ํ ์ด์ ์ ํด์ค๋ฉด์ ๋๊ผ๋ ์ฅ๋จ์ ์ 1๋ ์ฐจ ํ๊ณ ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์. 2๋ ์ฐจ ํ๊ณ ๋ ๊ฐ์ธ์ ์ธ ํ๊ณ ๊ธ์ ๋๋ค. ๋ฒ์จ 2๋ ์ด ์ง๋ฌ์ด! ๐ ์๊ฐ์ด ์ ๋ง ๋น ๋ฅด๋คโฆ. ์ ์ ์์ด ํ๋ฌ๊ฐ ๊ฑฐ ๊ฐ๋ค. ์ฒ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ํฅ๋ฏธ๋ฅผ ๋๊ปด ๊ณต๋ถ๋ฅผ ์์ํ๊ฒ ๋ ์ง 2๋ ์ด ๋์ ๊ฒ์ด๋ค. 2020๋ 4์ 26์ผ ์ดํ ์ง๊ธ๊น์ง ํ๋ฃจ๋ ๋นผ์ง ์๊ณ daily Commit์ 2๋ ๊ฐ ๋๋๋ก ์งํํด์ ๋ฒ๋ ธ๋ค. ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์์ํ๋ฉด์ ์ฃฝ์ด๋ผ ํด๋ณด์ ๋ง์์ ๋จน์์๊ณ , ๊ทธ๊ฑธ ์ ์งํ๊ธฐ ์ํด์ ๋งจ ์ฒ์ ๋ชฉํ๋ก ์ก์๋ ๊ฒ ์ด 1์ผ 1์ปค๋ฐ์ด์๋ค. ๋๊ตฌ๋ณด๋ค ์์์ด ๋ฆ์๋ค๊ณ ์๊ฐํ์๊ณ , ๊ทธ๋งํผ ๋ ๋ ธ๋ ฅํด์ผ ํ๋ค๊ณ ์ค..
์๋ ๋ ์ด๋ง๋์ 2020๋ ํ๊ณ ๋ฅผ ์์ฑํ์๋๋ฐ ์ฌํด ํ๊ณ ๋ ์๋ ์ ์ธ์ด ๊ณํ์ด ์ ์ง์ผ์ก๋์ง์ ํ ํด ์ด๋ค ์ผ๋ค์ด ์์๋์ง์ ๋ํด์ ํ๊ณ ๋ฅผ ์์ฑํ๊ณ 2022๋ ๋ ๊ณํ๋ ํฌ๊ฒ ์ธ์ ๋ณผ๊น ํ๋ค. ๐ ์๋ ์ ์ธ์ ๋ ๊ณํ๋ค์ ์ ์ง์ผฐ์ด? ์ผ๋จ, ์๋ ์ ํฌ๊ฒ ์ธ์๋ณด์๋ ๊ณํ์ด ์ผ๋ง๋ ์ ์ง์ผ์ก๋ ๋ด๋ณด์. Github 1day 1commit ๊ณ์ ์ด์ด๋๊ฐ๊ธฐ ์๋ ์ ์ธ์ ๋ ๊ณํ ์ค์ ์ด๊ฒ ์ ์ผ ์ด๋ ต๋ค๊ณ ์๊ฐํ์๋๋ฐ ๋คํํ๋ daily commit์ ํ๋ฃจ๋ ๋นผ๋จน์ง ์๊ณ ์ ์ง ์ค์ด๋ค. ์ฒ์ ํ๋ก ํธ์๋ ๊ณต๋ถ๋ฅผ ์์ํ์ ๋ ์ต์ 2๋ ์ ํ์๊ณ ํ๋ ๊ฒ ๋ฒ์จ ์ค๋๋ก์จ 616์ผ์งธ์ด๋ค. ์ฑ์์ง ์๋๋ฅผ ๋ณด๋ฉด ๋ฟ๋ฏํจ์ ๋ง์ด ๋๋ผ๊ณ ์๊ณ , ์ด๋ ๊ฒ ๊พธ์คํ ํด์๊ธฐ์ ๊ฐ์ธ์ ์ผ๋ก๋ ๋ง์ด ์ฑ์ฅํ๋ค๊ณ ์๊ฐํ๋ค. ์์ผ๋ก๋ ๋ณ์ผ์ด ์์ผ๋ฉด ๊ณ์ ๊พธ์ค..
์ด ๊ธ์ Yarn berry package manager๋ฅผ ์ฌ์ฉํ์ฌ React ํ๋ก์ ํธ์์ ์ด๊ธฐ ์ธํ ํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃจ๊ณ ์์ผ๋ฉฐ, ์ฌ๋ฌ ์ํ์ฐฉ์ค๋ฅผ ๊ฒช์ด๊ฐ๋ฉฐ ๊ฒฝํํ ๊ฒ๋ค์ ํ ๋๋ก ์์ฑํ ๊ธ์ ๋๋ค.๐ ์ด ๊ธ์ ๋ชฉ์ ์ ๊ฒช์๋ ์ํ์ฐฉ์ค๋ค์ ํ ๋ฒ ๋ ๊ธฐ์ต์ ๋์๊ธฐ๊ธฐ ์ํด์ ์์ฑํ์์ต๋๋ค. ์ถ๊ฐ์ ์ผ๋ก TypeScript์ ํ๋ก ํธ์๋ e2e ํ ์คํธ ํ๋ ์์ํฌ Cypress, ํ๋ก ํธ์๋ unit ํ ์คํธ ํ๋ ์์ํฌ Jest ์ธํ ๊ณผ ๋๋ถ์ด Yarn berry์์ Github Actions์ ์ฌ์ฉํด CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถ ํ Github Pages์ ๋ฐฐํฌํ๋ ๊ฒ๊น์ง ๋ด๊ณ ์์ต๋๋ค. ์ด ๋ด์ฉ์ ๊ฐ๊ฐ์ ๊ณต์ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ํด๋น ์๋ฅผ ๋ด์ Github Repository๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์. ๐ Yarn ber..
์ด ๊ธ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก์ ์ทจ์ ํ ์์ฑํ๋ ํ๊ณ ๊ธ์ ๋๋ค! ๐ ์ ์ ๊ฐ๋จํ ๋ฐฐ๊ฒฝ์ ์ด์ ์ SI ๊ฐ๋ฐ์๋ก 8๊ฐ์ ์ ๋ ์ผํ ๊ฒฝํ์ด ์์๊ณ SI ํ์ฌ์ ์ ์ฌํ๊ธฐ ์ ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก ๋์ด ๋ด๊ณ , 8๊ฐ์๊ฐ๋ ์ผ๊ณผ ๋ณํํ๋ฉด์ ๊ณต๋ถ๋ฅผ ํ ๋ค, ํด์ฌ ํ 7๊ฐ์ ๋์ ๊ณต๋ถ๋ฅผ ๋ ํ๊ณ ์ทจ์ ์ ํ๊ฒ ๋์์ต๋๋ค. ๐ค ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก ์ทจ์ ํ๊ธฐ๊น์ง ๊ณต๋ถํด์ค๋ฉฐ ๋๊ผ๋ ๊ฒ ์์์ด? ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ๋ก ๋ง์๋จน์๋ ๊ฒโฆ. ์๋ 4์์ฏค์ด์๋ค. ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ๋ก ๋ง์๋จน๊ฒ ๋ ๊ณ๊ธฐ๋ ์ด์ ์ ์์ฑํ ํ๊ณ ๊ธ์ ์ฐธ๊ณ ! (๋๋ ์ ํ๋ก ํธ ์ค๋๋ฅผ ์ ํํ์๊น?) ์๋ 4์๋ถํฐ์ด๋๊น 1๋ ๋ฐ ์ ๋ ๋ง์ ๋๋์ด ๊ฟ๊พธ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก์ ์ฒซ๋ฐ์ ๋ด๋๊ฒ ๋์๋ค. ๊ทธ ๊ณผ์ ์ ๊ทธ๋ ๊ฒ ์ํํ์ง๋ ์์๋ ๊ฑฐ ๊ฐ๋ค. ์ค์ค๋ก ์๊ฐํ..
์ด ๊ธ์ ์์์ ํ๋ฆ๋๋ก ์๋๋ค.. ์ฐธ๊ณ ํด์ฃผ์ธ์. ๋ํ, ์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ํ๊ณ ๋ ๋ด๊ฒจ์๊ธฐ ๋๋ฌธ์ ์ํ์๋ ์ ๋ณด๊ฐ ์์ ์๋ ์์ต๋๋ค. ๐ค ์ด ๊ธ์ ์ฐ๋ ์ด์ ? ๋ณ ์ด์ ๋ ์์ง๋ง ๋ ๊ฐ์ง ์ ๋๊ฐ ์๋ค. ๐ ์ฒซ ๋ฒ์งธ ์ด์ ๊ฐ์ฅ ํฐ ์ด์ ๋ 1๋ ๋์ ๋ฌด์์ ํ๊ณ ์ผ๋ง๋ ์ฑ์ฅํ๋์ง์ ๋ํด์ ์๊ธฐ ํ๊ณ ๋ฅผ ํ๊ณ ์ถ์ด์ก๋ค. ์ฌ์ค ์ ๋๋ก ๋ ํ๋ก ํธ์ค๋ ๊ฐ๋ฐ์ 1Day 1Commit์ ๊ฐ์ด ์์ํ 1๋ ์ ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ํ๊ณ ํ๋ ๊ฒธ ์จ๋ ๊ด์ฐฎ์ ๊ฑฐ ๊ฐ์๋ค. ๋ํ, ๊ทธ๋ก ์ธํด์ ์๊ธฐํ๊ณ ๋ ํ ์ ์์ ๊ฑฐ๋ผ ๋ฏฟ๊ณ ์๋ค. ๐ ๋ ๋ฒ์งธ ์ด์ ๋ถ๋ช ํ ์ด ๊ธ์ ์ฝ์ผ์๋ ๋ถ ์ค์ Daily Commit(1์ผ 1์ปค๋ฐ)์ ์๋ํด๋ณด์๊ฑฐ๋ ์๋ํ์๊ณ ์ถ์ ๋ถ๋ค์ด ๋ถ๋ช ์์ผ์ค ๊ฑฐ๋ก ์๊ฐํ๋ค. ๊ทธ๋์ 1๋ ๊ฐ ์งํํ๋ฉด์ ๋๋ ์ ๊ณผ ์ฅ์ ๋๋..
๐ ๊ณ ๋ฏผํ๊ฒ ๋ ๊ณ๊ธฐ ์คํฐ๋ ๋ชจ์ง ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ฐฑ์ค๋๋ก firebase๋ฅผ ์ฌ์ฉํ๊ฒ ๋์์ต๋๋ค. ์ฌ์ฉํ๋ฉด์ API Key์ด๋๊น ๋น์ฐํ .env ํ์ผ๋ก ๊ด๋ฆฌํด์ผ์ง๋ผ๊ณ ์๊ฐํ ๋ค ๊ด๋ฆฌ๋ฅผ ํ๊ฒ ๋์๊ณ , ๊ทธ ํ Ci/Cd๋ฅผ ์ํด Github-Action ์ฌ์ฉํ๊ณ ์์๊ณ CI๋ฅผ ์งํํ๋ฉด์ .envํ์ผ๋ก ์ธํด ํ ์คํธ๊ฐ ๊นจ์ง๋ ํ์์ด ๋ฐ์ํ๊ฒ ๋์์ต๋๋ค. ํ ์คํธ๋ฅผ ํ ๋ apikey๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์ mockingํด์ ํ ๋ ค๊ณ ํ์๊ณ ๊ณ ๋ฏผ์ ํด๋ณด์์ง๋ง ์ฝ๊ฒ ์งํ๋์ง ์์์ต๋๋ค. FIREBASE_API_KEY= "your api-key" FIREBASE_AUTH_DOMAIN = "your auth-domain" FIREBASE_DATA_BASEURL = "your data-baseurl" FIREBASE_P..
๐ฃ 2020๋ 1์ ~ 4์ ๐ ํค์๋ ์กธ์ ๊ตญ๋น๊ต์ก ์ฝ๋ก๋์ ์์ ๋ฏธ๋์ ๋ํ ๋ถ์๊ฐ ์ฌํด ํ๊ต๋ฅผ ์กธ์ ํ๋ ์ถ์ ์ ๋๋ก ์ค๋์ ์ผ์ธ ๊ฑฐ ๊ฐ์ง๋ง ์กธ์ ํ๋ค. ์ฝ๋ก๋๋ก ์ธํ์ฌ ์ธ์์ ๋ง์ง๋ง์ธ ์กธ์ ์์ด ์ทจ์๋๋ค. ๐ญ ํ๊ต์ ๋ค๋๋ฉฐ 6๋ ๊ฐ(2๋ ๊ตฐ๋) ๋ค๋๋ฉด์ ์ถ์ต๋ ๋ง์๊ณ , ํ์ ๊ฐ ๋งํ ์ข์ ์ฌ๋๋ค๋ ์ ๋ง ๋ง์ด ์ฌ๊ท์๋ค. ์ปดํจํฐ ๊ณตํ๊ณผ๋ฅผ ์กธ์ ํ๊ณ , ๊ณต๋ถ๋ ๊ฝค ํ์ง๋ง, ์ฝ๋ฉ์ ์ฝ์๋ ๋ชจ๋ฅผ ์ ๋์๋ค. ์ด๋ก ์ ์ธ ์์ ๋ค๊ณผ ์ปดํจํฐ ๊ฐ๋ก , ์ด์์ฒด์ ๋ถํฐ ์์ํ์ฌ ๊ทธ๋ํฝ์ค, IOT๊น์ง ๋์ ๋ฒ์๋ฅผ ์๊ฒ ๋ฐฐ์ฐ๋ค ๋ณด๋ ๋ญ ํด์ผ ํ ์ง๋ ๋ชจ๋ฅด๊ฒ ๊ณ ํฅ๋ฏธ๋ ์ ํ ์์๋ค. ํ์ง๋ง ํ๊ต์ ๊ทธ๋ฐ ์์ ๋ฐฉ์์ ๋ถํ ์ ํ๊ณ ๊ณต๋ถํ๋ค๋ ์ ์ ๊ทธ๋๋ ์ง๊ธ ์์ ๋ณด๋ ๊ฝค ๋์์ด ๋๋ ๋ถ๋ถ์ด ์๊ฒ ๋ชจ๋ฅด๊ฒ ์๋ ๊ฑฐ ๊ฐ๋ค. ํ๊ต ๋ค๋๊ธฐ ๋ง์ง๋ง ํ๊ธฐ..
๋ฆฌ์คํธ : ์ฝํ ์ธ ๊ฐ ์์ผ๋ฉด ์ต๊ทผ 5๊ฑด์ ๋ถ๋ฌ์ต๋๋ค.
-
๋ฒ์จ 2๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ 2022๋ ํ๊ณ
์ฌํด๋ ์ด๊น์์ด ์ฐพ์์จ ์ฐ๋ง ํ๊ณ ํ์! ๋ฒ์จ 3๋ฒ์งธ ์ฐ๋ง ํ๊ณ ์ด๋ค. ํ๊ณ ๋ ํ๋ฉด ํ ์๋ก ์๊ธฐ ๊ฐ๊ดํ์ ๋ง์ ๋์์ ์ค๋ค. ํนํ ๋์ฒ๋ผ ๋จธ๋ฆฟ์์ ์๊ฐ์ด ๊ฐ๋ ์ฐจ์๊ณ ์ ๋ฆฌ๊ฐ ์๋ ๋๋ ์๊ฐ์ ๊ธ๋ก ์ ๋ฆฌํ๋ฉด ๋๋ฅผ ๋๋์๋ณผ ์ ์๊ณ ์ง์คํ ์ ์๊ฒ ๋์ด ๋จธ๋ฆฟ์์ ๋น์ธ ์ ์๋ค. ๋จผ์ 2021๋ ์๋ ์ด๋ค ๊ณํ์ ์ธ์ ๊ณ ์ ์ง์ผฐ๋์ง ํ์ธํด ๋ณผ๊น? ๐ ์๋ ์ ์ธ์ ๋ ๊ณํ์ ์ ์ง์ผฐ์ด? ๐ฏ Github Daily Commit ๊ณ์ ์ ์งํ๊ธฐ Daily commit์ ์ฌ์ ํ ๊พธ์คํ๊ฒ ์ ์งํ๊ณ ์๋ค. ์ฌํด daily commit 2๋ ์ฐจ๊ฐ ๋์ด์ ํ๊ณ ๋ ์์ฑํ์๋ค. ์๋ ์ ํ๋ค๋ฉด ๊ทธ๋ง๋๊ฒ ๋ค๊ณ ํ์๋๋ฐ ์์ง๊น์ง๋ ํ ๋งํ๋ค. ์ญ์ ์ต๊ด์ด ๋๊ธฐ๊น์ง๊ฐ ์ด๋ ค์ด ๊ฑฐ์ง ์ต๊ด์ด ๋๋ฉด ๋งค์ผ ์์น๋ฅผ ํ๋ ๊ฒ์ฒ๋ผ ๋น์ฐํ ํด์ผ ํ ์ผ ์ค์ ํ..
-
์ฒดํฌ์ธ ๋ฆฌ์ผ๋ฐธ๋ฆฌ - ํ๊ธฐ์ฉ ๋ฉํ ๋ง ์คํ๋ผ์ธ ํ ํฌ ์ด๋ฒคํธ ์ ๋ฆฌ ๋ฐ ํ๊ณ
์ด ๊ธ์ 2022๋ 10์ 11์ผ ํ์์ผ์ EO ์ฃผ๊ด์ผ๋ก Grepp์ CTO์ด์ ํ๊ธฐ์ฉ ๋์ ์คํ๋ผ์ธ ํ ํฌ์ด๋ฒคํธ๋ฅผ ์ฐธ์ ํ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ์คํ๋ผ์ธ์ผ๋ก ๋ฃ๊ณ ์์ฑํ ๋ด์ฉ์ด๋ผ ์๋ชป๋ ๋ถ๋ถ์ด ์์ ์๋ ์์ผ๋ ์ฐธ๊ณ ํด์ฃผ์๊ณ ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค. ์๋์ ์ด 3๋ถ์ EO ์ ํ๋ธ๋ฅผ ํตํด์ ํ๊ธฐ์ฉ ๋์ ์๊ฒ ๋์๊ณ ๋๋ฌด ๊ฐ๋ช ๊น๊ฒ ๋ด์ ์คํ๋ผ์ธ ํ ํฌ์ด๋ฒคํธ๋ฅผ ์ ์ฒญ ํ ์ฐธ์ํ๊ฒ ๋์์ต๋๋ค. ํด๋น ์ ํ๋ธ ์์์ ํ ํฌ์ด๋ฒคํธ ๋ด์ฉ์ ์์์ด ์๋๋๋ค. ์ฐธ๊ณ ํด ์ฃผ์ธ์. EO ํ๊ธฐ์ฉ๋์ 1๋ถ (์ด 3๋ถ์) ๐ ์ปค๋ฆฌ์ด ์ฑ์ฅ: ๋์์๋ ์ฑ์๊ณผ ์ฑ์ ์ปค๋ฆฌ์ด๋ ์ ๊ธ์ง ๋ง์ ๊ฒฝํ๋ค์ด ์์ฒ๋ก๋ง ๋จ์ง ์์ผ๋ฉด ๋์์ด ๋๋ค. ๊ผญ ์๋ก ๊ฐ ํ์๋ ์๋ค. ๋ค์ํ ์ญํ ์ ํด๋ณด์. (๋ฆฌ๋ ์ญํ , ๋งค๋์ ์ญํ .. etc) ๊ฒฐ๊ตญ์๋ ํผ์์๋ง ์ผํ๋ ๊ฒ ..
-
[ํ๊ณ ] ์ฃผ๋์ด ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ์ข์ถฉ์ฐ๋ ์น ๊ฑฐ๋์ ๋ฐ์นญ๊ธฐ
์ด ๊ธ์ ์๋ (2021๋ ) 12์๋ถํฐ ์ฌํด(2022๋ ) 4์์ ์นด์ฌ์ฝ๋ฆฌ์์ ์น ๊ฑฐ๋์ MVP(Minimum Viable Product) ๋ฐ์นญ ๊ณผ์ ๊ณผ ๋ฐ์นญ ์ดํ ํ์ฌ(๊ธ ์์ฑ์ผ ๊ธฐ์ค 2022๋ 9์)๊น์ง์ ๊ฒช์๋ ํ๊ณ ์ ๋๋ค. MVP ๋ฐ์นญ ํ ํ๊ณ ๋ฅผ ์์ฑํ๊ณ ์ถ์๋๋ฐ ํ์ ๊ณผ ๋ค๋ฅธ ๊ณต๋ถ์ ์ฐ์ ์์๊ฐ ๋ฐ๋ ค ์ด์ ์ผ ์์ฑํ๊ฒ ๋์๋ค. ์ ๋ชฉ์ฒ๋ผ ๋๋ 2๋ ์ฐจ ์ฃผ๋์ด ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ด๋ค. ํ์ฌ ์นด์ฌ์ฝ๋ฆฌ์์ ํ๋ก ํธ์๋ ์์ง๋์ด๋ก ์นด์ฌ์ฝ๋ฆฌ์์ ์ ๋ฐ์ ์ธ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ด๋นํ๊ณ ์๋ค. ๋ฏฟ๊ธฐ์ง๋ ์์ง๋ง ๋๋ ์น ๊ฑฐ๋์ ๊ฐ๋ฐ์ ๋ด๋นํ์ฌ ์ด๊ธฐ ์ธํ ๋ถํฐ ๋ฐ์นญ๊น์ง ๊ณผ์ ์ ๊ฒฝํ์ ํด๋ดค๋ค. ์ง๊ธ๋ถํฐ ๊ทธ ๊ฒฝํํ ๊ณผ์ ๊ณผ ์์ฌ๊ฒฐ์ ๊ณผ์ ๋ฐ ์ด๋ป๊ฒ ๊ฐ๋ฐ์ ์งํํด์๋์ง์ ๋ํด์ ๊ธฐ์ต์ ๋์๊ธฐ๋ฉฐ ํ๊ณ ๋ฅผ ํด๋ณด๋ ค ํ๋ค. ์นด์ฌ์ฝ๋ฆฌ์๋? ์์ํ๊ธฐ์ ..
-
[ํ๊ณ ] Github Daily Commit(1์ผ 1์ปค๋ฐ) 2๋ ์ฐจ ๊ทธ๋ฆฌ๊ณ ..
์ด์ ์ daily commit 1๋ ์ฐจ ํ๊ณ ๋ฅผ ์์ฑํ ์ ์ด ์์๋๋ฐ ๋ฒ์จ 2๋ ์ด ์ง๋์ 2๋ ์ฐจ ํ๊ณ ๋ฅผ ์์ฑํฉ๋๋ค. Daily Commit์ ํ ์ด์ ์ ํด์ค๋ฉด์ ๋๊ผ๋ ์ฅ๋จ์ ์ 1๋ ์ฐจ ํ๊ณ ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์. 2๋ ์ฐจ ํ๊ณ ๋ ๊ฐ์ธ์ ์ธ ํ๊ณ ๊ธ์ ๋๋ค. ๋ฒ์จ 2๋ ์ด ์ง๋ฌ์ด! ๐ ์๊ฐ์ด ์ ๋ง ๋น ๋ฅด๋คโฆ. ์ ์ ์์ด ํ๋ฌ๊ฐ ๊ฑฐ ๊ฐ๋ค. ์ฒ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ํฅ๋ฏธ๋ฅผ ๋๊ปด ๊ณต๋ถ๋ฅผ ์์ํ๊ฒ ๋ ์ง 2๋ ์ด ๋์ ๊ฒ์ด๋ค. 2020๋ 4์ 26์ผ ์ดํ ์ง๊ธ๊น์ง ํ๋ฃจ๋ ๋นผ์ง ์๊ณ daily Commit์ 2๋ ๊ฐ ๋๋๋ก ์งํํด์ ๋ฒ๋ ธ๋ค. ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์์ํ๋ฉด์ ์ฃฝ์ด๋ผ ํด๋ณด์ ๋ง์์ ๋จน์์๊ณ , ๊ทธ๊ฑธ ์ ์งํ๊ธฐ ์ํด์ ๋งจ ์ฒ์ ๋ชฉํ๋ก ์ก์๋ ๊ฒ ์ด 1์ผ 1์ปค๋ฐ์ด์๋ค. ๋๊ตฌ๋ณด๋ค ์์์ด ๋ฆ์๋ค๊ณ ์๊ฐํ์๊ณ , ๊ทธ๋งํผ ๋ ๋ ธ๋ ฅํด์ผ ํ๋ค๊ณ ์ค..
-
์ฃผ๋์ด ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ 2021๋ ํ๊ณ
์๋ ๋ ์ด๋ง๋์ 2020๋ ํ๊ณ ๋ฅผ ์์ฑํ์๋๋ฐ ์ฌํด ํ๊ณ ๋ ์๋ ์ ์ธ์ด ๊ณํ์ด ์ ์ง์ผ์ก๋์ง์ ํ ํด ์ด๋ค ์ผ๋ค์ด ์์๋์ง์ ๋ํด์ ํ๊ณ ๋ฅผ ์์ฑํ๊ณ 2022๋ ๋ ๊ณํ๋ ํฌ๊ฒ ์ธ์ ๋ณผ๊น ํ๋ค. ๐ ์๋ ์ ์ธ์ ๋ ๊ณํ๋ค์ ์ ์ง์ผฐ์ด? ์ผ๋จ, ์๋ ์ ํฌ๊ฒ ์ธ์๋ณด์๋ ๊ณํ์ด ์ผ๋ง๋ ์ ์ง์ผ์ก๋ ๋ด๋ณด์. Github 1day 1commit ๊ณ์ ์ด์ด๋๊ฐ๊ธฐ ์๋ ์ ์ธ์ ๋ ๊ณํ ์ค์ ์ด๊ฒ ์ ์ผ ์ด๋ ต๋ค๊ณ ์๊ฐํ์๋๋ฐ ๋คํํ๋ daily commit์ ํ๋ฃจ๋ ๋นผ๋จน์ง ์๊ณ ์ ์ง ์ค์ด๋ค. ์ฒ์ ํ๋ก ํธ์๋ ๊ณต๋ถ๋ฅผ ์์ํ์ ๋ ์ต์ 2๋ ์ ํ์๊ณ ํ๋ ๊ฒ ๋ฒ์จ ์ค๋๋ก์จ 616์ผ์งธ์ด๋ค. ์ฑ์์ง ์๋๋ฅผ ๋ณด๋ฉด ๋ฟ๋ฏํจ์ ๋ง์ด ๋๋ผ๊ณ ์๊ณ , ์ด๋ ๊ฒ ๊พธ์คํ ํด์๊ธฐ์ ๊ฐ์ธ์ ์ผ๋ก๋ ๋ง์ด ์ฑ์ฅํ๋ค๊ณ ์๊ฐํ๋ค. ์์ผ๋ก๋ ๋ณ์ผ์ด ์์ผ๋ฉด ๊ณ์ ๊พธ์ค..
-
Yarn berry์์ React + Jest + Cypress + TypeScript + Github Actions CI/CD๋ฅผ ์ธํ ํด๋ณด์
์ด ๊ธ์ Yarn berry package manager๋ฅผ ์ฌ์ฉํ์ฌ React ํ๋ก์ ํธ์์ ์ด๊ธฐ ์ธํ ํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃจ๊ณ ์์ผ๋ฉฐ, ์ฌ๋ฌ ์ํ์ฐฉ์ค๋ฅผ ๊ฒช์ด๊ฐ๋ฉฐ ๊ฒฝํํ ๊ฒ๋ค์ ํ ๋๋ก ์์ฑํ ๊ธ์ ๋๋ค.๐ ์ด ๊ธ์ ๋ชฉ์ ์ ๊ฒช์๋ ์ํ์ฐฉ์ค๋ค์ ํ ๋ฒ ๋ ๊ธฐ์ต์ ๋์๊ธฐ๊ธฐ ์ํด์ ์์ฑํ์์ต๋๋ค. ์ถ๊ฐ์ ์ผ๋ก TypeScript์ ํ๋ก ํธ์๋ e2e ํ ์คํธ ํ๋ ์์ํฌ Cypress, ํ๋ก ํธ์๋ unit ํ ์คํธ ํ๋ ์์ํฌ Jest ์ธํ ๊ณผ ๋๋ถ์ด Yarn berry์์ Github Actions์ ์ฌ์ฉํด CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถ ํ Github Pages์ ๋ฐฐํฌํ๋ ๊ฒ๊น์ง ๋ด๊ณ ์์ต๋๋ค. ์ด ๋ด์ฉ์ ๊ฐ๊ฐ์ ๊ณต์ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ํด๋น ์๋ฅผ ๋ด์ Github Repository๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์. ๐ Yarn ber..
-
[ํ๊ณ ] ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก์์ ์ฒซ ๋ฐ๊ฑธ์์ ๋ด๋๋ค!
์ด ๊ธ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก์ ์ทจ์ ํ ์์ฑํ๋ ํ๊ณ ๊ธ์ ๋๋ค! ๐ ์ ์ ๊ฐ๋จํ ๋ฐฐ๊ฒฝ์ ์ด์ ์ SI ๊ฐ๋ฐ์๋ก 8๊ฐ์ ์ ๋ ์ผํ ๊ฒฝํ์ด ์์๊ณ SI ํ์ฌ์ ์ ์ฌํ๊ธฐ ์ ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก ๋์ด ๋ด๊ณ , 8๊ฐ์๊ฐ๋ ์ผ๊ณผ ๋ณํํ๋ฉด์ ๊ณต๋ถ๋ฅผ ํ ๋ค, ํด์ฌ ํ 7๊ฐ์ ๋์ ๊ณต๋ถ๋ฅผ ๋ ํ๊ณ ์ทจ์ ์ ํ๊ฒ ๋์์ต๋๋ค. ๐ค ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก ์ทจ์ ํ๊ธฐ๊น์ง ๊ณต๋ถํด์ค๋ฉฐ ๋๊ผ๋ ๊ฒ ์์์ด? ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ๋ก ๋ง์๋จน์๋ ๊ฒโฆ. ์๋ 4์์ฏค์ด์๋ค. ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ๋ก ๋ง์๋จน๊ฒ ๋ ๊ณ๊ธฐ๋ ์ด์ ์ ์์ฑํ ํ๊ณ ๊ธ์ ์ฐธ๊ณ ! (๋๋ ์ ํ๋ก ํธ ์ค๋๋ฅผ ์ ํํ์๊น?) ์๋ 4์๋ถํฐ์ด๋๊น 1๋ ๋ฐ ์ ๋ ๋ง์ ๋๋์ด ๊ฟ๊พธ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก์ ์ฒซ๋ฐ์ ๋ด๋๊ฒ ๋์๋ค. ๊ทธ ๊ณผ์ ์ ๊ทธ๋ ๊ฒ ์ํํ์ง๋ ์์๋ ๊ฑฐ ๊ฐ๋ค. ์ค์ค๋ก ์๊ฐํ..
-
[ํ๊ณ ] Github Daily Commit(1์ผ 1์ปค๋ฐ)์ ์์ํ์ง 1๋ ์ด ์ง๋ฌ๋ค..
์ด ๊ธ์ ์์์ ํ๋ฆ๋๋ก ์๋๋ค.. ์ฐธ๊ณ ํด์ฃผ์ธ์. ๋ํ, ์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ํ๊ณ ๋ ๋ด๊ฒจ์๊ธฐ ๋๋ฌธ์ ์ํ์๋ ์ ๋ณด๊ฐ ์์ ์๋ ์์ต๋๋ค. ๐ค ์ด ๊ธ์ ์ฐ๋ ์ด์ ? ๋ณ ์ด์ ๋ ์์ง๋ง ๋ ๊ฐ์ง ์ ๋๊ฐ ์๋ค. ๐ ์ฒซ ๋ฒ์งธ ์ด์ ๊ฐ์ฅ ํฐ ์ด์ ๋ 1๋ ๋์ ๋ฌด์์ ํ๊ณ ์ผ๋ง๋ ์ฑ์ฅํ๋์ง์ ๋ํด์ ์๊ธฐ ํ๊ณ ๋ฅผ ํ๊ณ ์ถ์ด์ก๋ค. ์ฌ์ค ์ ๋๋ก ๋ ํ๋ก ํธ์ค๋ ๊ฐ๋ฐ์ 1Day 1Commit์ ๊ฐ์ด ์์ํ 1๋ ์ ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ํ๊ณ ํ๋ ๊ฒธ ์จ๋ ๊ด์ฐฎ์ ๊ฑฐ ๊ฐ์๋ค. ๋ํ, ๊ทธ๋ก ์ธํด์ ์๊ธฐํ๊ณ ๋ ํ ์ ์์ ๊ฑฐ๋ผ ๋ฏฟ๊ณ ์๋ค. ๐ ๋ ๋ฒ์งธ ์ด์ ๋ถ๋ช ํ ์ด ๊ธ์ ์ฝ์ผ์๋ ๋ถ ์ค์ Daily Commit(1์ผ 1์ปค๋ฐ)์ ์๋ํด๋ณด์๊ฑฐ๋ ์๋ํ์๊ณ ์ถ์ ๋ถ๋ค์ด ๋ถ๋ช ์์ผ์ค ๊ฑฐ๋ก ์๊ฐํ๋ค. ๊ทธ๋์ 1๋ ๊ฐ ์งํํ๋ฉด์ ๋๋ ์ ๊ณผ ์ฅ์ ๋๋..
-
๐ค Firebase API Key๋ฅผ ๊ณต๊ฐํ๋ ๊ฒ์ด ์์ ํฉ๋๊น?
๐ ๊ณ ๋ฏผํ๊ฒ ๋ ๊ณ๊ธฐ ์คํฐ๋ ๋ชจ์ง ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ฐฑ์ค๋๋ก firebase๋ฅผ ์ฌ์ฉํ๊ฒ ๋์์ต๋๋ค. ์ฌ์ฉํ๋ฉด์ API Key์ด๋๊น ๋น์ฐํ .env ํ์ผ๋ก ๊ด๋ฆฌํด์ผ์ง๋ผ๊ณ ์๊ฐํ ๋ค ๊ด๋ฆฌ๋ฅผ ํ๊ฒ ๋์๊ณ , ๊ทธ ํ Ci/Cd๋ฅผ ์ํด Github-Action ์ฌ์ฉํ๊ณ ์์๊ณ CI๋ฅผ ์งํํ๋ฉด์ .envํ์ผ๋ก ์ธํด ํ ์คํธ๊ฐ ๊นจ์ง๋ ํ์์ด ๋ฐ์ํ๊ฒ ๋์์ต๋๋ค. ํ ์คํธ๋ฅผ ํ ๋ apikey๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์ mockingํด์ ํ ๋ ค๊ณ ํ์๊ณ ๊ณ ๋ฏผ์ ํด๋ณด์์ง๋ง ์ฝ๊ฒ ์งํ๋์ง ์์์ต๋๋ค. FIREBASE_API_KEY= "your api-key" FIREBASE_AUTH_DOMAIN = "your auth-domain" FIREBASE_DATA_BASEURL = "your data-baseurl" FIREBASE_P..
-
[ํ๊ณ ] 2020๋ ์ ๋๋์๋ณด๋ฉฐ.. ๐ง
๐ฃ 2020๋ 1์ ~ 4์ ๐ ํค์๋ ์กธ์ ๊ตญ๋น๊ต์ก ์ฝ๋ก๋์ ์์ ๋ฏธ๋์ ๋ํ ๋ถ์๊ฐ ์ฌํด ํ๊ต๋ฅผ ์กธ์ ํ๋ ์ถ์ ์ ๋๋ก ์ค๋์ ์ผ์ธ ๊ฑฐ ๊ฐ์ง๋ง ์กธ์ ํ๋ค. ์ฝ๋ก๋๋ก ์ธํ์ฌ ์ธ์์ ๋ง์ง๋ง์ธ ์กธ์ ์์ด ์ทจ์๋๋ค. ๐ญ ํ๊ต์ ๋ค๋๋ฉฐ 6๋ ๊ฐ(2๋ ๊ตฐ๋) ๋ค๋๋ฉด์ ์ถ์ต๋ ๋ง์๊ณ , ํ์ ๊ฐ ๋งํ ์ข์ ์ฌ๋๋ค๋ ์ ๋ง ๋ง์ด ์ฌ๊ท์๋ค. ์ปดํจํฐ ๊ณตํ๊ณผ๋ฅผ ์กธ์ ํ๊ณ , ๊ณต๋ถ๋ ๊ฝค ํ์ง๋ง, ์ฝ๋ฉ์ ์ฝ์๋ ๋ชจ๋ฅผ ์ ๋์๋ค. ์ด๋ก ์ ์ธ ์์ ๋ค๊ณผ ์ปดํจํฐ ๊ฐ๋ก , ์ด์์ฒด์ ๋ถํฐ ์์ํ์ฌ ๊ทธ๋ํฝ์ค, IOT๊น์ง ๋์ ๋ฒ์๋ฅผ ์๊ฒ ๋ฐฐ์ฐ๋ค ๋ณด๋ ๋ญ ํด์ผ ํ ์ง๋ ๋ชจ๋ฅด๊ฒ ๊ณ ํฅ๋ฏธ๋ ์ ํ ์์๋ค. ํ์ง๋ง ํ๊ต์ ๊ทธ๋ฐ ์์ ๋ฐฉ์์ ๋ถํ ์ ํ๊ณ ๊ณต๋ถํ๋ค๋ ์ ์ ๊ทธ๋๋ ์ง๊ธ ์์ ๋ณด๋ ๊ฝค ๋์์ด ๋๋ ๋ถ๋ถ์ด ์๊ฒ ๋ชจ๋ฅด๊ฒ ์๋ ๊ฑฐ ๊ฐ๋ค. ํ๊ต ๋ค๋๊ธฐ ๋ง์ง๋ง ํ๊ธฐ..
-
์ฝ๋์จ 2๊ธฐ ๊ทธ 3๋ฌ๊ฐ์ ์ฌ์ !
๐ ์ด์ฉ๋ค๊ฐ ์ ์ฒญํ๊ฒ ๋์ด? ์ด์ง์ ๊ณํํ๊ณ ์์๋ค. 1์ ๋ง์ ํด์ฌํ๊ฒ ๋ค๊ณ ๋งํ๊ณ , ๋ค์ ์ฒ์์ผ๋ก ๋์๊ฐ๋ค๋ ์๊ฐ์ผ๋ก ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๋๋ ๋ฐ ํ์ํ ๊ฒฐ์ ์ด์๋ค. ๋์๊ฒ ์์ด์ ๊ณต๋ถํ๋ ์ฆ๊ฑฐ์์ ์ฃผ๊ณ ์ฆ๊ธฐ๋ฉฐ ์ผํ ์ ์๊ฒ ๋ค๊ณ ํ์ ์ ์ค ํ๋ก ํธ์๋ ๋ ์โฆ. ๊ทธ ๋ ์์ผ๋ก ์ธํด์ ๋๋ ์ง์ฒดํ ์ ์์๊ณ , ์ด์ง์ ์ํด์ ํ์ฌ์ ๋ค๋๋ ์์ค์ ํด๊ทผ ํ ๊ณต๋ถํ๊ธฐ๋ฅผ ๋งค์ผ ๋ฐ๋ณตํ์๋ค. ํ์ฌ๋ณด๋ค ํด๊ทผ ํ๊ฐ ๋์ ํ๋ฃจ ์์์ด๋ผ๊ณ ์๊ฐํ์ ๋งํผ ์ฆ๊ธฐ๋ฉฐ ๊ณต๋ถํ๋ ์์ค์ ํ์ฌ์ ๊ณผ์ฅ๋ ์ถ์ฒ์ผ๋ก ์ฝ๋์จ์ ์๊ฒ ๋์๋ค. ํผ์ ํ๋ก ํธ์๋๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ด๋ ๊ฒ ํ๋ ๊ฒ ๋ง๋ ๊ฑธ๊น? ๋ผ๋ ์๋ฌธ์ด ๋ค์๊ณ , ๊ทธ ์๋ฌธ์ ํด๊ฒฐํด์ฃผ๊ธฐ ์ํด ๋๊ตฐ๊ฐ์ ๊ฐ์ด๋๊ฐ ํ์ํ๋ค ์๊ฐํ๊ณ , ํ์ฌ์ ๋ค๋๋ฉด์ ํ ์ ์๋ ์ ์ด ๊ฐ์ฅ ๋งค๋ฆฌํธ๋ฅผ ๋ง์ด ๋๊ผ๋ ๋ถ๋ถ..
-
โ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ: React & TypeScript 8ํ์ฐจ(๋ง์ง๋ง ํ์ฐจ)
โ 9์24์ผ (๋ชฉ) ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ 8ํ์ฐจ ๊ฐ์ ์ ๋ฆฌ ๐ 8ํ์ฐจ ๊ฐ์ ๋ชฉํ ๋ง์ง๋ง ์์ ์ดํด๋ณด๊ธฐ Mobx ์ดํด๋ณด๊ธฐ ๐ ์์ ์ดํด๋ณด๊ธฐ ๐ React-Router ์ด ์์ ๋ 1๋ ์ ์์ ๋ผ react-router ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ ๋ณด๊ธฐ๋ฅผ ๋ฐ๋๋ค. router์ ์งํ ๋์์ URL์ด ๋ฐ๋๋ ๊ฒ์ ๋ด๋ถ์ location์ path๋ฅผ ๊ฐ์งํด์ ํด๋น location์ ์ฃผ์์ ๋ง๋ ์ปดํฌ๋ํธ์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ๊ฐ๋จํ ๋์์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋ฒ ์ฌ์ด๋์์ ๋งํ๋ router์ ๋ค๋ฅด๋ค. ์๋ฒ ์ฌ์ด๋์์๋ ์์ฒญ URI end point path์ ๋ฐ๋ผ์ ๋ค๋ฅธ ๋น์ง๋์ค ๋ก์ง์ ์คํํ๋ ์ปดํฌ๋ํธ๋ฅผ ์ฐ๊ฒฐ์ํค๋ ๊ฒ์ด๊ณ ์ฌ๊ธฐ์์ router๋ URL์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๊ทธ๊ฒ๊ณผ mapping๋๋ ํ์ด์ง ์ปดํฌ๋ํธ๋ค์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ์ญ..
-
โ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ: React & TypeScript 7ํ์ฐจ
โ 9์22์ผ (ํ) ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ 7ํ์ฐจ ๊ฐ์ ์ ๋ฆฌ ๐ 7ํ์ฐจ ๊ฐ์ ๋ชฉํ React ์์ ์ปดํฌ๋ํธ ๋ถ๋ฆฌ React & TypeScript ์์ ํ์ด๋ณด๊ธฐ ๐ ์ปดํฌ๋ํธ๋ ์ด๋ป๊ฒ ๋ถํ ํ ๊น? ์ปดํฌ๋ํธ๊ฐ ์ธ๋ถ ์ํ์ ์์กด์ ์ธ ๊ฒ๊ณผ ์ธ๋ถ ์ํ์ ์์กด์ ์ธ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฆฌํ๋ ํ๋ ๊ฒ์ react์ ์์น์ ์ธ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ๋งํ๋ ์ธ๋ถ ์ํ์ ์์กด์ ์ธ ๊ฒ์ ๋น์ง๋์ค ๋ก์ง์ ์๋ฏธํ๋ค. ๋น์ง๋์ค ๋ก์ง์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ฉด์ ์ด๋ค ์ํ๋ฅผ ์ด๋๋ก๋ถํฐ ์ด๋ค๊ฒ์ ๊ฐ์ง๊ณ ์ฌ์ง์ ๊ด๋ จ๋ ์ฝ๋๋ค์ ๋งํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋น์ง๋์ค ๋ก์ง์ ๊ฐ์ง๊ณ ์๋ ์ปดํฌ๋ํธ๋ค์ ์ฌ๋ฌ๊ฐ์ง ๋จ๊ณ๋ก ๋ถ๋ฆฌํ๋๋ฐ ๊ฐ๋ณ ์ปดํฌ๋ํธ๋คํํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ์ฝ๋๋ค์ container ์ปดํฌ๋ํธ๋ผ๊ณ ๋ถ๋ฆฌ๊ณ ์ด๊ฒ๋ค์ ์๋์ ๊ฐ์ด containers ํด๋์ ๋ฐ๋ก ๋ถ๋ฆฌํด..
-
โ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ: React & TypeScript 6ํ์ฐจ
โ 9์17์ผ (๋ชฉ) ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ 6ํ์ฐจ ๊ฐ์ ์ ๋ฆฌ ๐ 6ํ์ฐจ ๊ฐ์ ๋ชฉํ webpack์ ๋ํ ํ๋ฆ ์ดํดํ๊ธฐ React & Typescript ์ดํด๋ณด๊ธฐ redux-saga ์ฌ์ฉํ๊ธฐ ๐ Webpack ํ๋ฆ ์ดํดํ๊ธฐ Webpack์ Webpack Cli๋ผ๊ณ ํ๋ ๋๊ตฌ๊ฐ ์กด์ฌํ๋ค. ๋จ์ง Hello world๋ฅผ ์ฐ๊ธฐ ์ํด์ ํ์ํ ์ค์ ๋ค์ด ์ด๋ ๊ฒ๋ ๋ง์ด ํ์ํ๋ค @babel/core๊ณผ ๊ฐ์ @๊ฐ ๋ถ์ฌ์ ธ ์๋ ๊ฒ๋ค์ ํธ๋์คํ์ผ๋ง ํ ๋ ์ฌ์ฉ๋๋ค. ์ผ์ข ์ ํ๋ก๊ทธ์ธ์ด๋ค. webpack์ webpack.config.js๋ผ๋ ์ด๋ฆ์ ๊ฐ๋ ์ค์ ํ์ผ์ ๊ฐ๋๋ค. ์ด๋ฆ ๋ณ๊ฒฝ๋ ์ ์์ง๋ง ๊ด๋ก์ ์ผ๋ก ์ฌ์ฉ๋๋ค. webpack์ webpack.config.js์ฝ์ด์ ์คํ์์ผ์ฃผ๋๋ฐ ์คํ์์ผ์ค ๋ config๊ฐ์ฒด๋ฅผ export..
-
โ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ: React & TypeScript 5ํ์ฐจ
โ 9์15์ผ (ํ) ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ 5ํ์ฐจ ๊ฐ์ ์ ๋ฆฌ ๐ 5ํ์ฐจ ๊ฐ์ ๋ชฉํ javascript๋ก ๋ง๋ Redux ๋ฆฌ๋ทฐ Redux์ ๋น๋๊ธฐ Redux ๋ฏธ๋ค์จ์ด ์์๋ณด๊ธฐ ๐ป Redux ๋ฆฌ๋ทฐ 2ํ์ฐจ๋ ๋ง๋ ๋ฆฌ๋์ค๋ฅผ ์ฌ์ฉํ์ฌ store์ reducer ์์ฑ ํด์ค๋ค. ์์ธํ ๋ด์ฉ์ ์ ๋งํฌ ์ฐธ์กฐ ๐ index.js import { createStore } from "./redux"; function reducer(state = { counter: 0 }, action) { switch (action.type) { case "inc": return { ...state, counter: state.counter + 1 }; default: return { ...state }; } } const store = ..
-
๋๋ ์ ํ๋ก ํธ ์ค๋๋ฅผ ์ ํํ์๊น? ๐ค
๋ด๊ฐ ์ ํ๋ก ํธ ์ค๋ ๊ด์ฌ์ด ์๊ธฐ๊ณ ์ด์ฌํ ํ๋ ค๋์ง ๋ํด์ ๋๋ฅผ ๋ค์ ๋์๋ณผ ํ์์ฑ์ ๋๊ผ๋ค. ์ด๋ฐ ๊ธ์ ์ฐ๋ ๊ฒ๋ ์ฌ๋ฐ์ ๊ฑฐ ๊ฐ๊ณ ๋๋ฅผ ๋์๋ณด๋ ์๊ฐ์ด ๋ ๊ฑฐ ๊ฐ์ ์จ๋ณด๊ธฐ๋ก ๋ง์๋จน์๋ค. โจ ๋ง์์ ๋จน์ง๋ง ๊ธ ์ฐ๋ ๊ฑด ์์์ ํ๋ฆ๋๋ก ์ธ ๊ฒ์ด๋ค. ๊ธ์ ๋์๊ฐ ์๊ณ ์ ์ ์ด ์์ผ๋ ์ฐธ๊ณ . โ ๐ป ๋ํ ์์ ๋๋? ๐ ์ปดํจํฐ๊ณตํ๊ณผ๋ฅผ ์ ํํ ์ด์ ๊ณต๋ถ๋์ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ์ด ๋์ ์ ํ ๋ํ๊ต์ ์ ํํ๊ณ , ๋ฌด์จ ๊ณ ์ง์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๊ณผ๋ ์ปดํจํฐ๊ณตํ๊ณผ ์๋๋ฉด ๊ฐ ์๊ฐ์ด ์์๊ธฐ ๋๋ฌธ์ ์ปดํจํฐ๊ณตํ๊ณผ๋ฅผ ์ ํํ์๋ค. ์ ์ปดํจํฐ๊ณตํ๊ณผ๋ฅผ ๊ฐ๊ณ ์ถ์๋๋ ์ง๋ฌธ์๋ ๊ทธ๋ฅ ์๋ง ๊ฒ์์ ์ข์ํด์ ์ธ ๊ฑฐ ๊ฐ๋ค. ๊ณ ๋ฑํ๊ต ๋๋? ๊ณ 2 ๋ ๋กค์ ๋น ์ ธ์ ์ ์ ๋ชป ์ฐจ๋ ธ์ ์์ ์ด ์์๋ค. ๋ฌผ๋ก ๊ณ 3 ๋๊ฐ ์ ์ผ ํผํฌ์๊ธด ํ๋ค. ํ์ฐฝ ๊ณต๋ถ๋ฅผ ๋ง์ด ํ ์..
-
โ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ: React & TypeScript 4ํ์ฐจ
โ 9์10์ผ (๋ชฉ) ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ 4ํ์ฐจ ๊ฐ์ ์ ๋ฆฌ ๐ 4ํ์ฐจ ๊ฐ์ ๋ชฉํ ๐ป React ์ปดํฌ๋ํธ์ ์ํ์ ๊ด๋ฆฌ ๐ฏ ์ปค๋ฎค๋์ผ์ด์ !! ๐ค ๋น๋๊ธฐ์ ์ ๋๋ ์ดํฐ ํ์ ์คํฌ๋ฆฝํธ๋ ๋ค์์ฃผ๋ถํฐ! ๐คฉ ๐ React ์ปดํฌ๋ํธ์ ์ํ์ ๊ด๋ฆฌ React ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ ๋ค. index.jsimport React from "react"; import ReactDOM from "react-dom"; ReactDOM.render( , document.getElementById("root") ); App.jsimport React from "react"; const App = () => { return ( React and TypeScript 1ํ์ฐจ: Overview 2ํ์ฐจ: Redux ๋ง๋ค๊ธฐ 3ํ์ฐจ: React ๋ง๋ค๊ธฐ ..
-
โ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ: React & TypeScript 3ํ์ฐจ
โ 9์08์ผ (ํ) ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ 3ํ์ฐจ ๊ฐ์ ์ ๋ฆฌ ๐ 3ํ์ฐจ ๊ฐ์ ๋ชฉํ ๋ฆฌ์กํธ ๋ง๋ค์ด๋ณด๊ธฐ ๋ฆฌ์กํธ์ ๊ธฐ๋ณธ์ ์ธ ๋ถ๋ถ๋ค๊ณผ ๋ฆฌ์กํธ๋ฅผ ๊ตฌํํด๋ณด์! ๐ค ๐ ๋ฆฌ์กํธ๋ฅผ ๊ตฌํํด๋ณด๋ ์ด์ ! ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉ์์ ์ฅ์์๋ง ์ฌ์ฉํ์ง ์์์ผ๋ฉด ์ข๊ฒ ๋ค. ์ด๋ ๊ฒ ๊ตฌํํด๋ณด๋ฉด์ ๋ ์ข์ ๊ฐ๋ฐ์๊ฐ ๋์์ผ๋ฉด ์ข๊ฒ ๋ค. ๐ React๋ฅผ ๋ง๋ค๊ธฐ ์ ์.. list์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก JavaScript๋ฅผ ์ฌ์ฉํ ๋ ์๋์ ๊ฐ์ด rootElement.innerHTML์ฌ์ฉํ์ฌ ํ๋ฉด์ ํ์ํ ์ ์๋ค. // index.js const list = [ { title: "React์ ๋ํด ์์๋ด ์๋ค." }, { title: "Redux์ ๋ํด ์์๋ด ์๋ค." }, { title: "TypeScript์ ๋ํด ์์๋ด ์๋ค." } ]; const r..
-
โ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ: React & TypeScript 2ํ์ฐจ
โ 9์ 3์ผ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ 2ํ์ฐจ ์ ๋ฆฌ ๐ 2ํ์ฐจ ๊ฐ์ ๋ชฉํ JavaScript์ ๋ํ ์ง์์ A~Z๊น์ง ํ ์ ์๋ ๋งํผ ํด๋ณด๊ธฐ! (70%) JavaScript์ ์์ฃผ ๊ธฐ์ด์ ์ธ ๋ด์ฉ๋ณด๋จ ์ ์ฒด์ ์ธ ํ๋ฆ์ ํ๋ฉด์ ์คํ๋ค์ ์ญ ํ์ด๋ณด๊ธฐ ์ํ๊ด๋ฆฌ์์ธ Redux๋ฅผ ์ง์ ๋ง๋ค์ด๋ณด๊ธฐ! ๋ง๋ค์ด๋ณด๋ฉด์ ์ด๋ค ๊ธฐ์ ๋ก ์ด๋ฃจ์ด์ ธ์๋์ง! (30%) ๐ JavaScript ํ์ด๋ณด๊ธฐ ๋ณ์์ ์ด ๊ฐ์ด๋ผ๋ ๊ฒ์ ๋ฃ์ ์ ์๋ค. var x = 10; //x: ๋ณ์ 10: ๊ฐ let y = 10; const z = 10; ๐ ๊ฐ์ ๋ํด์ ๐ ๊ฐ์ ๋ํด์ ๊ต์ฅํ ๊ฐ์กฐ๋ฅผ ํ์ จ๋ค. ์์ฃผ ๋ฐ๋ฅ์ ์ ๋๋ถ๋ณ์ ์์น๊ฐ์ ๊ฒ๋ค์ ์ธ์๋๊ณ (ex. 1=1, 1+1=2 ๋ถ๋ณ(๊ณต๋ฆฌ)) ์ด๋ฐ ์์น์ ์ถฉ๋ถํ ์ดํดํ๋ฉด ์๋ฌด๋ฆฌ ๋ณต์กํ ๊ฒ์ด๋ผ๋ ๊ทธ ์์น์ผ๋ก..
-
โ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ: React & TypeScript 1ํ์ฐจ
๐ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ ๊ต์ก์ ์๋ ์คํ๋ผ์ธ์ผ๋ก 100๋ช ์ ๋ ๋ฝ์์ ํ๋ค๊ณ ํ๋๋ฐ, ์ด๋ฒ์๋ ์ฝ๋ก๋์ ์ํฅ์ผ๋ก ์จ๋ผ์ธ์ผ๋ก ์งํ๋์์ต๋๋ค. ๊ฑฐ๊ธฐ๋ค๊ฐ ์ด๋ฒ์๋ ์ฝ๋ก๋ ๋๋ฌธ์ ๋์ด ์์์ผํด์ ์ฝ 30๋ช ์ ๋ ๋ฝ์ ์๊ฐ์ด์๋ผ๊ณ ํ์ จ์ง๋ง, ์ฝ๋ก๋๊ฐ ์ฌํด์ ธ ์จ๋ผ์ธ์ผ๋ก ์งํ๋์ ์ฝ 400์ฌ๋ช ์ ๊ต์ก์์ผ๋ก ๋ฝ์๋ค๊ณ ํ์ จ์ต๋๋ค. ๊ทผ๋ฐ ์ด ๊ต์ก์ ๋ฃ๊ณ ์ถ์ด์ ์ง์ํ ์ฌ๋๋ง 1200์ฌ๋ช .. ๐ค ์ด์ ์ ์ธ ์ฌ๋์ด ๊ต์ฅํ ๋ง์ ๊ฑฐ ๊ฐ๋ค.. ์ด๋ฒ ๊ต์ก์ zoom์ ์ด์ฉํด์ ์จ๋ผ์ธ์ผ๋ก ์งํ๋์๊ณ , ๊ฐ์ฌ๋์ ์ฐ์ํํ์ ๋ค์ ๊น๋ฏผํ๋(์นํ๋ก ํธ์๋๊ฐ๋ฐ ๊ทธ๋ฃน์ฅ)์ด ์งํํ์ จ์ต๋๋ค. ๋ํ, 9์ ํ๋ฌ๋์ ํ, ๋ชฉ์ผ๋ก ์งํ๋๊ณ ์ด 8ํ์ฐจ๋ก ์งํ๋ ์์ ์ด๊ณ ์ ๋ ๊ณ์ ๋๋ ๋๋ง๋ค ๋ธ๋ก๊น ์ ํ ์์ ์ ๋๋ค. โ ๐ ์ฐ์ํ ํ ํฌ๋ฌ๋ 3๊ธฐ ๊ทธ ์ฒซ ์๊ฐ ์๊ฐ..