๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

"Thought" ํƒœ๊ทธ๋กœ ์—ฐ๊ฒฐ๋œ 4๊ฐœ ๊ฒŒ์‹œ๋ฌผ๊ฐœ์˜ ๊ฒŒ์‹œ๋ฌผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ํƒœ๊ทธ ๋ณด๊ธฐ

ยท ์•ฝ 4๋ถ„

ํšŒ๊ณ #

  • ๋‚ฏ์„  ํ™˜๊ฒฝ์—์„œ ์ƒˆ๋กœ์šด ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ•œ๋™์•ˆ ์ง‘(์ปดํฌํŠธ ์กด)์—๋งŒ์žˆ์œผ๋ฉด์„œ, ๋™๊ธฐ ๋ถ€์—ฌ๋‚˜ ์˜์ง€๋ ฅ ๋“ฑ๋“ฑ์ด ์•ฝํ•ด์กŒ์—ˆ๋Š”๋ฐ, ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์—์„œ ๋„์ „ ๊ณผ์ œ๋ฅผ๋ถ€์—ฌ๋ฐ›๊ฒŒ ๋˜๊ณ , ํ•จ๊ป˜ ํ˜‘์—…ํ•ด์•ผ ํ•ด์„œ ๋™๊ธฐ ๋ถ€์—ฌ๊ฐ€ ๋˜์—ˆ๋‹ค.

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

  • ์บ ํ”„ ์ „์ฒด์— ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฑฐ์˜ ์—†๋Š”๊ฒŒ ์กฐ๊ธˆ ์ถฉ๊ฒฉ์ด์—ˆ๊ณ , ์บ ํ”„์—์„œ ํ˜ผ์ž ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ์•ˆํ•˜๊ณ  ๋‘๋ ค์šด ๋งˆ์Œ์ด ๋“ ๋‹ค.

  • ์ด๋ฒˆ์— ์ง„ํ–‰ํ•  ํ”„๋กœ์ ํŠธ ์ฃผ์ œ์— ๋Œ€ํ•ด ๊ฐ์ด ์ž˜ ์˜ค์ง€ ์•Š๋Š”๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•ด์„œ ๋ณด์—ฌ์ฃผ๋Š” ์‚ฌ์ดํŠธ ๋ ˆํผ๋Ÿฐ์Šค๋“ค์„ ์ฐพ์•„๋ด์•ผ๊ฒ ๋‹ค.

์ด๋ฒˆ ์บ ํ”„์˜ ๋ชฉํ‘œ#

  • ๋งค์ผ์˜ ๊พธ์ค€ํ•œ ๋ฃจํ‹ด

    • ์ง€๋‚œ ์บ ํ”„์—์„œ๋Š” ํ‰์ผ์— ๋„ˆ๋ฌด ๋ฌด๋ฆฌํ•ด์„œ ๊ฐœ๋ฐœํ•˜๋Š๋ผ ์ฃผ๋ง์— ํ”ผ๋กœ๊ฐ€ ๋ˆ„์ ๋˜์–ด ์“ฐ๋Ÿฌ์ ธ๋ฒ„๋ฆฌ๋Š” ์ผ์ด ๋งŽ์•˜๋‹ค.

    • ํŽ˜์ด์Šค๋ฅผ ์ž˜ ์กฐ์ ˆํ•˜์ž.

    • ๋งค์ผ ๊ฐœ์ธ ํšŒ๊ณ ๋ฅผ ์Šต๊ด€ํ™”ํ•˜์ž.

  • ์ด์Šˆ ๊ด€๋ฆฌ, ํƒœ์Šคํฌ ๊ด€๋ฆฌ

    • ์˜ค๋Š˜ ์„ธ์…˜์—์„œ "์ •์‹ ์—†์ด ๋ฐ”์œ ์บ ํ”„์ด๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ ๋ฌธ์ œ์— ๋„ˆ๋ฌด ๊นŠ์ด ์‚ฌ๋กœ์žกํžˆ๋Š”๊ฒƒ์ด ๋ณ‘๋ชฉ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•˜๋ผ"๋Š” ๋‚ด์šฉ์„ ๋“ค์—ˆ๋‹ค.

    • ํ˜‘์—…์ด ํ•„์š”ํ•œ ์ผ์„ ๋จผ์ € ํ•ด๊ฒฐํ•˜์ž.

    • ๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์„ ๋จผ์ € ํ•ด๊ฒฐํ•˜์ž.

    • ์–ด๋ ค์šด ๋ฌธ์ œ๋Š” ์‹œ๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ๊ฐœ์ธ ์‹œ๊ฐ„์— ๊นŠ์ด ํŒŒ๊ณ ๋“ ๋‹ค.

  • ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ๊ธฐ์ˆ , ๋Š๋‚€ ์ ์— ๋Œ€ํ•œ ๋ฌธ์„œํ™”

  • ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ดํ•ด

    • ๋ฉ”์ธ ๊ธฐ์ˆ  ์Šคํƒ์ธ React, TypeScript์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ–ˆ๋‹ค

    • ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•˜๊ณ  ์ ์šฉํ•ด๋ณด์ž

  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

    • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ 1๋„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๋‹ค

    • ์ด๋ฒˆ ๋ธ”๋ž™์ปคํ”ผ ์Šคํ„ฐ๋””์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ ์šฉํ•ด๋ณด์ž

  • ์ž์‹ ๊ฐ ๊ฐ€์ง€๊ธฐ

    • ์ž์‹ ๊ฐ์€ ํ’์„ ๊ณผ ๊ฐ™๋‹ค

    • ๋ถˆ์–ด๋„ฃ๊ธฐ๋Š” ํž˜๋“ค์ง€๋งŒ ๋น ์ง€๋Š”๊ฑด ๊ธˆ๋ฐฉ ๋น ์ง„๋‹ค


