IT

๐Ÿง‘โ€๐Ÿ’ป Git๊ณผ GitHub์˜ ์ฐจ์ด: ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ์™„์ „ ์‰ฌ์šด ์„ค๋ช… (๋„๊ตฌ vs. ํ”Œ๋žซํผ) โ˜๏ธ

Git๊ณผ GitHub๋Š” ๊ฐœ๋ฐœ ๋ถ„์•ผ์—์„œ ๋—„ ์ˆ˜ ์—†๋Š” ๋‹จ์ง์ด์ง€๋งŒ, ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๊ทธ ์ฐจ์ด๊ฐ€ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด, Git์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” โ€˜๋„๊ตฌ(Tool)โ€™์ด๊ณ , GitHub๋Š” ๊ทธ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” โ€˜์›น ์„œ๋น„์Šค(Platform)โ€™์ž…๋‹ˆ๋‹ค.

์ด ๋‘˜์˜ ๊ด€๊ณ„๋ฅผ ๋น„์œ ์™€ ํ•จ๊ป˜ ์‰ฝ๊ณ  ๊นŠ์ด ์žˆ๊ฒŒ ์„ค๋ช…ํ•ด ๋“œ๋ฆด๊ฒŒ์š”.


๐Ÿ”จ 1. Git (๊นƒ): ๊ฐ•๋ ฅํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋„๊ตฌ (The Tool)

Git์€ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(Distributed Version Control System, DVCS)์ž…๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ์—ญ์‚ฌ, ์ฆ‰ ๋ˆ„๊ฐ€, ์–ธ์ œ, ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ๊ทธ ๋ชจ๋“  ๋ณ€ํ™”์˜ ๊ธฐ๋ก์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

1) Git์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ: ์‹œ๊ฐ„ ์—ฌํ–‰๊ณผ ๋ฐฑ์—…

  • ๋ฒ„์ „ ๊ธฐ๋ก: Git์€ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์Šค๋ƒ…์ƒท(Snapshot) ํ˜•ํƒœ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ๋“ ์ง€ ํŠน์ • ์‹œ์ ์˜ ์ฝ”๋“œ๋กœ โ€˜์‹œ๊ฐ„ ์—ฌํ–‰โ€™์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ถ„์‚ฐ(Distributed): ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ €์žฅ์†Œ(Repository)๊ฐ€ ๋‚ด ์ปดํ“จํ„ฐ(๋กœ์ปฌ)์—๋„ ์žˆ๊ณ , ํ•„์š”ํ•˜๋‹ค๋ฉด ์›๊ฒฉ ์„œ๋ฒ„์—๋„ ๋ณต์ œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์›๊ฒฉ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜์–ด๋„ ๋‚ด ์ปดํ“จํ„ฐ์— ์ „์ฒด ๊ธฐ๋ก์ด ๋‚จ์•„์žˆ์œผ๋ฏ€๋กœ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜‘์—…์˜ ๊ธฐ์ดˆ: ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋™์‹œ์— ํ•œ ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด๋„ ์ถฉ๋Œ ์—†์ด ๋ณ‘ํ•ฉ(Merge)ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ ๋น„์œ : Git์€ ์›Œ๋“œ ํŒŒ์ผ์˜ โ€˜๋ฒ„์ „ ๊ธฐ๋กโ€™ ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, ์‹ค์ˆ˜๋กœ ๋‚ด์šฉ์„ ๋‚ ๋ ค๋„ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด์ฃ . ์ด๊ฒƒ์„ ์ฝ”๋”ฉ์— ํŠนํ™”์‹œํ‚จ ๊ฒƒ์ด Git์ž…๋‹ˆ๋‹ค.


๐ŸŒ 2. GitHub (๊นƒํ—ˆ๋ธŒ): Git ์ €์žฅ์†Œ๋ฅผ ์œ„ํ•œ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ (The Platform)

GitHub๋Š” Git์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ฆฌ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ , ๊ณต์œ ํ•˜๋ฉฐ, ํ˜‘์—…์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์›น ๊ธฐ๋ฐ˜ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, Git ์ €์žฅ์†Œ๋“ค์„ ์œ„ํ•œ ๊ฑฐ๋Œ€ํ•œ ์˜จ๋ผ์ธ ์„œ๋ฒ„์ด์ž ์†Œ์…œ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

