Skip to content

Latest commit

ย 

History

History
148 lines (133 loc) ยท 10.7 KB

introduction.asc

File metadata and controls

148 lines (133 loc) ยท 10.7 KB

Introduction

์ด ๊ธ€์„ ์ฝ๋Š” ๋…์ž๋ผ๋ฉด Git์„ ์ฝ๋Š” ๋ฐ ๋ช‡ ์‹œ๊ฐ„์ฏค์€ ๊ธฐ๊บผ์ด ํˆฌ์žํ•  ์‚ฌ๋žŒ์ผ ํ…Œ๋‹ค. ๋…์ž์˜ ์‹œ๊ฐ„์€ ์ค‘์š”ํ•˜๊ธฐ์— ๋จผ์ € ๋ช‡ ๋ถ„ ๋‚ด๋กœ ์ด ์ฑ…์— ๋‹ด๊ธด ๋‚ด์šฉ์„ ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœํ•œ๋‹ค. ์•„๋ž˜๋Š” ์ด ์ฑ…์— ๋‹ด๊ธด 10๊ฐœ์˜ ์žฅ๊ณผ 3๊ฐœ์˜ ๋ถ€๋ก์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด๋‹ค.

1์žฅ์—์„œ๋Š” ๊ธฐ์ˆ ์ ์ธ ๋‚ด์šฉ์„ ์ œ์™ธํ•˜๊ณ  ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(VCS)๊ณผ Git์ด๋ž€๊ฒŒ ๋Œ€์ฒด ๋ฌด์—‡์ธ์ง€, Git์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ๊ณผ, Git์ด ๋‹ค๋ฅธ VCS์™€ ๋ฌด์—‡์ด ๋‹ค๋ฅธ์ง€, ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์™œ Git์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณธ๋‹ค. ์ดํ›„ Git์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์„ ์•Œ์•„๋ณธ๋‹ค. ๋ฏธ๋ฆฌ Git์ด ์„ค์น˜๋ผ ์žˆ๋Š” ์‹œ์Šคํ…œ๋„ ์žˆ๋‹ค.

2์žฅ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ Git ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค. 80% ์ฏค์€ ์ด ์žฅ์—์„œ ์„ค๋ช…ํ•˜๋Š” ์ •๋„๋กœ๋งŒ Git์„ ์‚ฌ์šฉํ•œ๋‹ค. 2์žฅ์„ ์ฝ๊ณ ๋‚˜๋ฉด ์ €์žฅ์†Œ๋ฅผ Clone ํ•˜๊ธฐ, ํ”„๋กœ์ ํŠธ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์•Œ์•„๋ณด๊ธฐ, ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ธฐ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์žฅ๋งŒ ์ฐŸ์–ด์„œ ํœด๊ฐ€๋ฅผ ์ฆ๊ธฐ๊ณ  ๋Œ์•„์™€๋„ Git์„ ์ž˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

3์žฅ์—์„œ๋Š” Git์˜ ๋ธŒ๋žœ์น˜ ๋ชจ๋ธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณธ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๋ธŒ๋žœ์น˜๊ฐ€ Git์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ๋งํ•œ๋‹ค. Git ๋ธŒ๋žœ์น˜๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”์ง€ ๋ฐฐ์šฐ๋ฉด ๋‹ค๋ฅธ VCS์™€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์•Œ๊ฒŒ ๋œ๋‹ค. 3์žฅ์„ ์ฝ๊ณ  ๋‚˜๋ฉด Git์˜ ๋ธŒ๋žœ์น˜ ์—†์ด ์–ด๋–ป๊ฒŒ ์‚ด์•„์™”๋Š”์ง€ ์ƒ์ƒํ•  ์ˆ˜ ์—†๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

4์žฅ์—์„œ๋Š” ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ์˜ Git์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค. Git์œผ๋กœ ํ˜‘์—…ํ•  ๋•Œ ํšŒ์‚ฌ๊ฐ™์€ ํŠน์ • ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ ์‚ฌ์šฉํ•  Git ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ฑฐ๋‚˜ ์ž์‹ ๋งŒ์˜ Git ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ณ ์ž ํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ํ•„์š”ํ•œ ๋‚ด์šฉ์ด๋‹ค. ์ง์ ‘ Git ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋„ ์†Œ๊ฐœ ํ•œ๋‹ค.