ยท ์•ฝ 3๋ถ„

ํŒ€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด...#

์Šคํ”„๋ฆฐํŠธ ํšŒ์˜#

  • ํŒ€์˜ ๋ชฉํ‘œ ์ˆ˜๋ฆฝ, ์œ„ํ‚ค ๋“ฑ๋ก

  • ๊ฐœ๋ฐœํ•ด์•ผ ํ•  ๋‚ด์šฉ์„ feature ๋‹จ์œ„๋กœ ์ถ”๋ฆฌ๊ณ  issue ํ•ญ๋ชฉ์— ๋“ฑ๋ก

์Šคํฌ๋Ÿผ#

  • ์ƒํƒœ, ์–ด์ œ ํ•œ ์ผ, ์˜ค๋Š˜ ํ•œ ์ผ์„ 5๋ถ„ ๋‚ด๋กœ ์งง๊ฒŒ ์ด์•ผ๊ธฐ

  • ์„œ๋กœ์˜ ๊ฑด๊ฐ•, ์‹ฌ๋ฆฌ, ๊ฐœ๋ฐœ ์ง„ํ–‰ ์ƒํƒœ๋ฅผ ๋‚˜๋ˆ„๊ณ  ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•จ

  • ๊ฒฐ๊ณผ๋ฅผ ์œ„ํ‚ค์— ๋งค์ผ ์ž‘์„ฑ

๋ฐ๋ชจ#

๋ฏธ๋‹ˆ ์„ธ๋ฏธ๋‚˜#

ํŒ€ ์ฃผ๊ฐ„ ํšŒ๊ณ #

  • ์„œ๋กœ ๊ฒฉ๋ คํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ ๋‚˜๋ˆ„๋ฉฐ ํ•จ๊ป˜ ์„ฑ์žฅํ•˜๊ธฐ

  • ์ด๋ฒˆ ์ฃผ์— ์ž˜ํ•œ ์ , ์•„์‰ฌ์šด ์ 

๋ฐฐ๋ฏผ์ƒํšŒ ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๊ตฌํ˜„#

๊ทธ๋ผ์šด๋“œ ๋ฃฐ#

๊นƒ ์…‹์—…#

๋ธŒ๋žœ์น˜#

์ผ€๋ฐฅ ์ผ€์ด์Šค

  • master

  • develop

  • frontend

  • backend

  • feature/issue-#

  • document

ํŒŒ์ผ๋ช… / ํด๋”๋ช…#

