Home > CS > 2024 > ๐Ÿ’พ [CS] GitHub์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

๐Ÿ’พ [CS] GitHub์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?
CS

๐Ÿ’พ [CS] GitHub์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

  • Git ๊ธฐ๋ฐ˜์˜ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์Šค ์ฝ”๋“œ์™€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์›น ๊ธฐ๋ฐ˜ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.
  • Github์€ ๋‹จ์ˆœํžˆ ์ฝ”๋“œ ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํŒ€ ๊ฐ„ ํ˜‘์—…, ์ฝ”๋“œ ๋ฆฌ๋ทฐ, ์ด์Šˆ ๊ด€๋ฆฌ, CI/CD(์ง€์†์  ํ†ตํ•ฉ/์ง€์†์  ๋ฐฐํฌ)๋“ฑ์„ ์ง€์›ํ•˜๋ฉฐ, ์ „ ์„ธ๊ณ„ ๊ฐœ๋ฐœ์ž๋“ค์ด ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์™€ ์ƒ์šฉ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ํ˜‘๋ ฅํ•˜๋Š”๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

1๏ธโƒฃ GitHub์˜ ์ฃผ์š” ํŠน์ง•.

1๏ธโƒฃ ์›๊ฒฉ ์ €์žฅ์†Œ ๊ด€๋ฆฌ.

  • ๋กœ์ปฌ Git ์ €์žฅ์†Œ์™€ ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ๋™๊ธฐํ™”ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ์™€ ์ด๋ ฅ์„ ์ €์žฅํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒ€์› ๊ฐ„ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ํ†ตํ•ฉํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ ํ˜‘์—… ์ง€์›

  • Pull Request(์ฝ”๋“œ ๋ณ€๊ฒฝ ์š”์ฒญ)๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ ๋ณ‘ํ•ฉ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Issue Tracker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ๋ฌธ์ œ์ , ๋ฒ„๊ทธ, ๊ฐœ์„  ์‚ฌํ•ญ ๋“ฑ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ ๋ฒ„์ „ ๊ด€๋ฆฌ.

  • Git์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ์ฝ”๋“œ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ์ถ”์ ํ•˜๊ณ  ํŠน์ • ์‹œ์ ์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4๏ธโƒฃ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ ์ง€์›.

  • ๋งŽ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ GitHub์— ํ˜ธ์ŠคํŒ…๋˜๋ฉฐ, ๋ˆ„๊ตฌ๋‚˜ ์ฝ”๋“œ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

5๏ธโƒฃ ๋ธŒ๋žœ์น˜ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ.

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

6๏ธโƒฃ CI/CD ์ง€์›.

  • GitHub Actions๋ฅผ ํ†ตํ•ด ์ง€์†์  ํ†ตํ•ฉ(Continuous Integration)๊ณผ ์ง€์†์  ๋ฐฐํฌ(Continuous Delivery)๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7๏ธโƒฃ ์›น ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค.

  • ๋ช…๋ น์ค„ ๋Œ€์‹  ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฝ”๋“œ, ์ปค๋ฐ‹ ๋‚ด์—ญ, ๋ธŒ๋žœ์น˜ ๋“ฑ์„ ํ™•์ธํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

8๏ธโƒฃ ํ†ตํ•ฉ ๋„๊ตฌ ๋ฐ ์„œ๋น„์Šค.

  • ๋‹ค์–‘ํ•œ ์™ธ๋ถ€ ๋„๊ตฌ(Jira, Slack, Trello ๋“ฑ)์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Visual Studio Code ๋“ฑ IDE์™€๋„ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ GitHub์˜ ์ฃผ์š” ๊ธฐ๋Šฅ.

