3 min read

๊นƒ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ž‘์„ฑ ๋ฐฉ๋ฒ•

Table of Contents

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ž€?

๋ง ๊ทธ๋Œ€๋กœ ๊นƒ ์ปค๋ฐ‹์„ ํ•  ๋•Œ ๋‚จ๊ธฐ๋Š” ๋ฉ”์‹œ์ง€. ๋‚˜๋Š” ๊นƒ์„ ์ด์šฉํ•  ๋•Œ์— CLI๋ณด๋‹จ Git Fork๋‚˜ SourceTree๊ฐ™์€ GUIํˆด์„ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด๋‹ค.

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

๊ทธ๋ ‡๊ฒŒ ์—…๋ฌด๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค๋ณด๋ฉด ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์˜๋ฌธ์ด ์ƒ๊ธฐ๊ณ  ๋ญ”๊ฐ€ ๋ฃฐ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋А๋ผ๋Š” ์ˆœ๊ฐ„์ด ์˜จ๋‹ค.

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ ์ด์œ 

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ๋‚จ๊ธฐ๋‹ค ๋ณด๋ฉด ๋ถ„๋ช… ์ด ๋ฉ”์‹œ์ง€์— ๊ทœ์น™์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋А๋ผ๋Š” ์ˆœ๊ฐ„์ด ์˜ค๊ฒŒ๋œ๋‹ค.

๋‚ด๊ฐ€ ๋А๋‚€ ์ง€์ ์€ ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์ž‘์šฉํ–ˆ๋‹ค.

  1. ์—…๋ฌด, ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ๊ณผ๊ฑฐ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  2. ํŒ€์› ๋˜๋Š” ๋‚ด๊ฐ€ ์ž˜๋ชป ํ‘ธ์‹œํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•œ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  3. ๊ฐœ๋ฐœ ์ฝ”๋“œ ๋ฐ ์šด์˜ ์ฝ”๋“œ๋ฅผ ๋กค๋ฐฑํ•˜๊ณ  ์‹ถ์„ ๋•Œ

์ด๋Ÿฐ ๊ฒฝ์šฐ์— ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์˜ ๊ทœ์น™์ด ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํ•ด๋‹น ์ปค๋ฐ‹์— ํƒœ๊ทธ๋ฅผ ์ž˜ ๋‚จ๊ฒจ๋†“์•˜์œผ๋ฉด ๋ชจ๋ฅผ๊นŒ, ์–ด์ฐŒ์–ด์ฐŒ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋ณด๊ณ ์‹ถ์€ ์ปค๋ฐ‹์„ ์ฐพ์•˜๋”๋ผ๋„ ๋ฉ”์‹œ์ง€๊ฐ€ ์ž˜ ๋‚จ๊ฒจ์ ธ์žˆ์ง€ ์•Š์œผ๋ฉด ์ผ์ผํžˆ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•จ์„ ๋А๊ผˆ๋‹ค.

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž˜ ์ž‘์„ฑํ•ด ๋’€๋”๋ผ๋ฉด, ๋น ๋ฅด๊ฒŒ ๋‚ด์šฉ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ?

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๋ ˆํผ๋Ÿฐ์Šค ์ฐพ์•„๋ณด๊ธฐ

์ž˜ ์ž‘์„ฑ๋œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ๋ฌด์—‡์ผ๊นŒ? ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ ๋‹ค์–‘ํ•œ ๊ทœ์น™์ด ์žˆ์—ˆ๋‹ค.

์ธํ„ฐ๋„ท์„ ์ฐพ์•„๋ณด๋ฉด ํฌ๊ฒŒ ์ž‘์„ฑ ๊ทœ์น™๊ณผ ํƒ€์ž…์„ ์ž‘์„ฑํ•˜๋Š” ๊ทœ์น™์ด ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜์˜จ๋‹ค.

์ž‘์„ฑ ๊ทœ์น™

  1. ์ œ๋ชฉ๊ณผ ๋ณธ๋ฌธ์„ ๋นˆ ํ–‰(ํ•œ ์ค„ ๋„์šฐ๊ธฐ)์œผ๋กœ ๊ตฌ๋ถ„
  2. ์ œ๋ชฉ์„ 50์ž ๋‚ด๋กœ ์ œํ•œ
  3. ์ œ๋ชฉ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑ
  4. ์ œ๋ชฉ ๋์— ๋งˆ์นจํ‘œ ๋„ฃ์ง€ ์•Š๊ธฐ
  5. ์ œ๋ชฉ์€ ๋ช…๋ น๋ฌธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ณผ๊ฑฐํ˜•์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ
  6. ๋ณธ๋ฌธ์˜ ๊ฐ ํ–‰์€ 72๊ธ€์ž ๋‚ด๋กœ ์ œํ•œ
  7. ์–ด๋–ป๊ฒŒ ๋ณด๋‹ค๋Š” ๋ฌด์—‡(What)๊ณผ ์™œ(How)๋ฅผ ์„ค๋ช…