์ผ€๋ฐฅ ์ผ€์ด์Šค

  • ์ปค๋ฐ‹ - ํƒ€์ž…๋ณ„ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๋จธ๋ฆฟ๋ง ๋ถ™์ด๊ธฐ

  • git add . , git commit -m "" ์ตœ๋Œ€ํ•œ ์ž์ œํ•ด๋ณด๊ธฐ

ex) [build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test]

์ปจ๋ฒค์…”๋„ ์ปค๋ฐ‹์„ ์ฐธ์กฐํ•จ.

Conventional Commits

PR ๋ฐฉ์‹#

  • ๋‚ด๊ฐ€ ๋ณด๋‚ธ PR์€ ์ƒ๋Œ€๋ฐฉ์ด Squash and Merge ํ•˜๊ธฐ

์ด์Šˆ๋กœ ๋‚˜๋ˆ„๊ธฐ#

GitHub๋กœ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌํ•˜๊ธฐ Part1 - ์ด์Šˆ ๋ฐœ๊ธ‰ ๋ถ€ํ„ฐ ์ฝ”๋“œ๋ฆฌ๋ทฐ๊นŒ์ง€ | Popit

์œ„ํ‚ค#


๊ธฐ๋Šฅ ๋ช…์„ธํ™”#

ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๋ฐฉ๋ฒ•#

์›”์š”์ผ

ํ™”์š”์ผ - ๋ชฝ์ดŒํ† ์„ฑ์—ญ ํฐ์ง‘ 11์ธต, 9์‹œ

์ˆ˜์š”์ผ, ๋ชฉ์š”์ผ - ๋ฒ”๊ณ„์—ญ ์Šคํƒ€๋ฒ…์Šค, 9์‹œ

๋ชฉ์š”์ผ ์™„์„ฑ์„ ๋ชฉํ‘œ๋กœ, ๊ธˆ์š”์ผ ์˜ค์ „์—๋Š” ๋ฌธ์„œ ์ •๋ฆฌ๋‚˜, ๋ฆฌํŒฉํ† ๋ง ์ •๋„๋งŒ

๊ธˆ์š”์ผ ์˜ค์ „ 11์‹œ๊นŒ์ง€


๋ฐฐ๋ฏผ์ƒํšŒ ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ#


  1. ์•„์ด๋”” input

ยท ์•ฝ 3๋ถ„

๊ณต๋ถ€๋Š” ์–ด๋–ป๊ฒŒ?#

๊ตฌ๊ธ€๋ง#

  • ์˜์–ด vs ํ•œ๊ตญ์–ด

    ํ•œ๊ตญ์–ด๋Š” ์ปจํ…์ธ ๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค. ๊ณต์‹ ์‚ฌ์ดํŠธ๋ฅผ ๋ณด์ž.

MDN#

stackoverflow#

  • ์งˆ๋ฌธ์„ ๋‚จ๊ธฐ๊ณ  ๋‹ต๋ณ€์„ ๋‹ฌ์•„๋ผ

๋””๋ฒ„๊น…#

  • ์ธ์ƒ์˜ ์ ˆ๋ฐ˜ ์ด์ƒ์„ ๋””๋ฒ„๊น…์— ์Ÿ๋Š”๋‹ค

  • ๋””๋ฒ„๊น…ํ•˜๋ฉด์„œ ํ•™์Šตํ•˜๋ผ

  • this , closure ๋“ฑ๋“ฑ ์–ด๋ ค์šด ๊ฐœ๋…์€ ๋””๋ฒ„๊น… ์ฐฝ์„ ๋„์šฐ๊ณ  ์ฝœ ์Šคํƒ์— ์Œ“์ธ ์ง€์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ญ”์ง€ ๋ณด๋ฉด์„œ ํ•™์Šต

  • ๋””๋ฒ„๊น… ์ฃผ๋„ ํ•™์Šต

  • ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋ฌด์‹œํ•˜์ง€ ๋งˆ๋ผ

    ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ž์ฃผ ๋ด์•ผ์ง€ ๋‹ค์Œ ๋ฒˆ์— ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋งŒ ๋ณด๊ณ  ์ƒํ™ฉ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Œ

JS์˜ ํ‘œ์ค€#

  • ECMAScript

  • ES 2015 == ES6

  • prototype ๋ชฐ๋ผ๋„ ๊ฐœ๋ฐœํ•  ์ˆœ ์žˆ์ง€๋งŒ, JS์˜ ํ•ต์‹ฌ์ด prototype ์ด๋‹ค. ๊ผญ ์ดํ•ดํ•ด์•ผํ•œ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ#