1๏ธโƒฃ Repository(์ €์žฅ์†Œ)

  • GitHub์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„.
  • Public Repository(๊ณต๊ฐœ ์ €์žฅ์†Œ)์™€ Private Repository(๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ Pull Request.

  • ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋‚˜ ํฌํฌ(fork)๋œ ์ €์žฅ์†Œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณ‘ํ•ฉ ์š”์ฒญํ•˜๋Š” ๊ธฐ๋Šฅ.
  • ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๊ณผ์ •์„ ํ†ตํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒ€ํ† ํ•œ ํ›„ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ Issue Tracker.

  • ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ , ๋ฒ„๊ทธ, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์š”์ฒญ ๋“ฑ์„ ๊ธฐ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋„๊ตฌ.

4๏ธโƒฃ Fork.

  • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜์—ฌ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ.
  • ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

5๏ธโƒฃ Actions.

  • CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•˜๋ ค ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•˜๋Š” ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6๏ธโƒฃ Code Review.

  • Pull Request๋ฅผ ํ†ตํ•ด ํŒ€์› ๊ฐ„ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7๏ธโƒฃ Projects.

  • ์นธ๋ฐ˜ ๋ณด๋“œ ํ˜•ํƒœ๋กœ ํ”„๋กœ์ ํŠธ ์ž‘์—… ํ๋ฆ„์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ.

8๏ธโƒฃ Wiki.

  • ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„.

9๏ธโƒฃ Github Pages

  • ์ €์žฅ์†Œ์— ์žˆ๋Š” HTML ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ„๋‹จํ•œ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฌด๋ฃŒ๋กœ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ.

1๏ธโƒฃ0๏ธโƒฃ Collaborator & Permission Management

  • ํ”„๋กœ์ ํŠธ ํ˜‘์—…์ž๋ฅผ ์ดˆ๋Œ€ํ•˜๊ณ , ๊ฐ ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ GitHun์˜ ์žฅ์ .

1๏ธโƒฃ ์˜คํ”ˆ ์†Œ์Šค ์นœํ™”์ .

  • ์ˆ˜๋งŽ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ GitHub์— ํ˜ธ์ŠคํŒ…๋˜๋ฉฐ, ๋ˆ„๊ตฌ๋‚˜ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ ์‰ฌ์šด ํ˜‘์—….

  • ์ฝ”๋“œ ๋ฆฌ๋ทฐ, ์ด์Šˆ ๊ด€๋ฆฌ, ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ ๋“ฑ ํŒ€์› ๊ฐ„ ํ˜‘์—…์„ ํšจ๊ณผ์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ ์›น ๊ธฐ๋ฐ˜ ๊ด€๋ฆฌ.

  • Git์„ ์ž˜ ๋ชฐ๋ผ๋„ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์ธ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4๏ธโƒฃ ๋Œ€๊ทœ๋ชจ ์ปค๋ฎค๋‹ˆํ‹ฐ.

  • ์ „ ์„ธ๊ณ„ ์ˆ˜๋งŽ์€ ๊ฐœ๋ฐœ์ž์™€ ํ”„๋กœ์ ํŠธ๊ฐ€ GitHub์—์„œ ํ™œ๋™ํ•˜๋ฉฐ, ํ’๋ถ€ํ•œ ๋ฆฌ์†Œ๋ฅด์™€ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

5๏ธโƒฃ ์ž๋™ํ™” ์ง€์›.

  • GitHub Actions์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์œผ๋กœ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6๏ธโƒฃ ๋‹ค์–‘ํ•œ ํ†ตํ•ฉ ๋„๊ตฌ.

  • Slack, Jira, Trello ๋“ฑ๊ณผ ์—ฐ๋™ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๋ฅผ ํ•œ์ธต ๋” ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7๏ธโƒฃ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ.

  • ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์€ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜๋ฉฐ, ์†Œ๊ทœ๋ชจ ํŒ€๋„ ์ถฉ๋ถ„ํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4๏ธโƒฃ GitHub์˜ ๋‹จ์ .

1๏ธโƒฃ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ํ•„์š”.

  • GitHub๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ(Remote Repository)๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ, ์ž‘์—… ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ ํ”„๋ผ์ด๋ฒ„์‹œ ์šฐ๋ ค.

  • ๋ฌด๋ฃŒ ๊ณ„์ •์—์„œ ๊ณต๊ฐœ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(Private Repository๋Š” ์œ ๋ฃŒ ๋˜๋Š” ์ œํ•œ์ ์œผ๋กœ ์ œ๊ณต).

3๏ธโƒฃ ์‚ฌ์šฉ๋ฒ• ํ•™์Šต ํ•„์š”.

  • Git๊ณผ GitHub๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ํ•™์Šต ๊ณก์„ ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5๏ธโƒฃ GitHub์˜ ์‹ค์ œ ํ™œ์šฉ ์˜ˆ์‹œ.

1๏ธโƒฃ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ ํ˜ธ์ŠคํŒ….

  • ๋งŽ์€ ์œ ๋ช…ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ(์˜ˆ: React, TensorFlow, Spring Framework)๊ฐ€ GitHub์— ํ˜ธ์ŠคํŒ…๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

2๏ธโƒฃ ํŒ€ ํ”„๋กœ์ ์Šค ๊ด€๋ฆฌ.

  • ํ˜‘์—… ๋„๊ตฌ์™€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒ€ ๊ฐœ๋ฐœ์—์„œ์˜ ํšจ์œจ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.

3๏ธโƒฃ ํฌํŠธํด๋ฆฌ์˜ค ์ œ์ž‘.

  • ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž์‹ ์˜ ๊ฐœ๋ฐœ ์—ญ๋Ÿ‰์„ ํ™๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4๏ธโƒฃ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ ํ”ผ๋“œ๋ฐฑ.

  • ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋ฆฌ๋ทฐ ๊ณผ์ •์„ ํฌํ•จํ•œ ํ˜‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.