์ด๋Ÿฐ ๊ทœ์น™์ด ๊ฐ€์žฅ ๋งŽ์ด ๋ณดํŽธํ™” ๋˜์–ด์žˆ๊ณ  ๋‚˜์˜ค๋Š” ๋“ฏ ํ•˜๋‹ค.

๊ทœ์น™์„ ์ฝ์–ด๋ณด๋ฉด ์•Œ๋‹ค์‹œํ”ผ ์˜๋ฌธ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋Š” ๊ฒƒ ๊ฐ™๊ณ , ๋‚˜๋จธ์ง€๋Š” ํŒ€๋ณ„ ๊ทœ์น™์— ๋”ฐ๋ผ ์œ ์—ฐ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์ฐธ๊ณ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

ํƒ€์ž… ๊ทœ์น™

  1. feat (feature) - ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  2. fix (bug fix) - ๋ฒ„๊ทธ ํ”ฝ์Šค
  3. docs (documentation) - ๋ฌธ์„œ ์ˆ˜์ •
  4. style (formatting, missing semi colons, โ€ฆ) - ์ฝ”๋“œ ๋กœ์ง์˜ ๋ณ€๊ฒฝ ์—†์ด, ์Šคํƒ€์ผ๊ณผ ํฌ๋งทํŒ…์˜ ๋ณ€ํ™”๋งŒ ์ค„ ๊ฒฝ์šฐ
  5. refactor - ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
  6. test - ํ…Œ์ŠคํŠธ ์ฝ”๋“œ
  7. chore (maintain) - ๋นŒ๋“œ, ํŒจํ‚ค์ง€ ๋“ฑ

์ฃผ๋กœ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์˜ ์ œ๋ชฉ ์•ž์— ํƒ€์ž…์„ ๋ช…์‹œํ•˜๊ณ  ํ•ด๋‹น ์ปค๋ฐ‹์ด ๋ฌด์Šจ ์ผ์„ ํ•˜๋Š”์ง€ ๋ฐ”๋กœ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋‚˜๋Š” GUIํˆด์„ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ ํ•ด๋‹น ํƒ€์ž…๋“ค๋งŒ ์ž˜ ์ง€์ผœ๋„ ๋ณด๊ธฐ ํŽธํ•ด์ง€๊ฒ ๋‹ค.

์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ• ๊นŒ

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

[feat] ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

ํ†ตํ•ฉ๊ฒ€์ƒ‰ ๋ถ€๋ถ„์— ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

- ๋ณธ๋ฌธ๊ฒ€์ƒ‰ X
- ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ ์œ„์ฃผ

์œ„์˜ ์˜ˆ์‹œ์ •๋„๋งŒ ์ง€์ผœ์„œ ์‚ฌ์šฉํ•ด๋ณด์ž.

์ ์šฉํ•˜๊ณ  ๋ช‡๊ฐœ์›”๊ฐ„ ์‚ฌ์šฉํ•ด๋ดค๋”๋‹ˆ ์žฅ๋‹จ์ 

ํ™•์‹คํžˆ ์ฒ˜์Œ ์ƒ๊ฐ์ฒ˜๋Ÿผ ๊ณผ๊ฑฐ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฑฐ๋‚˜ ํ•ด๋‹น ์ปค๋ฐ‹์˜ ๋‚ด์šฉ์„ ๋ณผ ๋•Œ๋Š” ํŽธํ•ด์กŒ๋‹ค. ๊ทผ๋ฐ ํ’€๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๋จธ์ง€๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ๊นƒ๋žฉ, ๊นƒํ—ˆ๋ธŒ์˜ merge ์ปค๋ฐ‹์ด ์ƒ๊ธฐ๋Š”๋ฐ ํ•ด๋‹น ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๊นŒ์ง€ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•œ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์ž˜ ๊ด€๋ฆฌํ• ์ˆ˜ ์žˆ์„์ง€๋Š” ์ข€ ๋” ๊ณต๋ถ€๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค. ๊ทธ๋ž˜ํ”„์˜ ๊ทธ๋ฆผ๋„ ์ด์˜๊ฒŒ ๋งŒ๋“œ๋ ค๋ฉด git ๊ณต๋ถ€๋ฅผ ๋” ํ•ด์•ผ๊ฒ ๋‹ค.