ํ˜„์‹ค ์„ธ๊ณ„์— ์žˆ๋Š” ์‚ฌ๋ฌผ. ์‹ค์กดํ•˜๋Š” ๊ฒƒ.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ์€ ์—ญํ• 

์—ญํ• ์„ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

new ํ‚ค์›Œ๋“œ ์ƒ์„ฑ์ž, ์†์„ฑ์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„ฃ์–ด์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค.

์Šคํƒ€๋ฒ…์Šค ์ปคํ”ผ, ๋ฐ”๋ฆฌ์Šคํƒ€์˜ ์˜ˆ์‹œ

์˜์กด์„ฑ์ด ๋‚ฎ์€ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์—ฐ๊ฒฐ์„ ๋Š์Šจํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. โ†’ ๋””์ž์ธ ํŒจํ„ด

์˜์กด์„ฑ์ด ๋‚ฎ์•„์„œ ์ˆ˜์ •์ด ๋˜๋„ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ๊ฐ์ฒด๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ

์ฝ”๋”ฉ๋ณด๋‹ค ๋””์ž์ธ

๋ฉ”์†Œ๋“œ vs ํ”„๋กœํ† ํƒ€์ž…#


๋ฉ”์†Œ๋“œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐจ์ง€

ํ”„๋กœํ† ํƒ€์ž…์€ ๊ฐ ๊ฐ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‰์–ด ํ•จ.

module vs import#

์ฆ‰์‹œ์‹คํ–‰ํ•จ์ˆ˜์™€ private#

๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ#

JavaScript๋Š” ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ๋กœ ๋™์ž‘

then์ด ์‹คํ–‰๋œ ๊ฒŒ ์•„๋‹ˆ๋ผ then์— ๋“ฑ๋ก๋œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

  • ํด๋กœ์ €

  • ์ด๋ฒคํŠธ ๋ฃจํ”„


ยท ์•ฝ 6๋ถ„

๋‚˜์˜ ๊ฐ์˜ค/๊ณ„ํš#

  1. ์šฐ์•„ํ•œํ…Œํฌ์บ ํ”„ ๋๋‚˜๊ณ  ํ•จ๊ป˜ ํ”„๋กœ์ ํŠธํ•  ์‚ฌ๋žŒ๋“ค ๋งŒ๋‚˜๊ธฐ

  2. ๋‹ค๋ฅธ ์‚ฌ๋žŒ ์˜๊ฒฌ ์ž˜ ๋“ฃ๊ธฐ

  3. ๋‚ด๊ฐ€ ์•„๋Š” ๊ฒƒ์€ ์นœ์ ˆํžˆ ์•Œ๋ ค์ฃผ๊ธฐ

  4. ๋ชจ๋ฅด๋Š” ๊ฒƒ์€ ์ž˜ ์งˆ๋ฌธํ•˜๊ธฐ

  5. ๋ฐฐ์šด ๊ฒƒ์€ ๊ฐœ์ธ์ ์œผ๋กœ ์จ๋จน์–ด ๋ณด๊ธฐ

  6. ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ์€ ์˜ค๋Š˜ ๋ณต์Šตํ•˜๊ธฐ

Git / Github#

Git์— ๊ด€ํ•˜์—ฌ#

Git์€ ๋ฆฌ๋ˆ„์Šค ํ† ๋ฐœ์ฆˆ(Linus Torvalds)๊ฐ€ ๋ฆฌ๋ˆ…์Šค(Linux) ์ปค๋„์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ ์†Œ์Šค๊ด€๋ฆฌ ํˆด์ด๋‹ค. (ใ„ทใ„ท) Git ์ด์ „์˜ ํ˜•์ƒ๊ด€๋ฆฌ ํˆด์€ SVN, CVS ๋“ฑ์ด ์žˆ์—ˆ์Œ.

๊ฐ„๋‹จํ•œ ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— Git์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋‚œ์ด๋„๋ฅผ ๋†’์ด์ง€๋งŒ, ๋ณต์žกํ•œ ๋Œ€๊ทœ๋ชจํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋‚œ์ด๋„๋ฅผ ์ƒ๋‹นํžˆ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•„์ˆ˜์ ์ด๋‹ค.