5์žฅ์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ์˜ ์›Œํฌํ”Œ๋กœ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  Git์œผ๋กœ ์–ด๋–ป๊ฒŒ ์›Œํฌํ”Œ๋กœ๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š”์ง€ ์•Œ์•„๋ณธ๋‹ค. 5์žฅ์„ ์ฝ๊ณ ๋‚˜๋ฉด ์—ฌ๋Ÿฌ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๋ฅผ ๋‘๊ณ  ์ „๋ฌธ๊ฐ€์ฒ˜๋Ÿผ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฉ”์ผ๋กœ๋„ Git ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋งŽ์€ ์ˆ˜์˜ ๋ฆฌ๋ชจํŠธ ๋ธŒ๋žœ์น˜๋‚˜ ๊ธฐ์—ฌ ๋ฐ›์€ ํŒจ์น˜๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

6์žฅ์—์„œ๋Š” GitHub ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค์™€ GitHub์—์„œ ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ž์„ธํžˆ ์•Œ์•„๋ณธ๋‹ค. ๊ฐ€์ž…ํ•˜๊ณ  ๊ณ„์ •์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋ถ€ํ„ฐ Git ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ณ  ๋ฐ˜๋Œ€๋กœ ๊ธฐ์—ฌ๋ฐ›๋Š” ์›Œํฌํ”Œ๋กœ๋ฅผ ์‚ดํŽด๋ณธ๋‹ค. GitHub์ด ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅํ•œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์•Œ์•„๋‘๋ฉด ํ”ผ๊ฐ€๋˜๊ณ  ์‚ด์ด๋˜๋Š” ํŒ๋„ ์†Œ๊ฐœํ•œ๋‹ค.

7์žฅ์—์„œ๋Š” Git์˜ ๊ณ ๊ธ‰ ๋ช…๋ น์„ ์•Œ์•„๋ณธ๋‹ค. ๋•Œ๋กœ๋Š” ์œ„ํ—˜ํ•  ์ˆ˜๋„ ์žˆ๋Š” 'Reset' ๊ฐ™์€ ๋ช…๋ น์— ๋„์‚ฌ๊ฐ€ ๋˜๊ณ , ๋ฒ„๊ทธ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ด์ง„ ํƒ์ƒ‰ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ๋„ ํ•˜๊ณ  ํžˆ์Šคํ† ๋ฆฌ์—์„œ ์„ธ์„ธํ•˜๊ฒŒ ๋ฆฌ๋น„์ „์„ ์„ ํƒํ•ด์„œ ์ž‘์—…ํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์•Œ์•„๋ณธ๋‹ค. 7์žฅ์€ Git์„ ๊ณ ๊ธ‰์ง€๊ฒŒ ๊ตฌ์‚ฌํ•˜๋Š” ๋งˆ์Šคํ„ฐ๋กœ ๋งŒ๋“ค์–ด ์ค„ ๊ฒƒ์ด๋‹ค.

8์žฅ์—์„œ๋Š” Git ํ™˜๊ฒฝ์„ค์ •์„ ์ž…๋ง›์— ๋งž๊ฒŒ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ •์ฑ…์„ ๋งŒ๋“ค์–ด์„œ Git ํ™˜๊ฒฝ์— ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํ›… ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„ค๋ช…ํ•œ๋‹ค. ์›ํ•˜๋Š” ๋Œ€๋กœ ์ปค๋ฐ‹ ๊ทœ์น™์„ ์„ธ์šฐ๊ณ  ์ด๋ฅผ ๊ฐ•์ œํ•˜๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์˜ˆ์ œ๋„ ์†Œ๊ฐœํ•œ๋‹ค.

