IT์ ๊ด์ฌ ์๋ ๋ฐ๋ ๋์ผ ์ธ๋๋ฅผ ์ํ ๋ด์ค๋ ํฐ, 1 STEP์ ๋๋ค.
MEME ์ฌ์ฉ ์ค๋ช ์๋ IT ์ ๊ณ์์ ์์ฃผ ๋ณด์ด๋ MEME(์งค)์ ๋ํด ์ด์ผ๊ธฐํด๋ณด๊ณ ์ดํดํด ๋ณด๋ ์๊ฐ์ ๋๋ค!
๋ฉ๊ฒ๋ง ๋๊ปด์ก๋ IT ๋ถ์ผ์ ํ ๊ฑธ์ ํ ๊ฑธ์ ๋์๊ฐ ์ ์๋๋ก, 1 STEP๊ณผ ํจ๊ปํด์! ๐
๐งฏ ๊ฐ๋ฐ์ ํ์ฌ ์ ํ๋๊ฐ๋ น (feat. ์ด๋๊ฐ...pushํ๊ณ ๊ฐ์ผ์ง...)
๐ Git...๋๊ตฌ๋ ๋?
ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๊ณ ์์ผ์๊ฑฐ๋ ๊ฐ๋ฐ์ ๊ด์ฌ์ด ์๋ ๋ถ์ด์๋ผ๋ฉด, Git(๊น)์ด๋ผ๋ ๋จ์ด๋ฅผ ํ ๋ฒ์ฏค์ ๋ค์ด๋ณด์ จ์ ํ ๋ฐ์. ์์์ ๋ณด์ MEME๊ณผ ๊ฐ์ด ๐ป 'git commit', 'git push'์ฒ๋ผ ๋ช ๋ น์ด ํํ๋ก ์ฒ์ ์ ํ์ จ์ ์๋ ์๊ณ , ๐ ์ฑ์ฉ๊ณต๊ณ ์๊ฒฉ์๊ฑด์ 'Git ํ๊ฒฝ ์ ๊ฒฝํ์'๋ผ๋ ๋ฌธ๊ตฌ๋ก Git์ด๋ผ๋ ๋จ์ด๋ฅผ ์ฒ์ ๋ค์ด๋ณด์ จ์ ์๋ ์์ ๊ฒ ๊ฐ์๋ฐ์. ์ด๋ ๊ฒ ๋ค์ด๋ ๋ณด์์ง๋ง, ์ ํํ๋ ์์ง ๋ชปํ๋ Git! ๋๋์ฒด Git์ด ๋ฌด์์ธ์ง๋ถํฐ ๋จผ์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Git์ ํ๋ก๊ทธ๋จ ๋ฑ์ ์์ค ์ฝ๋ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ธ๋ฐ์. ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๋ ํ์ผ์ด ์ ๋ฐ์ดํธ, ์์ ๋ฑ์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ์๊ฐ์ ๋ฐ๋ผ ๊ธฐ๋กํ๋ฉฐ, ์ถํ์ ํน์ ์์ ์ด๋ ํน์ ๋ฒ์ ์ ๋ค์ ๋ถ๋ฌ์ฌ ์ ์๋ ์์คํ ์ ๋๋ค. ์ฝ๊ฒ ์๋ฅผ ๋ค์ด๋ณด์๋ฉด, ๐ฑ1 STEP์ด๋ผ๋ ์ฑ์ด ๋ฒ์ 1.0์ผ๋ก ์ถ์๋๊ณ , ๋ฉฐ์น ๋ค ๋ฒ์ 1.1๋ก ์ ๋ฐ์ดํธ๋ฅผ ํ์๋๋ฐ์. ๋ฒ์ 1.1์ ์น๋ช ์ ์ธ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํด ๋ฒ์ 1.0์ผ๋ก ๋ค๊ธํ๊ฒ ๋๋๋ฆฌ๋ ค๊ณ ํ ๋, ๋ฒ์ 1.0์ ๋ค์ ๋ถ๋ฌ์ฌ ์ ์๋๋ก ๋ฐ๋ก ์์ค ์ฝ๋๋ฅผ ๊ด๋ฆฌํ๋ ์์คํ ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๋ผ๊ณ ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ด๋ ์ฌ๋ฌ ๋ฒ์ ์ด *๋ก์ปฌ ํน์ ํ๋์ **์ค์ ์๋ฒ์์๋ง ๊ด๋ฆฌ๋๊ณ ์๋ค๋ฉด ๊ต์ฅํ ์ํํ๊ฒ ์ฃ ? ๋ถ๋ฌ์ค๋ ค๋ ๋ฒ์ ์ด ๋ก์ปฌ์์ ์ญ์ ๋์๊ฑฐ๋ ์ค์ ์๋ฒ๊ฐ ๋ค์ด๋ ์ํฉ์ด๋ผ๋ฉด, ๋น์ฅ ๋ด์ผ ํ ๋ฒ์ ์ ์ด๋์๋ ์ฐพ์ ์ ์๋ ๊ฒ์ด๋๊น์. ์ด๋ ๋ฏ ๋ก์ปฌ/์ค์ ์๋ฒ ๋ฒ์ ๊ด๋ฆฌ์ ์ํ์ฑ์ผ๋ก ์ธํด ํ์ผ ๋ฒ์ ๊ด๋ฆฌ์๋ ๋ถ์ฐํ๊ฐ ์ด๋ฃจ์ด์ก๋๋ฐ์. ๊ทธ๊ฒ ๋ฐ๋ก ๐ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๋๋ค.
* ๋ก์ปฌ VCS(๋ฒ์ ๊ด๋ฆฌ ์์คํ
) : ์๋ฒ ์์ด ๋ก์ปฌ ์ปดํจํฐ ๋ด์์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ๊ฒ
** ์ค์ ์๋ฒ : ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ณ๋๋ก ๊ตฌ์ฑํ ์๋ฒ
๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ *์ ์ฅ์๋ฅผ ํ์คํ ๋ฆฌ์ ํจ๊ป ์ ๋ถ ๋ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ง๋ ๐พ ์ง์ ํ ๋ฐฑ์ ์ด๋ผ๊ณ ๋ณด์๋ฉด ๋๋๋ฐ์. ๋ก์ปฌ์์ ํด๋น ํ์ผ์ด๋ ํด๋๋ฅผ ์ญ์ ํ๋๋ผ๋, ์ ์ฅ์๊ฐ ๋ณต์ ๋ณธ์ ์ง๋๊ณ ์๊ธฐ ๋๋ฌธ์ ์ข ๋ ์์ ํ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๋ํ, ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์์๋ ์๊ฒฉ ์ ์ฅ์ ์ ์ฉ ์๋ฒ์์ ๊ด๋ฆฌ๋๋ ๋ฆฌ๋ชจํธ ์ ์ฅ์(์๊ฒฉ ์ ์ฅ์)๊ฐ ์กด์ฌํ๋๋ฐ์. ์๊ฒฉ ์ ์ฅ์๋ ๋ง ๊ทธ๋๋ก ์ธํฐ๋ท์ด๋ ๋คํธ์ํฌ ์ด๋๊ฐ์ ์๋ ๋ฐ๋ก ์กด์ฌํ๋ ์ ์ฅ์๋ก ๋ก์ปฌ์์ ์์ ํ ๋ด์ฉ์ ์ ๋ก๋ํ์ฌ ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ํ์ ํ ์ ์๋๋ก ํด์ฃผ๋ ์ ์ฅ์์ด๊ธฐ ๋๋ฌธ์ ๋์์ ๐ค ์ฌ๋ฌ ์ฌ๋๊ณผ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ํ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
๊ฐ๋ฐ์๋ค์ ๋ฒ์ ์ ์ด ๋ฐ ๊ณต๋ ์์ ์ ์ง์ํ๋ ์๋น์ค์๋ ๋ํ์ ์ผ๋ก Github๊ณผ Gitlab์ด ์์ผ๋ฉฐ, ์๋น์ค ์ด์ฉ์ ํตํด ์๊ฒฉ ์ ์ฅ์๋ฅผ ์์ฑํ์ฌ ๊ด๋ฆฌํ ์ ์๋๋ฐ์. Github๊ณผ Gitlab ๋ ์๋น์ค ๋ชจ๋ ๊ณต๊ฐ์ ๋น๊ณต๊ฐ ์ ์ฅ์๋ฅผ ๊ฐ์ธ ํน์ ํ์๊ฒ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ํฐ ์ฐจ์ด์ ์ ์กด์ฌํ์ง ์์ต๋๋ค. ๋ค๋ง, Github์ด ์ฌ์ฉ์๊ฐ ๋ ๋ง์ ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ์งํํ๊ธฐ์ ๋ณด๋ค ์ ํฉํ๋ฉฐ ์๋ฒ๋ ์ข ๋ ์์ ์ ์ด๊ธฐ ๋๋ฌธ์, ์์ง์ Github์ ์ ํธํ๋ ์ฌ๋๋ค์ด ๋ ๋ง๋ค๊ณ ๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
* ์ ์ฅ์ :ํ์ผ์ด๋ ํด๋๋ฅผ ์ ์ฅํด ๋๋ ๊ณณ์ผ๋ก ๊ฐ์ธ ์ ์ฉ ์ ์ฅ์์ธ ๋ก์ปฌ ์ ์ฅ์์ ์๊ฒฉ ์ ์ฅ์ ์ ์ฉ ์๋ฒ์์ ๊ด๋ฆฌ๋๋ ์๊ฒฉ ์ ์ฅ์๊ฐ ์์
๐ค Git ์ฌ์ฉ...CLI vs GUI?
Git ์ฌ์ฉ์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋๋ฐ์. ๋จผ์ CLI(Command Line Interface)๋ ์ฌ์ฉ์๊ฐ ์์ ๊ฐ์ ์ฐฝ(terminal)์ ๋ฌธ์์ด ํํ๋ก ๋ช
๋ น์ ์
๋ ฅํ์ฌ Git์ ์ฌ์ฉํ๋ ๊ฒ์ธ๋ฐ์. ์ฒ์ ๋ณธ MEME์์ ๋์จ git commit, git push๋ ๋ชจ๋ ์ด์ ๊ฐ์ ๋ช
๋ น์ด์
๋๋ค.
Git ๋ช ๋ น์ด์ ๋ํ ๊ฐ๋จํ ์ค๋ช ์ ํด๋น ์์์ ์ฐธ๊ณ ํด์ฃผ์๋ฉด ์ข ๋ ์ฝ๊ฒ ์ดํดํ์ค ์ ์๋๋ฐ์. ๋ง์ฝ, ์ด๋ฏธ ๋ช ๋ น์ด์ ๋ํ ๊ฐ๋ ์ด๋ commit, push ๊ฐ์ ๊ฐ๋จํ ๋ช ๋ น์ด๊ฐ ์ต์ํ์๋ค๋ฉด ๋ค์ํ ๋ช ๋ น์ด ๋ชฉ๋ก์ ์ดํด๋ณด์๋ฉด์ ์ ์ฉํ ๋ฒํ ๋ช ๋ น์ด๋ฅผ ์ฐพ์๋ณด์ ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
CLI์ ๊ฐ์ด ๋ช ๋ น์ด๋ก ์ง์ Git์ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ํด ๋ณด์๋๋ฐ, ์ด ๋ฐฉ๋ฒ์ด ๊ท์ฐฎ๊ฑฐ๋ ์ฌ์ฉ์ด ์ด๋ ค์ฐ์ จ๋์? ๊ทธ๋ ๋ค๋ฉด, ๋ช ๋ น์ด๋ ์์ ์ ์ดํดํ๊ธฐ ์ฝ๋๋ก ํ๋ก์ ํธ ํ์คํ ๋ฆฌ๋ฅผ ์๊ฐํํ์ฌ ๋ณด์ฌ์ฃผ๋ GUI(Graphical User Interface) ํ๋ก๊ทธ๋จ์ ํตํด Git์ ์ฌ์ฉํ ์๋ ์๋๋ฐ์. Git GUI ํด์๋ Github Desktop, Source Tree ๋ฑ์ด ์์ผ๋ฉฐ VSCode, IntelliJ์ ๊ฐ์ ๋ค์ํ ํตํฉ๊ฐ๋ฐํ๊ฒฝ(IDE)์์ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ ํน์ ํ๋ฌ๊ทธ์ธ์ผ๋ก์ GUI ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ๋ ํ๋ฏ๋ก, ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ Git์ ์ฌ์ฉํด ๋ณด์ ํ์ ๊ฐ์ธ์ ์ผ๋ก ๋ ํธํ๋ค๊ณ ๋๋ผ๋ ๋ฐฉ์์ผ๋ก ์ ์ฐฉํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!
๐ 1๋ถ ์ ๋จธ | Git Blame
git blame(ํ์ผ ์ด๋ ธํ ์ด์ )์ ํ์ผ์ ํ์ค ํ์ค๋ง๋ค ๋ง์ง๋ง์ผ๋ก ์ปค๋ฐํ ์ฌ๋์ด ๋๊ตฌ์ธ์ง, ์ธ์ ์ปค๋ฐํ๊ฑด์ง ๋ณด์ฌ์ฃผ๋ ๋ช ๋ น์ธ๋ฐ์. ๋๋ฒ๊น ์์ ๋๊ฐ/์ธ์ ํด๋น ํ์ผ์ ์์ ํ ๊ฒ์ธ์ง์ ๋ํ ์ด๋ ฅ์ ์ฝ๊ฒ ํ์ ํ ์ ์์ด, ์ค๋ฅ ์์ธ์ ํ์ ํ๊ธฐ ์์ํด์ง๊ธฐ์ ์์๋๋ฉด ์ ์ฉํ ๋ช ๋ น์ด์ ๋๋ค. ๋ฌผ๋ก ํตํฉ๊ฐ๋ฐํ๊ฒฝ(IDE)์์ git blame ๋ด์ฉ์ ์ฝ๊ฒ ๋ณผ ์ ์๋ ํ๋ฌ๊ทธ์ธ ๋ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ด์, ํด๋น ๋ช ๋ น์ด๋ฅผ ์ธ์ธ ํ์๋ ์ ํ ์์ง๋ง์!
๋ํ, MEME์ ์ํฉ๊ณผ ๊ฐ์ด ํ๋ก์ ํธ์ ์ฝ๋๋ฅผ ๋ณด๋ค๊ฐ '์ด๊ฑด ๋๊ฐ ์ด๋ ๊ฒ ์ง ๊ฑฐ์ง?'ํ๊ณ ์ง์ฆ์ด ๋ ๋๊ฐ ์๋๋ฐ์. ์ด๋, git blame์ ํด๋ณด๋ฉด ๊ทธ ๋๊ตฌ๋ ์๋ ๊ณผ๊ฑฐ์ ๋์์์ ํ์ธํ๊ณ ๋จธ์ฑํ๊ฒ ํ์ธ ์ฐฝ์ ๋ซ๊ฒ ๋๋ ์ํฉ๋ ๋ฒ์ด์ง๊ณค ํ๊ธฐ ๋๋ฌธ์, git blame์ ์ค๋ฅ ์์ธ์ ํจ์จ์ ์ผ๋ก ์ฐพ๊ธฐ ์ํด์๋ง ์ฐ๋ ๊ฒ์ด ์ข๊ฒ ์ต๋๋ค.
์ค๋ ๋ด์ค๋ ํฐ, ์ด๋ ์ จ๋์? ๐
์ ์ตํด์๐ / ์์ฌ์์ ๐ฅบ
ํผ๋๋ฐฑ์ 1 STEP์ด ๋ ์ข์ ์ฝํ ์ธ ๋ฅผ ๊ณ ๋ฏผํ๊ณ ๋ง๋๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค.
์ค๋์ ์์ฌ์ ๋ ์ , ์นญ์ฐฌ, ์ฃผ์ ๊ฑด์๋ฅผ ๋ถํ๋๋ ค์ ๐
์๊ฒฌ์ ๋จ๊ฒจ์ฃผ์ธ์