์•ˆํ‹ฐ ํŒจํ„ด#

  • git add . : ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ ํ•œ๋ฒˆ์— ์Šคํ…Œ์ด์ง• ํ•˜์ง€ ๋ง์•„๋ผ. ํ•œ ํŒŒ์ผํ•œ ํŒŒ์ผ ์”ฉ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๋ฉด์„œ ์ปค๋ฐ‹ํ•ด๋ผ.

  • git commit -m "" : ์ปค๋ฐ‹์€ git commit ์œผ๋กœ ์ œ๋ชฉ๊ณผ ํ•จ๊ป˜ ๊ฐ„๋‹จํ•œ ์„ค๋ช…๊นŒ์ง€ ๋ง๋ถ™์—ฌ์„œ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ •์„์ด๋‹ค.

์ด๋Ÿฌํ•œ ์•ˆํ‹ฐ ํŒจํ„ด์ด ๋งŒ์—ฐํ•ด ์žˆ์Œ. ์ข‹์€ ์ปค๋ฐ‹ ์Šต๊ด€์„ ๊ธฐ๋ฅด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

Git flow#

Git-flow, Github flow, Gitlab flow ๊ฐ๊ฐ์ด ๋‹ค๋ฅธ ํ˜•์ƒ ๊ด€๋ฆฌ ์ „๋žต์ด๋‹ค. ์ด ์™ธ์—๋„ ์ˆ˜๋งŽ์€ flow ๋“ค์ด ์กด์žฌ. ํ•˜์ง€๋งŒ Git-flow ๋ผ๋Š” ์ด๋ฆ„ ๋•Œ๋ฌธ์— Git flow๊ฐ€ ์ •์„, ํ‘œ์ค€์ด๋ผ๋Š” ์˜คํ•ด๋ฅผ ํ•˜๊ธฐ ์‰ฝ๋‹ค. ํ•˜์ง€๋งŒ Git flow๊ฐ€ ๋ณต์žกํ•˜๊ณ  ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์€ ์กฐ์ง, ํŒ€์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. Git flow ์™ธ์—๋„ ํ›Œ๋ฅญํ•œ flow ์ „๋žต๋“ค์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— Git flow์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€๋งŒ ๋ฌด์กฐ๊ฑด GIt flow๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ดํ‘œ์ค€์ธ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

Understanding the GitHub flow

์šฐ๋ฆฐ Git-flow๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์š” - ์šฐ์•„ํ•œํ˜•์ œ๋“ค ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ

ํ•˜๋ฃจ์— 1000๋ฒˆ ๋ฐฐํฌํ•˜๋Š” ์กฐ์ง ๋˜๊ธฐ | ๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด#

  • ๋ฉ”์‹œ์ง€๋Š” ํ•œ๊ธ€๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

    ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ํŒ€์› ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฏธ๋ž˜์˜ ๋‚˜๋ฅผ ์œ„ํ•ด ๋‚จ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค. ์ ๋‹นํ•œ ๋‹จ์–ด๋ฅผ์ฐพ์ง€ ๋ชปํ•œ ์–ด์ƒ‰ํ•œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ๋‚จ๊ธฐ๋Š” ๊ฒƒ๋ณด๋‹ค ํ•œ๊ธ€๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ๋‚ซ๋‹ค.

    ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ์•„๋‹ˆ๋‹ˆ๊นŒ

    ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๋กœ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ์„ ์˜์–ด๋กœ ๋‚จ๊ธฐ๊ณ  ์„ค๋ช…์„ ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.

    ์‹ค์ œ๋กœ TDD๋ฅผ ์ž˜ํ•˜๋Š” ํŒ€์—์„  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ๋ฉ”์†Œ๋“œ ๋ช…์„ ํ•œ๊ธ€๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ํ›จ์”ฌ ๋ช…ํ™•ํ•œ ๋ฉ”์†Œ๋“œ ๋ช…์œผ๋กœ ์ธํ•ด ์ข‹์€ ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค.

  • fork ํ›„ PR๊ณผ branch ํ›„ PR์˜ ์ฐจ์ด

    ๊ธฐ๋ณธ์ ์œผ๋กœ fork๋Š” ๋‚ด๊ฐ€ ์ด ์ €์žฅ์†Œ์— ๊ถŒํ•œ์ด ์—†์„ ๋•Œ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜คํ”ˆ ์†Œ์Šค์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ๋“ฑ..