9์žฅ์—์„œ๋Š” Git๊ณผ ๋‹ค๋ฅธ VCS๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค. Subversion ํ™˜๊ฒฝ์—์„œ Git์„ ํด๋ผ์ด์–ธํŠธ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ๋‹ค๋ฅธ VCS ํ”„๋กœ์ ํŠธ๋ฅผ Git ํ”„๋กœ์ ํŠธ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค. ์•„์ง๋„ ๋งŽ์€ ๊ณณ์—์„œ ๋ฐ”๊ฟ€ ๊ณ„ํš ์—†์ด Subversion์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. 9์žฅ์„ ํ†ตํ•ด ์ด๋Ÿฐ Subversion ์„œ๋ฒ„๋ฅผ ์จ์•ผํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ๋„ Git์ด ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ์žฅ์ ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ์•Œ๊ฒŒ ๋œ๋‹ค. ๋‹ค๋ฅธ VCS ํ™˜๊ฒฝ์ด๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ Git์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ„ฐ๋“ํ•จ์œผ๋กœ์จ ๋™๋ฃŒ์—๊ฒŒ Git์ด ์™œ ์ข‹์€์ง€ ๋‚ฉ๋“์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

10์žฅ์—์„œ๋Š” Git ์•ˆ์œผ๋กœ ๊นŠ์ˆ™ํžˆ ํŒŒ๊ณ ๋“ ๋‹ค. Git์ด ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋ฉด ์•„์ฃผ ์šฐ์•„ํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜๊ฒŒ Git์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์ด์ฒ˜๋Ÿผ ๋‚ด๋ถ€๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋ฉด ์ด์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ์ข‹์€์ง€ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ชจ๋ธ๋กœ ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ Packfile์€ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ์„œ๋ฒ„ ํ”„๋กœํ† ์ฝœ์€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ ธ์žˆ๋Š”์ง€ ๋…ผํ•˜๋Š” ๊ฒฝ์ง€์— ์ด๋ฅด๊ฒŒ ๋œ๋‹ค. ์ฑ… ๊ณณ๊ณณ์—์„œ ์–ด๋–ค ๋‚ด์šฉ์„ ์†Œ๊ฐœํ•˜๋‹ค๊ฐ€ ์ข€ ๋” ๊นŠ์€ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์—์„œ๋Š” 10์žฅ์„ ๋ณด๋„๋ก ์•ˆ๋‚ดํ•˜๊ณ  ์žˆ๋‹ค. ๋‚จ๋“ค๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ Git์˜ ์€๋ฐ€ํ•œ ๊ธฐ์ˆ ์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค๋ฅธ ๋ถ€๋ถ„๋ณด๋‹ค ์—ฌ๊ธฐ 10์žฅ์— ๋จผ์ € ์†์ด ๊ฐˆ ๊ฒƒ์ด๋‹ค.

๋ถ€๋ก A์—์„œ๋Š” ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ Git์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณธ๋‹ค. ์—ฌ๋Ÿฌ GUI, ์—ฌ๋Ÿฌ IDE ํ™˜๊ฒฝ์—์„œ Git์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณธ๋‹ค. Shell์ด๋‚˜ Visual Studio, Eclipse ๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ Git์„ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€ ํ›‘์–ด๋ณด๋ ค๋ฉด ๋ถ€๋ก A๋ฅผ ๋ณด๋ฉด ๋œ๋‹ค.

๋ถ€๋ก B์—์„œ๋Š” Git์„ ์Šคํฌ๋ฆฝํŠธ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ libgit2๋‚˜ JGit ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค. ๋งž์ถค ๋„๊ตฌ๋ฅผ ์ œ์ž‘ํ•ด์„œ ์‚ฌ์šฉ์„ ํ•ด์•ผํ•œ๋‹ค๊ฑฐ๋‚˜ Git์˜ ์ €์ˆ˜์ค€ ์ ‘๊ทผ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ถ€๋ก B๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ์ง€ ๊ฐ์„ ์žก์„ ์ˆ˜ ์žˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ถ€๋ก C์—์„œ๋Š” ์ฃผ์š” Git ๋ช…๋ น์„ ํ•œ๊บผ๋ฒˆ์— ์‚ดํŽด๋ณด๊ณ  ๊ฐ ๋ช…๋ น์„ ์–ด๋””์„œ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•ˆ๋‚ดํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ–ˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ์–ด๋–ค ๋ช…๋ น์ด ์ฑ…์˜ ์–ด๋””์—์„œ ์†Œ๊ฐœ๋˜์—ˆ๊ณ  ์–ด๋–ค ์˜ˆ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ์•„๋ณผ ๋•Œ ๋ถ€๋ก C ๊ฐ€ ์œ ์šฉํ•˜๋‹ค.

์ž ์ด์ œ ์‹œ์ž‘ํ•ด๋ด…์‹œ๋‹ค.