KR_IT_Web_Git - somaz94/DevOps-Engineer GitHub Wiki

IT ์šฉ์–ด: Web & Git

1. Web 1.0 vs Web 2.0 vs Web 3.0

์ธํ„ฐ๋„ท์˜ ๋ฐœ์ „์„ ํ†ตํ•ด ๋“ฑ์žฅํ•œ ์›น1(Web1.0), ์›น2(Web2.0), ์›น3(Web3.0)์€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํŠน์„ฑ๊ณผ ๊ธฐ์ˆ ์„ ๋Œ€ํ‘œํ•œ๋‹ค. ์ด๋“ค์˜ ๋ฐœ์ „ ๊ณผ์ •์€ ์ธํ„ฐ๋„ท์˜ ์‚ฌ์šฉ ๋ฐฉ์‹๊ณผ ์ธํ„ฐ๋„ท ๊ธฐ์ˆ ์˜ ๋ณ€ํ™”๋ฅผ ๋ฐ˜์˜ ํ•œ๋‹ค.

Web 1.0

Web 1.0์€ ์ธํ„ฐ๋„ท์˜ ์ดˆ๊ธฐ ํ˜•ํƒœ๋กœ, ์ฃผ๋กœ 1990๋…„๋Œ€์— ํ•ด๋‹นํ•œ๋‹ค. ์›น 1.0์€ ์‚ฌ๋žŒ๋“ค์ด ์ •๋ณด๋ฅผ ๋” ์ž˜ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋‹ค. ์ด ์›น ๋ฒ„์ „์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ ์ด์—ˆ๋‹ค.

์˜ค๋Š˜๋‚  ์ธํ„ฐ๋„ท์—์„œ ์ฆ๊ธฐ๋Š” ํ•„์ˆ˜ ํ˜•์‹, ์‹œ๊ฐ์  ์š”์†Œ, ์ปจํŠธ๋กค ๋ฐ ์ƒํ˜ธ ์ž‘์šฉ ๊ธฐ๋Šฅ์ด ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ๊ธฐ ์ „์šฉ ์›น(the read-only Web)์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

Web 2.0

Web 2.0์€ ์ธํ„ฐ๋„ท์˜ ์‚ฌํšŒ์  ๋‹จ๊ณ„๋กœ, 2000๋…„๋Œ€ ์ดˆ๋ฐ˜๋ถ€ํ„ฐ ๋Œ€์ค‘ํ™”๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

์ ์  ๋Š˜์–ด๋‚˜๋Š” ์ฒญ์ค‘์„ ์œ„ํ•ด ํ›จ์”ฌ ๋” ๋งŽ์€ ์ฝ˜ํ…์ธ ๋ฅผ ๋งŒ๋“œ๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.  ์ฐธ์—ฌ์™€ ๊ธฐ์—ฌ์— ์ดˆ์ ์„ ๋งž์ท„๋‹ค.

์˜ค๋Š˜๋‚  ์ฐธ์—ฌํ˜• ์†Œ์…œ ์›น(participative social Web)์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

Web 3.0

์›น3๋Š” ์ธํ„ฐ๋„ท์˜ ์ตœ์‹  ๋‹จ๊ณ„๋กœ, ์•„์ง ์™„์ „ํžˆ ์ •์˜๋˜์ง€ ์•Š์•˜์ง€๋งŒ, ๋ถ„์‚ฐํ˜• ๋„คํŠธ์›Œํฌ์™€ ๋ธ”๋ก์ฒด์ธ ๊ธฐ์ˆ ์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํƒˆ์ค‘์•™ํ™”, ๊ฐœ๋ฐฉ์„ฑ, ๋ณด๋‹ค ๋›ฐ์–ด๋‚œ ์‚ฌ์šฉ์ž ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ผ๋Š” ํ•ต์‹ฌ ์•„์ด๋””์–ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ๋‹ค.