Git ๋ช…๋ น์–ด์™€ ๋™์ž‘ ์›๋ฆฌ#

Git ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์ œ๋Œ€๋กœ ๋ฐฐ์šด ๊ฒƒ์€ ์ฒ˜์Œ์ด์—ˆ๊ณ  ๊ธฐ์กด ์•Œ๊ณ  ์žˆ๋˜ ๊ฐœ๋…์ด ์ž˜๋ชป๋˜์—ˆ๋‹ค๋Š”๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์ถฉ๊ฒฉ์„ ๋ฐ›์•˜๋‹ค.

Learn Git Branching

  • git init : ์ˆจ๊ฒจ์ง„ ํด๋”๊ฐ€ ํ•˜๋‚˜ ์ƒ๊น€

    • .git : ๋กœ์ปฌ ์ €์žฅ์†Œ

      • git์˜ ์ €์žฅ ๋‹จ์œ„๋Š” ์ปค๋ฐ‹

        • Working directory โ†’ Stage โ†’ Commit
    • GitHub or GitLab ... - ์›๊ฒฉ ์ €์žฅ์†Œ

    • git reset โ†’ ๋‚ ์•„๊ฐ€์ง€ ์•Š์Œ.

    • ์›Œํ‚น ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์Šค๋ƒ…์ƒท

    • ์ปค๋ฐ‹์€ ๋‚ด๋ถ€์ ์œผ๋กœ ํŠธ๋ฆฌ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Œ ํŠธ๋ฆฌ์— ์˜ค๋ธŒ์ ํŠธ๋“ค์ด ๋‹ฌ๋ ค์„œ ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์„ ๊ตฌ์„ฑํ•จ

    • git cat-file -t ce013

    • git cat-file blob ce013

    • git cat-file -t HEAD

    • git log -n1

    • git cat-file -t 7da33cf4

    • git cat-file commit 7da33cf4

    • git ls-tree aaa96ced2d9a1c8e ...

    • branch๋Š” ํ—ค๋“œ์— ๋Œ€ํ•œ ์ฐธ์กฐ์ผ ๋ฟ

    • ์ปค๋ฐ‹์€ ๋ถ€๋ชจ ์ปค๋ฐ‹์ด ์žˆ๋‹ค

    • git checkout C4 vs git checkout hello

    • git์€ diff๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ „์ฒด๋ฅผ ์ €์žฅํ•œ๋‹ค.

    • svn์€ diff๋ฅผ ์ €์žฅํ•œ๋‹ค

    • tree .git

    • ๋ธŒ๋žœ์น˜๋ฅผ ๋งŽ์ด ๋งŒ๋“ค์–ด๋„ ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

    • git status

    • git checkout master

    • ๋ธŒ๋žœ์น˜๋Š” ์ปค๋ฐ‹์— ๋Œ€ํ•œ ์ฐธ์กฐ์ผ ๋ฟ ์•„๋ฌด๊ฒƒ๋„ ์•„๋‹ˆ๋‹ค.

    • ๊นƒ์—๋Š” ์ปค๋ฐ‹๋ฐ–์— ์—†๋‹ค. ํƒœ๊ทธ, ๋ธŒ๋žœ์น˜, ์–ด์ฉŒ๊ณ ๋Š” ๋‹ค ์ฐธ์กฐ ๋ณ€์ˆ˜์ผ ๋ฟ์ด๋‹ค ์‹ค์ œ ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด๋Š” ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค.

    • git reset โ€”hard Head~1 ์‹œ์— ๋ณต์›ํ•˜๋Š” ๋ฒ•

    • git branch test ์ฒดํฌ์„ฌ

    • git reflog ๋ชจ๋“  ์ฐธ์กฐ ๋ณ€์ˆ˜๋“ค์˜ ๋กœ๊ทธ๋ฅผ ๋ณด๋Š” ๋ช…๋ น

    • git push ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์žˆ๋Š” ๊ฒƒ์„ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ๋ณด๋ƒ„