ํด๋น ๊ธ์ ๊น์ ํตํด ๋ฌธ์ํ์ ๋ฐฑ์ , ๋ฒ์ ๊ด๋ฆฌ ๋ฑ์ ํตํด ๋ณด๋ค ํจ์จ์ฑ์ ์ถ๊ตฌํ๊ณ ์..! ์ ๋ง๋๋ก, ์ ์์๋๋ก, ์ ์ ๋ง๋๋ก! ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
๋ค์ ๊ฐ๋ ๋ค์ด ๋์กํ๊ณ ์ดํดํ๊ธฐ ํ๋ค๋ค๊ณ ๋๋ผ์ค ์ ์์ต๋๋ค. ๊ทธ๋๋ ์ ๋ง์ ๋ฐฉ์์ผ๋ก ์ดํดํ๊ธฐ ์ฝ๊ณ , ์ต๋ํ ๊ฐ๋จํ๊ฒ ์์ฑํ๊ธฐ์ ๋จ์ํ ์ ๋ฆฌ์์ ๊ทธ์น๋ ๊ฒ์ด ์๋, ์ฌ๋ฌ๋ถ์ ํ์ต๊ณผ ์๋ฌ์ ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
<์ฃผ์!> ๊ฐ๋ ์ ์ธ ์ค๋ฅ์ ํ๋ฆฐ ๋ถ๋ถ์ด ์ธ์ , ์ด๋์๋ ๋ฐ์ํ ์ ์๊ธฐ์ ํด๋น ๋ถ๋ถ์ ๋ํ ํผ๋๋ฐฑ์ด ์๋ค๋ฉด ์ธ์ ๋ ํ์์ ๋๋ค.
0. 'GIT' ์ด ๋ญ์ง?
์์ญ ๋ ๋์ ์๋ง์ ํ์ผ๊ณผ ์ ๋ณด๋ค์ด ๋์์์ด ๋ณํํ๊ณ ๋ณต์ ๋๊ณ ์๋ค๋ฉด... ์ฐ๋ฆฐ ๊ทธ ๋ฌธ์, ์ ๋ณด๋ค์ ์ด๋ป๊ฒ ๋ณด๊ดํ๊ณ ์ด์ด๋ณด๋ฉฐ ๊ณ์ํด์ ์ฌ์ฉํ ์ ์์๊น? ์ฐ๋ฆฐ ์ด ๋ฌธ์๋ค๊ณผ ์ ๋ณด๋ฅผ ๋ณด๋ค ์ ๋๋๊ณ , ๋ณด๊ธฐ ํธํ ํ๊ฒฝ์์ ๋ณด๊ณ ์ถ์ด ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ณด๊ธฐ ํธํ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ ๋๊ตฌ๊ฐ ๋ฐ๋ก 'GIT'์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ ์ปจํธ๋กค๊ณผ GIT์ด๋ผ๋ ๋๊ตฌ์ ๋ํด ์์๋ณด์.
GIT? ๊ทธ๊ฒ ๋ญ์ผ?
1. 'Version' (๋ฒ์ )
๋ฒ์ ? ์ฉ๋ก? ๊ฐ์ธ์ ์ผ๋ก ์ด 'version'์ ๋ํด ํ ๋ฌธ์ฅ์ผ๋ก ์ ์ํ ์ ์๋ค๋ฉด, 'ํ์ผ์ ๋ค๋ฅธ ์ํ' ๋ผ๊ณ ๋งํ๊ณ ์ถ๋ค. ํ๋์ ๋์ผํ ์ ๋ณด๋ฅผ ๋ฒ์ 1, ๋ฒ์ 2, ๋ฒ์ 3 ์ฒ๋ผ ์๋ก ๋ค๋ฅธ ์์ ์ ํ๊ณ ๋ ๋ค์ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ํ๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ณด๋ค ์ค๋ช ์ ์ฉ์ดํ๊ฒ ํ๊ณ ์ ํ ๊ฐ์ง ์์๋ฅผ ๋ค๊ณ ์๋ค.
์ด๋ฆ๊ณผ ์๋ ์์ผ, ๋์ด ์ ๋ณด๊ฐ ๋ด๊ธด file1์ด ์๋ค๊ณ ๊ฐ์ ํ์. ์ฐ๋ฆฌ๋ ์ด ๊ธฐ์กด์ ํ์ผ์์ '์๋ ์ ์ ๋ฌด'์ ๋ํ ์ ๋ณด๋ฅผ ๋ค์ ์ ๋ ฅํ๊ณ ์ถ๋ค. ๊ทธ๋ ๊ฒ ํ๊ธฐ ์ํด์ , ๊ธฐ์กด์ 3๊ฐ์ง๋ง ๋ค์ด์๋ ์ ๋ณด๋ฅผ 4๊ฐ์ง๋ก ๋๋ฆฌ๋ '์์ '์ ๊ฑฐ์ณ์ผ ํ๋ค. file2๋ ๋ฐ๋ก ์๋ ์ ์ ๋ฌด ์ ๋ณด๋ฅผ ๋ฃ์ ๋ ๋ฒ์งธ ๋ฒ์ ์ด๋ค.
Ex)
'File1'
1. ์ด๋ฆ, 2. ์๋ ์์ผ, 3. ๋์ด
'File2'
1. ์ด๋ฆ, 2. ์๋ ์์ผ, 3. ๋์ด
+) 4. ์๋ ์ ์ ๋ฌด
์ด์ ์๋ ์ ์ ๋ฌด์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ ฅํ์ผ๋, ๋ค์ '์ ์์ '์ ๋ํ ์ ๋ณด๋ ์ ๋ ฅํ๊ณ ์ถ๋ค๋ฉด? ๋๊ฐ์ด 5 ๋ฒ์งธ ์ ๋ณด๋์ '์ ์์ ' ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ธ ๋ฒ์งธ ๋ฒ์ ์ธ file3์ด๋ค. ์ฐ๋ฆฌ๋ ์ด ์ ๋ณด๋ค์ด ๋ด๊ธด ํ์ผ์ ๋๊ณ ์๋ก ๋ค๋ฅธ '๋ฒ์ '์ด๋ผ๊ณ ํ๋ค.
'File3'
1. ์ด๋ฆ, 2. ์๋ ์์ผ, 3. ๋์ด, 4. ์๋ ์ ์ ๋ฌด
+) 5. ์ ์์
์, ์ฌ๊ธฐ๊น์ง๋ ๋๊ตฌ๋ ์ฝ๊ฒ ์ ๋ ฅํ๊ณ ์๋กญ๊ฒ ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค. ๊ทผ๋ฐ ๋ง์ฝ, ์ด๋ฐ ์ ๋ณด๋ค์ด 1000๊ฐ, 1๋ง ๊ฐ, 1์ต ๊ฐ๊ฐ ๋๋ค๋ฉด..? ์ผ์ผ์ด ์ ๋ณด๋ฅผ ์ ๋ ฅํ๊ณ ๋ค๋ฅธ ์ํ๋ก ์ ์ฅ์ด ๊ฐ๋ฅํ ๊น? ๋ถ๊ฐ๋ฅํ๋ค. ๊ทธ๋์ ๋ฑ์ฅํ ๊ฒ์ด ๋ฐ๋ก 'GIT'์ด๋ค. ๊ฐ๊ฐ์ '๋ณํ๋ง๋ค' ์กด์ฌํ๋ ๋ถ๋ช ํ ์ค๋ช , ๊ทธ๋ฆฌ๊ณ '์ธ์ ์์ 'ํ๋์ง์ ๋ํ ๊ธฐ๋ก์ ์ํด์ ์ด GIT์ด๋ผ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค.
2. 'Back Up' (๋ฐฑ์ )
์์์ GIT์ ์ฒซ ๋ฒ์งธ ๋ชฉ์ ์ด์๋ ๋ฒ์ ๊ด๋ฆฌ, ์ฆ ์ ๋ณด์ ๋ณํ ์์๊ณผ ๋ณํ๋ ์ํ๋ฅผ ์์๋ดค๋ค๋ฉด, ์ด์ ๋ ๊ธฐ๋ก์ ์ค์์ฑ์ ์์๋ณผ ์ฐจ๋ก๋ค. ์ฌ๋ฌ๋ถ์ ํ์ ํ ์ ์๋๊ฐ? ๋ณธ์ธ์ ์ปดํจํฐ์ ๋ ธํธ๋ถ์ด ์ฒ๋ ๋ง๋ ๊ณ ์ฅ๋์ง ์๊ณ ์ฌ์ฉ๋ ์ ์๋์ง? ์ฐ๋ฆฌ๋ ์ปดํจํฐ๊ฐ ์์ํ ๊ฒ์ด๋ผ๋ ํ์ ์ ๊ฐ๊ณ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. ๋ค๋ง ์ธ์ ๊ณ ์ฅ๋ ์ง ๋ชจ๋ฅด๋ ๋ถ์๊ฐ์ผ๋ก ์ธํด ๊ธฐ์กด์ ์ ๋ณด์ ํ๋ก์ ํธ๋ฅผ ๋ค๋ฅธ ๊ณณ์ ์ ์ฅํด์ผ ํ๋ค. ์ด๋ ๊ฑฐ์น๋ ๊ณผ์ ์ด ๋ฐ๋ก '๋ฐฑ์ (Back Up)'์ด๋ค.
๊ทธ๋ ๋ค๋ฉด GIT์์ ๋งํ๋ ์ด ๋ฐฑ์ ์ ๋ฌด์์ด๋? ์์์ ๋ค๋ฃจ์๋ ๋ฒ์ ๊ด๋ฆฌ์ ๋ฐฑ์ ์ ๋ชฉ์ ์ ์ฐ๊ด์์ผ๋ณด์. ํ์ผ์ ์ด์ ์ํ, ์์ ์ ํ๊ธฐ ์ด์ ์ ์ํ๋ฅผ ๊ณ์ํด์ ๋ด ์ปดํจํฐ์ ์ ์ฅ๋ง ํ๋ค๋ฉด, ์ธ์ ๊ฐ ์ ์ค๋ ์ฐ๋ ค๊ฐ ์๋ค. ๊ทธ๋์ GIT์ ์ด ๋ค๋ฅธ ์ํ์ ํ์ผ์ด ์ ์ค๋ ์ํ์ 'GITHUB'๋ผ๋ ์๋น์ค๋ฅผ ํตํด ๊ธฐ์กด์ ๋ด ์ปดํจํฐ์๋ง ์ ์ฅ๋์ด ์๋ ์ ๋ณด๋ค์ ์์ ํ๊ฒ ์ ์ฅํ ์ ์๊ฒ ํ๋ค.
GitHub: Let’s build from here
GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...
github.com
์๋ ๋ณด์ด๋ ์ฌ์ง์ ํ์์ ๊ฐ์ธ ์ปดํจํฐ(local repository)์๋ง ์ ์ฅ๋์ด ์๋ ํฌ๋กค๋ง ์ฝ๋์ ์ด์ปค๋จธ์ค ์ํ์ ๋ณ์ ์์ธก์ด ๊ฐ๋ฅํ ํ์ผ์ ๊นํ๋ธ(*public repository)์ ์ฌ๋ ค๋ ๋ชจ์ต์ด๋ค. ์ฌ๊ธฐ์ ๋งํ๋ repository๊ฐ ๋ฐ๋ก ์๊ฒฉ ์ ์ฅ์, ์ฆ ๋ฐฑ์ ์ ์์ ์ด ์ด๋ค์ง๋ ๊ณณ์ด๋ค.
*public repository (๊ณต์ฉ ์ ์ฅ์)
๊นํ๋ธ ๋ด๋ถ ๊ธฐ๋ฅ ๊ฐ์ด๋ฐ public/private๋ฅผ ๊ตฌ๋ถํ๋ ์ฉ์ด๋ก์จ ์ฌ์ฉ์ด ๋์ง๋ง, ์ฌ๊ธฐ์ local(๊ฐ์ธ ์ฌ์ฉ์)์ github(์จ๋ผ์ธ ์ ์ฅ์)๋ฅผ ๊ตฌ๋ถํ๊ณ ์ public์ด๋ผ๋ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋ ๊ฒ ํ์ผ์ ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ฆฌ๋ ๊ณผ์ ์ ์ฐ๋ฆฌ๋ 'PUSH' ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ง ๊ทธ๋๋ก ๋ด๊ฐ ์ํ๋ ์ ๋ณด๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ๋ฐ์ด๋ฃ๋ ๊ฒ! ๊ทธ๋ ๋ค๋ฉด ๋ฐ์ด๋ฃ์ ์ ๋ณด๋ฅผ ๋ค์ ๊ฐ์ ธ์ค๋ ๊ฒ๋ ๊ฐ๋ฅํ ๊น? ๋ฌผ๋ก ์ด๋ค. ์ฐ๋ฆฌ๋ ์๊ฒฉ ์ ์ฅ์๋ก๋ถํฐ ๋ด ์ปดํจํฐ๋ก ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ณผ์ ์ 'PULL'์ด๋ผ๊ณ ๋งํ๋ค.
3. 'Collaborate' (ํ์ )
๋ง์ง๋ง์ผ๋ก ํ์ ์ด๋ค. ์ด๋ค ์์ ์ ํด์ ์๊ฒฉ ์ ์ฅ์์ ์์ ๋ ํ์ผ์ ์ฌ๋ ธ๋ค๋ฉด, ์ด ์ ๋ณด๋ฅผ ๋ค๋ฅธ ์ฌ๋๋ ๋ณผ ์ ์์ด์ผ ํ์ง ์์๊น? GIT์ ๋ฒ์ ๊ด๋ฆฌ์ ๋ฐฑ์ ์ ๊ธฐ๋ฅ๋ ์ ๊ณตํ์ง๋ง ์ด collaborate, ํ์ ์ ๋ชฉ์ ๋ ๊ฐ๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ PUSHํ ์ ๋ณด๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ์ ์ฅํ๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ ์ ๋ณด๋ฅผ PULL๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค๊ณ ๋ ์ธ๊ธํ๋ค. ๊ทผ๋ฐ ์ด๊ฑด ๋น๋จ ํ ์ฌ๋์ ์ฌ์ฉ์์๊ฒ๋ง ๊ตญํ๋์ง ์๋๋ค. ์ฆ, ๊ฐ์ด ์ผํ๋ ์ฌ๋๋ค๋ ๋ง์ฐฌ๊ฐ์ง๋ก PUSHํ๊ณ PULLํ ์ ์๋ ์ฌ์ค!!
GIT์ ํ์ ์ ํ๋ฉด์ ๋ฐ์ํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฌธ์ ๋ค์ ์๋ํํ์ฌ ํด๊ฒฐํ๋ค. ํ ๊ฐ์ง ์์๋ก, ์์ ๋ค๋ฃจ์๋ file ์ ์์๋ฅผ ์ดํด๋ณด์.
Ex)
'File1'
1. ์ด๋ฆ, 2. ์๋ ์์ผ, 3. ๋์ด
> ๊ธฐ์กด์ ์ธ๋ฌผ ์ ๋ณด๋ฅผ ์๋ก์ด ์ธ๋ฌผ๋ก ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํ๊ฒ ๋๊ฐ? ๋์ผํ ํ์ผ ์์ ๋ฎ์ด์์ฐ๊ณ ์๋กญ๊ฒ ์ ์ฅํด์ผ ํ๋ค. "๊ทธ๋ ๋ค๋ฉด ๊ธฐ์กด์ ์ธ๋ฌผ ์ ๋ณด๋ ์ด๋ป๊ฒ ํ๊ณ ?" ๋ผ๋ ์๋ฌธ์ด ๋ค ์ ์๋ค. GIT์ ํ์ผ์ ์ด์ ์ํ๋ฅผ ์ ์ฅํ๊ณ ๋ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ํ์ง๋ง, ๋์์ ํ์ ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋๋ผ๋งํฑํ๊ฒ ํด๊ฒฐํ๋ค.
(์์ธํ ๋ด์ฉ์ ์ถํ ํฌ์คํธ์์..!)
๊ทธ๋์ GIT์ ์ด๋ป๊ฒ ์ฐ๊ณ , GitHub๋ ๋ญ๋ฐ??
๊ฒฐ๊ตญ Git ์ '๋ด PC์ ์๋ ๋ก์ปฌ ์ ์ฅ์', GitHub๋ 'ํด๋ผ์ฐ๋์ ์๋ ์๊ฒฉ ์ ์ฅ์'๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค. ๋ค์ ๊ธ์ ์ด GitHub์ ์๋ ์๊ฒฉ ์ ์ฅ์๋ฅผ ํ์ ์ ์ฅ์ผ๋ก์จ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋ํด ์ค๋ช ํด๋ณด๋ ค ํ๋ค.
GitHub์ ์ฌ์ฉ๋ฒ๊ณผ ์ค๋ฌด์์์ ์ ์ฉ ๋ฐฉ๋ฒ๋ก ์ ์ค์ฌ์ผ๋ก ๋ง์ด ์ฌ๋ฆด ์์ ์ด๊ธฐ ๋๋ฌธ์ธ๋ฐ, ๋ฒ์ ๊ด๋ฆฌ์ ๋ฐฑ์ , ํ์ ์ ์ํ ํ๋ฅญํ ํด์์๋ ์ฌ์ฉ๋ฒ๊ณผ ๊ทธ ์ฌ์ฉ์ ์ด์ ์ ๋ํด ๋ชจ๋ฅด๊ณ ์์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋๋ฌธ์ ์ฌ์ฉ๋ฒ์ ๋ํ ์ ๋ฆฌ๊ธ ์ ๋๋ก ๋จธ๋ฌด๋ฅด์ง ์๊ณ GIT์ด๋ผ๋ ๊ฐ๋ ฅํ ๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ์ ๋ํ ๋ณธ์ง์ ์ธ ์ด์ผ๊ธฐ๋ ๋นผ๋์ง ์๊ณ ๊ณ์ํด์ ๋๋ ๋ณผ ๊ฒ์ด๋ค.
'๊ธฐํ(PM & PO) > ๐ Git & Github' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
'Git ์ฉ์ด' ๋ฐ๋ก์๊ธฐ [Git] (0) | 2024.02.16 |
---|---|
์ด๋ชจ์ง [Git/Github] (1) | 2024.02.11 |
ํ์ ์ ์ํ Git-Flow ์ ๋ต [GIT] (0) | 2024.02.01 |
Git/GitHub [GIT] (2) | 2024.01.28 |