1) GitHub์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ: ์ €์žฅ, ๊ณต์œ , ํ˜‘์—…

  • ์›๊ฒฉ ์ €์žฅ์†Œ (Remote Repository): ๋‚ด ์ปดํ“จํ„ฐ์—์„œ Git์œผ๋กœ ์ž‘์—…ํ•œ ์ฝ”๋“œ๋ฅผ ์˜จ๋ผ์ธ์— ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐฑ์—…ํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ์žฅ์†Œ์ž…๋‹ˆ๋‹ค.
  • ํ˜‘์—… ๊ธฐ๋Šฅ:
    • Pull Request (PR): ๋‚ด๊ฐ€ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๋ฅผ ํŒ€์›์—๊ฒŒ ๊ฒ€ํ† (Review) ์š”์ฒญํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋ณธ ์ฝ”๋“œ์— ํ•ฉ์น  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ•ต์‹ฌ ํ˜‘์—… ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
    • Issue Tracking: ๋ฒ„๊ทธ๋‚˜ ๊ฐœ์„ ํ•  ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ๊ณต๊ฐœ/๊ณต์œ : ์ „ ์„ธ๊ณ„ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜๊ณ (์˜คํ”ˆ ์†Œ์Šค), ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ฐœ๋ฐœ์ž๋“ค์˜ ์†Œ์…œ ๋ฏธ๋””์–ด ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

โ˜๏ธ ๋น„์œ : GitHub๋Š” Naver Cloud, Google Drive ๊ฐ™์€ ํด๋ผ์šฐ๋“œ ์ €์žฅ์†Œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ํด๋”(Git ์ €์žฅ์†Œ)๋ฅผ ์˜จ๋ผ์ธ์— ์˜ฌ๋ ค๋†“๊ณ , ์–ธ์ œ ์–ด๋””์„œ๋“  ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค๋ฉฐ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜์ฃ .


๐Ÿง  3. ํ•ต์‹ฌ ์ฐจ์ด์  ์ •๋ฆฌ: ๋„๊ตฌ vs. ์„œ๋น„์Šค

๊ตฌ๋ถ„Git (๊นƒ)GitHub (๊นƒํ—ˆ๋ธŒ)
์ •์˜๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ (DVCS)Git ์ €์žฅ์†Œ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค
์—ญํ• ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ๊ธฐ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋„๊ตฌ์ฝ”๋“œ๋ฅผ ์ €์žฅ, ๊ณต์œ , ํ˜‘์—…ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํ”Œ๋žซํผ/์„œ๋ฒ„
์œ„์น˜๋‚ด ์ปดํ“จํ„ฐ (๋กœ์ปฌ)์— ์„ค์น˜๋˜์–ด ์‹คํ–‰์˜จ๋ผ์ธ ์›น์‚ฌ์ดํŠธ (ํด๋ผ์šฐ๋“œ)
ํ•„์ˆ˜ ์—ฌ๋ถ€๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•„์ˆ˜์›๊ฒฉ ๋ฐฑ์—… ๋ฐ ํ˜‘์—…์„ ์œ„ํ•ด ์„ ํƒ (๋‹ค๋ฅธ ๋Œ€์•ˆ O)
๋Œ€์•ˆ๊ฑฐ์˜ ์—†์ŒGitLab, Bitbucket ๋“ฑ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค ์กด์žฌ

