๐ ๋ฐ๋ฏธ์ ์ ๊น&๊นํ๋ธ ์ ๋ฌธ
๊ณจ๋ ๋๋น ์ถํ์ฌ๋ก๋ถํฐ ์ฑ ์ ์ ๊ณต๋ฐ์ ์์ฑํ์ต๋๋ค.
โน๏ธBook Infoโ
์ฑ ์ด๋ฏธ์ง๋ฅผ ํด๋ฆญํ๋ฉด ๊ต๋ณด๋ฌธ๊ณ ์ฌ์ดํธ๋ก ์ด๋ํฉ๋๋ค!
- ์ ๋ชฉ: ๋ฐ๋ฏธ์ ์ ๊น&๊นํ๋ธ ์ ๋ฌธ
- ์ ์: ๋ฐ ๋ฏธ์
- ์ถํ์ฌ: ๊ณจ๋ ๋๋น
- ์ถ๊ฐ: 2021-09-13
๐ฌIntroโ
์ด ์ฑ ์ ์ ์๋ ํ์ด์ค๋ถ ์ผ๋(Early ๋๋ผ์ด) ๊ทธ๋ฃน์ ์ด์ํ์๋ ์ด์์ง ์ค ํ ๋ถ์ด๋ฉฐ, ๋ฐฐ๋ฏผ ๋ฒ ํธ๋จ์ ๊ฑฐ์ณ ํ์ฌ ๋ฌด์ ์ฌ์ ๊ณ์ ๋ฐ๋ฏธ์ ๋์ด๋ค. ์ ๋ง ๋ฐฐ์ธ ์ ์ด ๋ง๋ค๊ณ ์๊ฐํ๋ ๊ฐ๋ฐ์ ๋ถ ์ค ํ ๋ถ์ด๋ค. ๊ธฐํ๊ฐ ๋๋ค๋ฉด ํ์์์ **์ฑ์ฅํ๋ ๊ฐ๋ฐ์์ '๊ณต์ ์ ๊ธฐ์ '**์ด๋ผ๋ ์ฃผ์ ๋ก ๋ฐํํ์ ์๊ฐ ์ฝ๋๋ฆฌ๋ทฐ ver_0.1: ์ปค๋ฆฌ์ด ์ฑ์ฅ CODE๋ฅผ ๋ณด๋ ๊ฒ๋ ๊ฐ๋ฐ์๋ก์ ์ฑ์ฅํ๋๋ฐ ๋์์ด ๋ ๊ฒ์ด๋ค.
์ฑ ์ด ์ถ๊ฐ๋๊ธฐ ์ ๋ฒ ํ๋ฆฌ๋๋ฅผ ๋ชจ์งํ์ ๋, ์ ์๋ฅผ ํฅํ ๊ฐ์ธ์ ์ธ ํฌ์ฌ์ผ๋ก ์ ์ฒญํ์ผ๋ ๋จ์ด์ก์๋ค. ๊ทธ๋ฌ๋ ์ถ๊ฐ๋ ์ดํ ๊ณจ๋ ๋๋น ์ถํ์ฌ์์ ๋ถ์คํฌ์ผ๋ฌ๋ฅผ ๋ชจ์งํ๊ณ , ์ง์ํ์ฌ ์ด ์ฑ ์ ์ฝ์ ์ ์๊ฒ ๋๋ค. ์ด๋ฒ์๋ ๊ฐ์ธ์ ์ธ ํฌ์ฌ ๋๋ฌธ์ด ์๋๋ผ git์ ํ์ฉํ์ฌ ํ์ ํ ์ค ์๋ ์ฌ๋์ด ๋๊ณ ์ถ๋ค๋ ๋ง์์ด ๋ ์ปธ๋ค. ๋ํ์์ ์คํ์์ค ๊ด๋ จ ์์ ์ ๋ค์ด git์ ๊ธฐ๋ฅ์ ์ด๋์ ๋ ํ์ฉํ ์ ์์์ง๋ง, ๋จ์ํ commit, push์ ์ต์ํ ์ฌ๋์ด ์๋๋ผ branch ๋ณ๊ฒฝ, merge, pull request ๋ฑ์ ๊ธฐ๋ฅ์ ์ธ ์ค ์๋ ํ์ ์ ์ต์ํ ์ฌ๋์ด ๋๊ณ ์ถ์๋ค.
๊ณจ๋ ๋๋น ์ถํ์ฌ์์ ๋ชจ์งํ๋ ๋ถ์คํฌ์ผ๋ฌ๋ ์ด๋ค ์ฑ ์ด ์ข์ ์ฑ ์ธ์ง ์ง์ํ๊ฒ ์๋ ค์ค ๋ ์๊ฐ ์ข์ ์ฑ ์ ์ ํํ ์ ์๊ฒ ๋๋ ์คํฌ์ผ๋ฌ๋ฅผ ์๋ฏธํ๋ค. ์ฃผ๋ก ๊ณจ๋ ๋๋น ์ถํ์ฌ์ ํ์ด์ค๋ถ ํ์ด์ง ๋๋ ์ด๋ฉ์ผ์ ํตํด ๋ชจ์งํ๋ฏ๋ก ์ํ ๋ ์ฃผ์ ์ ์ฑ ์ด๋ผ๋ฉด ์ง์ํด๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค.
๐Book Reviewโ
์๋๋ฆฌ์คโ
์ด ์ฑ ์ ์๋๋ฆฌ์ค๋ผ๋ ๋ค๋ฅธ ์ฑ ๊ณผ ๊ตฌ๋ณ๋๋ ์ฌ๋ฐ๋ ๋ถ๋ถ์ด ์๋ค. ๋ง ๊ทธ๋๋ก ๊ฐ๋ณธ์ด๋ค. ์ด์ ์ ๋ฐฐ์ด ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ ์์ ์งํ๋๋ ํ๋ก์ ํธ ํ๋ก์ธ์ค๋ฅผ ๊ทธ๋๋ก ๊ฒฝํํด๋ณผ ์ ์๋ ๋ถ๋ถ์ด๋ค. ๋ ๊ฐ์ ์๋๋ฆฌ์ค๊ฐ ์กด์ฌํ๋ฉฐ, ๋จ์ํ ์ค์ต์ด ์๋๋ผ ์ง์ง ํ์ ์์ ์ผ์ด๋ ๋ฒํ ์ผ๋ค์ด์๋ค. ํนํ Node.js์ Express๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์ด ์ธ์ ๊น์๋ค. ๋จ์ํ ๋งํฌ๋ค์ด ํ์ผ์ ์์ ํ๋ ์ค์ต์ด ์๋๋ผ์ "์๋๋ฆฌ์ค์ ์ง์ฌ์ด๊ตฌ๋."๋ผ๊ณ ์๊ฐํ๋ค. ๋จ์ํ ์๋ฒ๋ฅผ ์ผ๊ณ localhost์์ ์์ ์ฌํญ์ ํ์ธํ๋ ์ ๋๋ผ Node.js์ Express์ ๊ฒฝํ์ด ์์ด๋ ๋ฐ๋ผํ ์ ์๋ ์์ ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
๊นํ๋ธ์ ์ด์๋ ํ๋ก์ ํธ ๋ณด๋๋ฅผ ์ฌ์ฉํด์ ์ค์ ์๊ตฌ์ฌํญ์ ์ฝ๋์ ๋ฐ์ํ๋ ๊ณผ์ ์ ๋ณด์ฌ์ค์ผ ํ๋๋ฐ .md ํ์ผ ์์ ๋ง์ผ๋ก๋ ํ๊ณ๊ฐ ์์ต๋๋ค.
๋ฐฐํฌ ๋ฐ ์๋ํโ
์์์๋ ์ธ๊ธํ๋ฏ์ด ๋ค๋ฅธ ์ฑ ๋๋ ๊ฐ์์์๋ Git, GitHub ์ค์ต์ ๊ฐ๋จํ ํ์ผ ์์ ์ผ๋ก ์งํํ์ ํ ๋ฐ ์ด ์ฑ ์์๋ Node.js ๊ธฐ๋ฐ์ผ๋ก ์งํ๋๋ค. ๊ทธ ์ด ์ ๋ ์๋ง 'GitHub Actions๋ฅผ ์ด์ฉํด๋ณด๊ธฐ ์ํด์'๋ผ๋ ์ด์ ๋ ์์์ง ์์์๊น ์ถ์ธกํด๋ณธ๋ค. ๋๋ถ๋ถ์ ์ฑ ์์ GitHub Actions๊น์ง ์ค๋ช ํ๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ๋ค๊ณ ์๊ฐํ๊ธฐ์ ์๋นํ ์ธ์์ ์ด์๋ค.
GitHub Actions์ ๊ฐ๋จํ ์ฌ์ฉ๋ฒ์ ๋ฐฐ์๋ณด๊ณ AWS ECS์ Azure Web App Service์ ๋ฐฐํฌ ์๋ํ๋ฅผ ์ค์ ํด๋ณธ๋ค. ์ด ๋ถ๋ถ์ ์์ธํ๊ฒ ์ค๋ช ํ์ง๋ ์๊ณ , '์ด๋ฐ ๋ฐฉ๋ฒ๋ ์๋ค.'๋ผ๋ ๋๋์ผ๋ก ์๊ฐํ๋ค. AWS, Azure๊น์ง ์์ธํ ์ค๋ช ํ๋ ๊ฒ์ ์ฑ ์ ์ทจ์ง์ ๋ง์ง ์๊ธฐ์ ๊ฐ๋จํ๊ฒ ์๊ฐ๋์ด ์๋ ๊ฒ ๊ฐ๋ค.
VSCode ๊ธฐ๋ฅ ์ฌ์ฉํด๋ณด๊ธฐโ
์์ ์ ๋๋ CLI(Command-Line Interface) ํ๊ฒฝ์์ Git ๋ช ๋ น์ด๋ฅผ ์ง์ ์ ๋ ฅํ๊ณ ์คํํ๋ ๊ฒ์ด ๋๋ฌด ๋ฒ๊ฑฐ๋กญ๋ค๊ณ ์ฌ๊ฒผ๋ค. ์ฒ์ ๊ณต๋ถํ์ ๋๋ "์ด๊ฑธ ๊ตณ์ด command๋ฅผ ๋ค ์ธ์ฐ๊ณ ์์ด์ผ ํ ๊น?"๋ผ๋ ์๊ฐ์ ํ์ฌ Sourcetree, GitHub Desktop, TortoiseGit ๋ฑ๊ณผ ๊ฐ์ GUI(Graphical User Interface) ํด์ ์ฌ์ฉํ์๋ค. (๊ทผ๋ฐ ๊ฒฐ๊ตญ ์์ฃผ ์ฐ๊ณ ์ฌ์ด ๋ช ๋ น์ด๋ค์ ๋ค ์ธ์ฐ๊ฒ ๋๋๋ผ...๐คฆโโ๏ธ) ์ ๋ฐ ํด๋ค๋, command๋ ๋ค ์ข์ง๋ง ์ต๊ทผ์ ๋๋ VSCode๋ฅผ ์ ์ฉํ๋ค.
์ด ์ฑ ์ ๊น ๋ช ๋ น์ด๋ฅผ ์ง์ ์คํํ๊ณ ๋ฐ๋ณตํ๋ฉฐ ๊น์ ์ต์ํด์ง๋ ๊ฒ์ ์ด์ ์ ๋ง์ถ๊ณ ์์ผ๋ ๋ถ๋ก์๋ VSCode๋ฅผ ํตํด ์ด๋ป๊ฒ commit๊ณผ push๋ฅผ ํ๋์ง ์๊ฐ๋์ด ์๋ค. ๋๋ ๋๊ณ ๋์ VSCode์ ์ ์ฐฉํ๋๋ฐ ์ด ์ฑ ์ ์ฝ๋ ์ฌ๋์ ์ด๋ฐ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด ์๊ฐ์ ์ผ๋ก ๋๋ฌด ๋ถ๋ฌ์ ๋ค. ์ด๋ฐ ๊ฒ ์ฑ ์ด ์ฃผ๋ ํ์ด ์๋๊ฐ ์ถ๋ค. ๊ทธ๋ ๋ค๊ณ ํด์ Git ๋ช ๋ น์ด๋ฅผ ๋ชฐ๋ผ๋ ๋๋ค๋ ๊ฒ์ ์๋๋ค. ์ด๋ ํ ๊ฐ๋ฐ์๊ฐ ๋๋ CLI ํ๊ฒฝ์ด ์ต์ํ๋ฉด ๋ ์ ๋ฆฌํ ์๋ ์๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ฌ๋ ์ด ์ฑ ์ ํตํด ์ฐ์ตํด๋ณด๊ณ ๊ณต๋ถํ ์ ์๋ ๊ธฐํ๊ฐ ๋๊ธธ ๋ฐ๋๋ค.
์ฝ๊ฒ ์ค๋ช ๋์ด์ง ์ฑ โ
๋ ์์ ์ Git์ ์ํ์ฝ๋ฉ ๊ฐ์์ Pro Git์ผ๋ก ๊ณต๋ถํ์๋ค. GitHub๋ ๋ฐ๋ก ์ธํฐ๋ท์์ ๋ฌธ์๋ค์ ๋ง ์ฐพ์๊ฐ๋ฉด์ ๊ณต๋ถํ์๋ค. ์๋ฌด ์๊ฐ ์์ด ์ฑ ์ผ๋ก Git์ ๊ณต๋ถํ๋ค๊ฐ ๋ ๋ฒ ์ ๋ ํฌ๊ธฐํ๋ ๊ฒฝํ๋ ์๋ค. tracked, staged ๋ฑ ๊ด๊ณ๋ฅผ ์ดํดํ๋ ๋ฐ ๋จธ๋ฆฌ๊ฐ ์ํ ์๋ค. ์ด ์ฑ ์ ์ฝ๊ฒ ์ค๋ช ๋์ด ์์ด ๊ทธ๋ด ์ผ์ด ์๋ค.
๋ํ, ๋ ์๋ฅผ ๋ฐฐ๋ คํ๋ ์ธ์ธํ ๋ถ๋ถ๋ค์ด ๋ง์๋ค. ํธ์ง์์ด์ ์๊ฐ์ด ์ฑ ์ผ๋ก, ๋ฐ๋ฏธ์ ์ ๊น&๊นํ๋ธ ๋ง ์ฝ์ด๋ด๋ ์ ์ ์๋ค. ์ ๋ง ๋ ์๋ฅผ ์ํ๊ณ ๊น๋ํ๊ฒ ์ ๋ฆฌ๋์ด ์๋ ์ฑ ์ ์ฝ์ด ๋ณด๊ณ ์ถ๋ค๋ฉด ์ด ์ฑ ์ ์ถ์ฒํ๋ค.
๐งโ๐ซ๋์ ๋ ์โ
Git๊ณผ GitHub๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ ์ง ์์์ผ ํ๋ ํ์ ์ง์์ด ๋์ด๋ฒ๋ ธ๋ค. ๊ธฐ์ ์ด ๋ ์ด๋ป๊ฒ ๋ฐ๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง, GitHub๋ ๊ฐ๋ฐ์๋ค์ ์์ ๋ฏธ๋์ด ๊ฐ์ ๋๋์ด๋ผ ์ ์ฉํ ์ ๋ณด์ ์ฝ๋๊ฐ ๋ง์ด ์ฌ๋ผ์จ๋ค. ๊ฐ๋ฐ์๋ฅผ ๋ชฉํ๋ก ํ๋ค๋ฉด ์ผ์ฐ ๋ฐฐ์ฐ๋ฉด ๋ฐฐ์ธ์๋ก ์ข๋ค.
์ด ์ฑ ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ์ ๋ฌธ์์ด๋ฉด์ ์ค์ ๋ก ํ์ ํ๋ ๊ฒ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๊ฒฝํํด๋ณผ ์ ์๋ค๋ ์ ์ด๋ค. Git๋ ์ฌ์ค ์ฌํ์ ์ธ ๋ถ๋ถ์ผ๋ก ๋ค์ด๊ฐ๋ฉด submodule ๋ฑ์ ๋ด์ฉ์ด ์์ง๋ง ๊ทธ๋ฐ ๋ด์ฉ์ ์ ์ธํ๊ณ ์ ๋ง ์ค์ ๋ก ์์ฃผ ์ฐ์ด๋ ๋ด์ฉ๋ง ๋ด๊ฒจ ์์ผ๋ Git๊ณผ GitHub์ ์ต์ํ์ง ์์ ์ ๋ฌธ์์๊ฒ ์ถ์ฒํ๋ค.