Web 1.0์€ ์ฝ๊ธฐ ์ „์šฉ ์›น(the read-only Web)์ด๊ณ , Web 2.0์€ ์ฐธ์—ฌํ˜• ์†Œ์…œ ์›น(participative social Web)์ด๋ฉฐ, Web 3.0์€ ์ฝ๊ณ , ์“ฐ๊ณ , ์‹คํ–‰ํ•˜๋Š” ์›น(read, write, execute Web) ์ด๋‹ค.

์ฒ˜์Œ์— Web 3.0์„ Semantic Web์ด๋ผ๊ณ  ๋ถˆ๋ €์œผ๋ฉฐ ์ธ๊ณต ์ง€๋Šฅ๊ณผ ๊ธฐ๊ณ„ ํ•™์Šต์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธ€๋กœ๋ฒŒ ๋‘๋‡Œ(global brain) ์—ญํ• ์„ ํ•˜๊ณ  ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐœ๋…์ , ๋งฅ๋ฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ง€๋Šฅ์ ์ด๊ณ  ์ž์œจ์ ์ด๋ฉฐ ๊ฐœ๋ฐฉ์ ์ธ ์ธํ„ฐ๋„ท์„ ๊ตฌ์ƒํ–ˆ๋‹ค.


2. Git

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

์ฃผ์š” ๊ธฐ๋Šฅ:

  • ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜:

    • ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ „์ฒด ์ €์žฅ์†Œ์™€ ๊ทธ ์ด๋ ฅ์˜ ์™„์ „ํ•œ ๋ณต์‚ฌ๋ณธ์„ ๊ฐ–๊ณ  ์žˆ์–ด, ์˜คํ”„๋ผ์ธ ์ž‘์—… ๋ฐ ์ค‘๋ณต์„ฑ์„ ์ง€์›ํ•œ๋‹ค.
  • ๋ธŒ๋žœ์น˜ ๋ฐ ๋ณ‘ํ•ฉ:

    • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์‹คํ—˜ํ•˜๊ฑฐ๋‚˜ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋žœ์น˜๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์Šคํ…Œ์ด์ง• ์˜์—ญ(Staging Area):

    • ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ €์žฅ์†Œ ์ด๋ ฅ์— ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „์— ๋จผ์ € ์Šคํ…Œ์ด์ง•ํ•˜๋Š” ๋…ํŠนํ•œ ๊ฐœ๋…์ด๋‹ค.
  • ํšจ์œจ์„ฑ:

    • Git์€ ์„ฑ๋Šฅ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ํฐ ํ”„๋กœ์ ํŠธ๋„ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ:

    • ๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ์ฒดํฌ์„ฌ(checksum)์„ ํ†ตํ•ด ์ถ”์  ๋ฐ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Git ๊ธฐ๋ณธ ์šฉ์–ด:

  • ์›Œํ‚น ๋””๋ ‰ํ† ๋ฆฌ(Working Directory):

    • ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ํŒŒ์ผ๋“ค์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ด๋‹ค.
  • ์Šคํ…Œ์ด์ง• ์˜์—ญ(Staging Area):

    • ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ž„์‹œ๋กœ ๋ชจ์•„๋‘๋Š” ์˜์—ญ์ด๋‹ค.
  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(Repository):

    • ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ๋ฒ„์ „๊ณผ ์ด๋ ฅ์ด ์ €์žฅ๋˜๋Š” ๊ณณ์ด๋‹ค.
  • ์ปค๋ฐ‹(Commit):

    • ์Šคํ…Œ์ด์ง• ์˜์—ญ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์˜๊ตฌ์ ์œผ๋กœ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋ธŒ๋žœ์น˜(Branch):

    • ์ž‘์—…์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ด๋‹ค.
  • ๋ณ‘ํ•ฉ(Merge):

    • ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

Git๊ณผ GitHub์˜ ์ฐจ์ด์ :

  • Git:
    • ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ, ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ๊ด€๋ฆฌํ•œ๋‹ค.
  • GitHub:
    • Git์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์›น ์„œ๋น„์Šค์ด๋‹ค.
    • ํ˜‘์—…, ์ด์Šˆ ์ถ”์ , ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋“ฑ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

Git ๋ช…๋ น์–ด