โŒ ์˜คํ•ด ํ•ด์†Œ

  • Q: Git์„ ์“ฐ๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ GitHub๋ฅผ ์จ์•ผ ํ•˜๋‚˜์š”?
    • A: โŒ ์•„๋‹™๋‹ˆ๋‹ค. Git์€ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๋‹จ๋…์œผ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. GitHub๋Š” ๋‹จ์ง€ Git ์ €์žฅ์†Œ๋ฅผ ์˜จ๋ผ์ธ์— ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•œ ์ˆ˜๋งŽ์€ ์„ ํƒ์ง€ ์ค‘ ํ•˜๋‚˜์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.
  • Q: GitHub๋ฅผ ์“ฐ๋ ค๋ฉด Git์„ ์„ค์น˜ํ•ด์•ผ ํ•˜๋‚˜์š”?
    • A: ๐Ÿ  ์˜ˆ, ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. GitHub์— ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜(Push) ๊ฐ€์ ธ์˜ค๋ ค๋ฉด(Pull), ๋‚ด ์ปดํ“จํ„ฐ์—๋Š” Git์ด๋ผ๋Š” ๋„๊ตฌ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GitHub๋Š” Git์˜ ๊ธฐ๋Šฅ์„ ๋นŒ๋ ค์™€ ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
infodori1234

Recent Posts

๐Ÿ–ฅ NetBIOS over TCP IP NBT ์™„์ „ ๊ฐ€์ด๋“œ

๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ ์กฐ๊ธˆ์ด๋ผ๋„ ๋‹ค๋ค„๋ณธ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ํ•œ ๋ฒˆ์ฏค์€ ๋งˆ์ฃผ์น˜๋Š” ์ต์ˆ™ํ•œ ๋‹จ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ NetBIOS์™€ NBT์ž…๋‹ˆ๋‹ค.…

2๊ฐœ์›” ago

๐Ÿ  JSON Schema: ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์˜ ํ‘œ์ค€ ์„ค๊ณ„๋„ ๐Ÿ–ฅ

์•ˆ๋…•ํ•˜์„ธ์š”! ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ์—์„œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์˜ ํ•ต์‹ฌ์ธ JSON(JavaScript Object Notation)์„ ๋”์šฑ ๊ฐ•๋ ฅํ•˜๊ณ  ์•ˆ์ •์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋„๊ตฌ,…

2๊ฐœ์›” ago

๐Ÿ  ECMAScript 3 ํ˜ธํ™˜์„ฑ ์™„์ „ ์ •๋ฆฌ ๊ฐ€์ด๋“œ

โŒ ECMAScript 3(E3)๋ž€ ๋ฌด์—‡์ผ๊นŒ ECMAScript 3๋Š” 1999๋…„์— ๊ณต์‹ํ™”๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‘œ์ค€์ด๋‹ค. ์ง€๊ธˆ ๋ณด๋ฉด ์˜ค๋ž˜๋œ ๊ธฐ์ˆ  ๊ฐ™์ง€๋งŒ,…

2๊ฐœ์›” ago

๐Ÿ–ฅ CoffeeScript ์™„์ „ ๊ฐ€์ด๋“œ

CoffeeScript๋Š” ํ•œ๋•Œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์ƒํƒœ๊ณ„์—์„œ ๋งค์šฐ ์ธ๊ธฐ ์žˆ์—ˆ๋˜ ์–ธ์–ด์˜€๊ณ , ์ง€๊ธˆ๋„ ํŠน์ • ํ”„๋กœ์ ํŠธ๋‚˜ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ, ๊ฐ„๊ฒฐํ•œ…

2๊ฐœ์›” ago

๐Ÿ  ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Memory Leak) ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ: ๐Ÿ–ฅ ๋‚ญ๋น„๋˜๋Š” ์ปดํ“จํ„ฐ์˜ ๊ธฐ์–ต๋ ฅ โŒ

ํ˜„๋Œ€์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Memory Leak)๋Š” ์—ฌ์ „ํžˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ ์ €ํ•˜์™€ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๋Š” ์ฃผ์š” ์›์ธ ์ค‘…

2๊ฐœ์›” ago

๐Ÿ–ฅ๏ธ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ • (CRP) : ์›นํŽ˜์ด์ง€๊ฐ€ ๋ˆˆ์•ž์— ๋‚˜ํƒ€๋‚˜๊ธฐ๊นŒ์ง€์˜ ๋งˆ๋ฒ•

(Critical Rendering Path, ํ•ต์‹ฌ ๋ Œ๋”๋ง ๊ฒฝ๋กœ ์™„๋ฒฝ ์ดํ•ด) ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„,…

3๊ฐœ์›” ago