๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Dev

[Git] Issue, Pull Request, Code Review ์‚ฌ์šฉํ•˜์—ฌ ํ˜‘์—… (feat. PR ์Šน์ธ ํ›„ ํ•ด์•ผํ•  ์ผ)

jcowwk 2025. 2. 15. 14:48

Issue, Pull Request, Code Review ์‚ฌ์šฉํ•˜์—ฌ ํ˜‘์—…

(feat. PR ์Šน์ธ ํ›„ ํ•ด์•ผํ•  ์ผ)


0. git ๋ ˆํผ์ง€ํ† ๋ฆฌ ์—ฐ๊ฒฐ

1. Issue

2. Pull Request

3. PR ์Šน์ธ ํ›„ ํ•ด์•ผํ•  ์ผ


0. git ๋ ˆํผ์ง€ํ† ๋ฆฌ ์—ฐ๊ฒฐ

์ง€๊ธˆ์€ ํ˜‘์—… ๊ธฐ๋Šฅ์„ ๊ณต๋ถ€ํ•  ๋ ˆํผ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ˜‘์—… ๊ธฐ๋Šฅ๋งŒ ์•Œ์•„๊ฐ€๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ ์ด ๊ณผ์ •์€ ๋„˜์–ด๊ฐ€์…”๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

 

์ €๋Š” ์ด๋•Œ๊นŒ์ง€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์ปค๋ฐ‹์„ ํ•˜๋ฉด์„œ ๋™์‹œ์— ๋ ˆํผ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ์ปค๋ฐ‹์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

 

 

1. Issue

ํ”„๋กœ์ ํŠธ์— ๊ธฐ๋Šฅ์ด๋‚˜ ์ฝ”๋“œ ๋˜๋Š” ์„ค์ • ๋“ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ปค๋ฐ‹์„ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ, Issue๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Issue์—๋Š” ์™œ ์ด ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•œ์ง€, ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์ด ๋ฌด์—‡์ธ์ง€ ๋“ฑ์˜ ๋ฐฐ๊ฒฝ๊ณผ ๋ชฉ์ ์„ ์•Œ ์ˆ˜ ์žˆ์–ด์„œ ๋‚˜์ค‘์— ์ด ์ฝ”๋“œ๊ฐ€ ์™œ ์ถ”๊ฐ€/๋ณ€๊ฒฝ ๋˜์—ˆ๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๋ ˆํผ์ง€ํ† ๋ฆฌ์˜ Issues์— ๋“ค์–ด๊ฐ€์„œ New issue๋ฅผ ํด๋ฆญํ•ด์ค๋‹ˆ๋‹ค.

 

 

์ฝ”๋“œ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์Šˆ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ์ •ํ•œ ํ…œํ”Œ๋ฆฟ์„ ํ™œ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ํ›„ Create ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด Issue๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

 

์šฐ์ธก์—์„œ ์ด์Šˆ์— ๋Œ€ํ•œ ๋ผ๋ฒจ์„ ๋ถ™์—ฌ ์–ด๋–ค ์ด์Šˆ์ธ์ง€ ํ•œ ๋ˆˆ์— ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ์ด์Šˆ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  #1 ์ด๋ž€ ํ‘œ์‹์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

commit ํ•  ๋•Œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๋’ค์— #1์„ ๋ถ™์ด๊ฒŒ ๋˜๋ฉด Pull Request๋ฅผ ํ•  ๋•Œ ์–ด๋–ค ๋‚ด์šฉ์— ๋Œ€ํ•œ Pull Request ์ธ์ง€ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

 

2. Pull Request

์ด์ œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•˜๊ณ  Pull Request๋ฅผ ํ•ด๋ด…์‹œ๋‹ค.

 

 

๊ฐ€์žฅ ์ฒ˜์Œ init์ด ๋œ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ git clone์œผ๋กœ ๊ฐ€์ ธ์˜ค์…จ์„ ๊ฒฝ์šฐ ์ž์‹ ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฑฐ๊ธฐ์—์„œ ์ž‘์—…์„ ํ•˜์‹ค๊ฒ๋‹ˆ๋‹ค.