# ์ƒˆ Git ์ €์žฅ์†Œ ์ดˆ๊ธฐํ™”
git init

# ์ €์žฅ์†Œ ์ƒํƒœ ํ™•์ธ
git status

# ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์ถ”๊ฐ€
git add <ํŒŒ์ผ๋ช…>
git add .  # ๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ถ”๊ฐ€

# ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ปค๋ฐ‹
git commit -m "์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€"

# ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ‘ธ์‹œ
git push

# ์ปค๋ฐ‹ ์ด๋ ฅ ํ™•์ธ
git log

# ์Šคํ…Œ์ด์ง•๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ๊ณผ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ๋น„๊ต
git diff --staged

# ์ƒˆ ํƒœ๊ทธ ์ƒ์„ฑ
git tag <ํƒœ๊ทธ๋ช…>

# ๋กœ์ปฌ์—์„œ ํƒœ๊ทธ ์‚ญ์ œ
git tag --delete <ํƒœ๊ทธ๋ช…>

# ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ํƒœ๊ทธ ์‚ญ์ œ
git push origin --delete <ํƒœ๊ทธ๋ช…>

# ์›๊ฒฉ ์ €์žฅ์†Œ์— ํƒœ๊ทธ ํ‘ธ์‹œ
git push --tags

# ๋ชจ๋“  ํƒœ๊ทธ ๋ชฉ๋ก ์กฐํšŒ
git tag

# ์ €์žฅ์†Œ ๋ณต์ œ
git clone <์ €์žฅ์†Œ-URL>

# ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ ๊ฐ€์ ธ์˜ค๊ธฐ
git fetch

# ์›๊ฒฉ ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณ‘ํ•ฉ
git merge <๋ธŒ๋žœ์น˜๋ช…>

# ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ ๊ฐ€์ ธ์˜ค๊ณ  ๋ณ‘ํ•ฉ (fetch + merge)
git pull

# ๋กœ์ปฌ ๋ฐ ์›๊ฒฉ ๋ธŒ๋žœ์น˜ ์ƒํƒœ ํ™•์ธ
git branch -a

# ์ƒˆ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
git branch <์ƒˆ-๋ธŒ๋žœ์น˜๋ช…>

# ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜
git checkout <๋ธŒ๋žœ์น˜๋ช…>

# ์œ„์˜ ๋‘ ๋ช…๋ น์–ด๋ฅผ ๊ฒฐํ•ฉ: ์ƒˆ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ „ํ™˜
git checkout -b <์ƒˆ-๋ธŒ๋žœ์น˜๋ช…>

# ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ž„์‹œ ์ €์žฅ
git stash

# ์ž„์‹œ ์ €์žฅ๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์— ์ ์šฉ
git stash pop

# ์›๊ฒฉ ์ €์žฅ์†Œ ๋ชฉ๋ก ํ‘œ์‹œ
git remote -v

# ์ƒˆ ์›๊ฒฉ ์ €์žฅ์†Œ ์„ค์ •
git remote add <์›๊ฒฉ-์ด๋ฆ„> <์ €์žฅ์†Œ-URL>

# ์›๊ฒฉ ์ €์žฅ์†Œ ์‚ญ์ œ
git remote remove <์›๊ฒฉ-์ด๋ฆ„>

# ์Šคํ…Œ์ด์ง• ๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณด๊ธฐ
git diff
Git ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ๋ณ‘ํ•ฉ ํ”„๋กœ์„ธ์Šค

master ๋ธŒ๋žœ์น˜์—์„œ feture ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์›Œํฌํ”Œ๋กœ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. feature ๋ธŒ๋žœ์น˜์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋˜๊ณ  ์ปค๋ฐ‹๋œ ๋‹ค์Œ master ๋ธŒ๋žœ์น˜๋กœ ๋‹ค์‹œ ๋ณ‘ํ•ฉ๋˜์–ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด๋‚˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋œ๋‹ค. Git Branch Creation and Merging Process


์ฐธ๊ณ  ์ž๋ฃŒ

โš ๏ธ **GitHub.com Fallback** โš ๏ธ