git checkout -b ๋ธŒ๋žœ์น˜๋ช…์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ ๊ทธ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™์„ ํ•ด์ฃผ๊ณ  git branch๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ๋ธŒ๋žœ์น˜ ์œ„์น˜๋ฅผ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค.

 

 

๊ทธ ํ›„ ์ปค๋ฐ‹์„ ์ง„ํ–‰ํ•˜๊ณ  ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์—๋Š” #1์„ ๋ถ™์—ฌ Issue๋กœ ์ถ”์  ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

 

 

์œ„์˜ ํ™”๋ฉด์ฒ˜๋Ÿผ #1์— ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๋‹ค๋Œ€๋ฉด ์ด์Šˆ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Compare & pull request ๋ฒ„ํŠผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œน๋‹ˆ๋‹ค.

 

 

compare๋Š” ํ•ฉ์น˜๊ณ  ์‹ถ์€ ๋ธŒ๋žœ์น˜, base๋Š” ํ•ฉ์น  ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ์„ค์ •์„ํ•ด์ค๋‹ˆ๋‹ค.

PR์— ๋Œ€ํ•œ ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๋‚ด์šฉ์—๋Š” ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ์ •ํ•œ ํ…œํ”Œ๋ฆฟ์„ ํ™œ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์ด์ „ ๋‚ด์šฉ๊ณผ ๋ณ€๊ฒฝ ์ดํ›„ ๋‚ด์šฉ ๋“ฑ์„ ์ž‘์„ฑํ•˜๊ณ  Create pull request๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

ํ˜„์žฌ๋Š” ๊ทœ์น™์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ˜ผ์ž์„œ Merge pull request๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํŒ€์›๋“ค๊ณผ ํ˜‘์—…ํ•  ๋•Œ์—๋Š” ๊ทœ์น™์„ ์ •ํ•ด์„œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋‚˜ ํ™•์ธ์„ ๋ฐ›์€ ํ›„ Merge๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

Merge๋ฅผ ํ•ด์ฃผ๋ฉด test์— ์ž‘์„ฑํ•œ ๋‚ด์šฉ์ด main์—๋„ ๋ฐ˜์˜๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ ํ›„ ํ•ด๊ฒฐ์ด ๋œ Issue๋Š” Close ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

3. PR ์Šน์ธ ํ›„ ํ•ด์•ผํ•  ์ผ

๋ณธ์ธ์˜ PR์ด ์Šน์ด ๋˜์—ˆ์„ ๊ฒฝ์šฐ์—๋Š” ์›๋ž˜ ์ž‘์—…์„ ๊ณ„์†ํ•˜๋ฉด ๋˜์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ PR์ด ์Šน์ธ ๋˜์—ˆ์„ ๊ฒฝ์šฐ์—๋Š” ๊ผญ ํ•ด์•ผํ•  ์ผ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ํ”„๋กœ์ ํŠธ๋กœ ๋Œ์•„๊ฐ€๋ด…์‹œ๋‹ค.

 

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ณ€๊ฒฝํ•œ ์ฝ”๋“œ๊ฐ€ main์œผ๋กœ ํ•ฉ์ณ์ง€๊ฒŒ ๋˜์—ˆ์œผ๋‹ˆ๊นŒ ๊ทธ ์ฝ”๋“œ๋ฅผ ํ•ฉ์น˜๊ธฐ ์œ„ํ•ด์„œ๋Š” pull์„ ํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ์˜ ์ž‘์—…์ค‘์ธ ๋ธŒ๋žœ์น˜์—์„œ pull ํ•ด์ฃผ๊ฒŒ ๋˜๋ฉด PR ์ด์ „์˜ ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— main์œผ๋กœ ์ด๋™ํ•ด์„œ pull ํ•ด์ค€ ํ›„ ์ž‘์—…ํ•˜๋˜ ๋ธŒ๋žœ์น˜๋กœ ๋Œ์•„์™€์„œ pull ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

์ œ ๊นƒํ—ˆ๋ธŒ์˜ ํ˜„์žฌ ์ƒํ™ฉ์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค.

ํ•ญ์ƒ Commit์—๋งŒ 100% ์ด์—ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๋ถ„ํฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์„œ ์›ํ™œํ•˜๊ฒŒ ํ˜‘์—… ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.


๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !

ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค <3