Dev_TIMI

์Šค๋‚ต ๊นƒ ๐Ÿช - ์ค‘๊ธ‰ํŽธ #5: ๊นƒํ—ˆ๋ธŒ PR ํ…œํ”Œ๋ฆฟ์œผ๋กœ ํ˜‘์—… ํšจ์œจ ๋†’์ด๊ธฐ

by its_TIMI

GitHub๋Š” ํŒ€์› ๊ฐ„์˜ ์›ํ™œํ•œ ํ˜‘์—…์„ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ์ค‘์—์„œ๋„ PR(Pull Request)์€ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์™€ ๋ณ‘ํ•ฉ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•ต์‹ฌ ๋„๊ตฌ์ด๋‹ค. ํ•˜์ง€๋งŒ PR ์ž‘์„ฑ ์‹œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๋ˆ„๋ฝํ•˜๊ฑฐ๋‚˜, ๋ถˆํ•„์š”ํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์ข…์ข… ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด PR ํ…œํ”Œ๋ฆฟ์„ ํ™œ์šฉํ•˜๋ฉด ํ˜‘์—… ํšจ์œจ์„ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” GitHub์˜ PR ํ…œํ”Œ๋ฆฟ ์„ค์ • ๋ฐฉ๋ฒ•๊ณผ ํ™œ์šฉ๋ฒ•์„ ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.


๐ŸŒŸ PR ํ…œํ”Œ๋ฆฟ์ด๋ž€?

 

PR ํ…œํ”Œ๋ฆฟ์€ Pull Request ์ž‘์„ฑ ์‹œ ์ž๋™์œผ๋กœ ํฌํ•จ๋˜๋Š” ์–‘์‹์ด๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์ž‘์„ฑ์ž๊ฐ€ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋น ์ง์—†์ด ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ , ๋ฆฌ๋ทฐ์–ด๋Š” ๋‚ด์šฉ์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.


๐ŸŒŸ PR ํ…œํ”Œ๋ฆฟ์˜ ์žฅ์ 

1. ์ค‘์š” ์ •๋ณด ๋ˆ„๋ฝ ๋ฐฉ์ง€

์ž‘์—… ๋ฐฐ๊ฒฝ, ๋ณ€๊ฒฝ ์‚ฌํ•ญ, ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ๋“ฑ์˜ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๋†“์น˜์ง€ ์•Š๋Š”๋‹ค.

2. ๋ฆฌ๋ทฐ ํ’ˆ์งˆ ํ–ฅ์ƒ

๋ช…ํ™•ํ•œ ์„ค๋ช…์œผ๋กœ ๋ฆฌ๋ทฐ์–ด๊ฐ€ ๋” ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ์ผ๊ด€๋œ ํ˜•์‹ ์ œ๊ณต

ํŒ€์› ๋ชจ๋‘๊ฐ€ ๋™์ผํ•œ ํ˜•์‹์œผ๋กœ PR์„ ์ž‘์„ฑํ•˜์—ฌ ํ˜‘์—…์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค.


๐ŸŒŸ PR ํ…œํ”Œ๋ฆฟ ์„ค์ • ๋ฐฉ๋ฒ•

 

1. ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ ์ƒ์„ฑ

 

GitHub ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ .github ๋””๋ ‰ํ† ๋ฆฌ์— ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค:

mkdir -p .github
touch .github/PULL_REQUEST_TEMPLATE.md

 

2. ํ…œํ”Œ๋ฆฟ ๋‚ด์šฉ ์ž‘์„ฑ

 

์•„๋ž˜๋Š” PR ํ…œํ”Œ๋ฆฟ์˜ ์˜ˆ์‹œ์ด๋‹ค:

# ๐Ÿ“ Pull Request Template

## #๏ธโƒฃ Issue Number
<!-- ์ด PR์ด ํ•ด๊ฒฐํ•˜๋Š” ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ์ ์–ด์ฃผ์„ธ์š”. -->
<!-- ex) #123 -->

---

## ๐Ÿ“ ์š”์•ฝ (Summary)
<!-- ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐ ๊ด€๋ จ ์ด์Šˆ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. -->
<!-- ๋ฌด์—‡์„ ์™œ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€, ํ•ด๋‹น PR์˜ ๋ชฉ์ ์„ ์š”์•ฝํ•ด์ฃผ์„ธ์š”. -->

---

## ๐Ÿ› ๏ธ PR ์œ ํ˜• (Type of Changes)
<!-- ์•„๋ž˜ ์„ ํƒ์ง€์—์„œ ํ•ด๋‹นํ•˜๋Š” ์‚ฌํ•ญ์„ ๋ชจ๋‘ ์„ ํƒํ•˜์„ธ์š”. -->

- [ ] โœจ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (New Feature)
- [ ] ๐Ÿ› ๋ฒ„๊ทธ ์ˆ˜์ • (Bug Fix)
- [ ] ๐ŸŽจ UI/UX ๋ณ€๊ฒฝ (UI/UX Update)
- [ ] ๐Ÿ› ๏ธ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง (Code Refactor)
- [ ] ๐Ÿ“š ๋ฌธ์„œ ์ˆ˜์ • (Documentation Update)
- [ ] ๐Ÿงช ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€ / ์ˆ˜์ • (Testing)
- [ ] ๐Ÿ”ง ๋นŒ๋“œ ์„ค์ • ๋ณ€๊ฒฝ (Build/Package Manager)
- [ ] ๐Ÿšš ํŒŒ์ผ ๋ฐ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ (File/Folder Structure)

---

## ๐Ÿ“ธ ์Šคํฌ๋ฆฐ์ƒท (Screenshots - ์„ ํƒ)
<!-- ๋ณ€๊ฒฝ๋œ UI๋‚˜ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” ์Šคํฌ๋ฆฐ์ƒท์ด ์žˆ๋‹ค๋ฉด ์ฒจ๋ถ€ํ•ด์ฃผ์„ธ์š”. -->
<!-- ex)
| Before | After |
|-------|-------|
| ![Before](url) | ![After](url) |
-->

---

## ๐Ÿ’ฌ ๋ฆฌ๋ทฐ ์š”์ฒญ ์‚ฌํ•ญ (Notes for Reviewers)
<!-- ๋ฆฌ๋ทฐ์–ด๊ฐ€ ์ค‘์ ์ ์œผ๋กœ ๋ด์คฌ์œผ๋ฉด ํ•˜๋Š” ๋ถ€๋ถ„์ด๋‚˜ ๋…ผ์˜๊ฐ€ ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ์ ์–ด์ฃผ์„ธ์š”. -->
<!-- ex) "๋ฉ”์„œ๋“œ XXX์˜ ์ด๋ฆ„์„ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ถ”์ฒœ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”!" -->

---

## โœ… PR ์ฒดํฌ๋ฆฌ์ŠคํŠธ (PR Checklist)
PR์ด ๋‹ค์Œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

- [ ] ๐Ÿ“– ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๊ฐ€ ํŒ€์˜ ์ปจ๋ฒค์…˜์— ๋งž๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
- [ ] ๐Ÿงช ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
- [ ] ๐Ÿ› ๏ธ ๋นŒ๋“œ์™€ ์‹คํ–‰ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค.
- [ ] ๐Ÿ“š ๊ด€๋ จ ๋ฌธ์„œ๊ฐ€ ์ตœ์‹  ์ƒํƒœ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ: README, Wiki)
- [ ] ๐Ÿค ๋ฆฌ๋ทฐ์–ด์™€ ๋…ผ์˜ํ•œ ๋‚ด์šฉ์ด ๋ฐ˜์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

3. PR ์ž‘์„ฑ ์‹œ ํ…œํ”Œ๋ฆฟ ์ ์šฉ ํ™•์ธ

 

์œ„ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉด, GitHub์—์„œ PR ์ž‘์„ฑ ํŽ˜์ด์ง€๋ฅผ ์—ด ๋•Œ ํ…œํ”Œ๋ฆฟ ๋‚ด์šฉ์ด ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋œ๋‹ค.


๐ŸŒŸ ์—ฌ๋Ÿฌ ํ…œํ”Œ๋ฆฟ ํ™œ์šฉํ•˜๊ธฐ

 

๋‹ค์–‘ํ•œ PR ์ƒํ™ฉ์— ๋งž๋Š” ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด .github/PULL_REQUEST_TEMPLATE/ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— ์—ฌ๋Ÿฌ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด:

 

.github/PULL_REQUEST_TEMPLATE/bug_fix.md

.github/PULL_REQUEST_TEMPLATE/feature.md

 

PR ์ƒ์„ฑ ์‹œ ๊ฐ ์ƒํ™ฉ์— ๋งž๋Š” ํ…œํ”Œ๋ฆฟ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.


๐ŸŒŸ PR ํ…œํ”Œ๋ฆฟ์„ ํ™œ์šฉํ•œ ํ˜‘์—… ์‚ฌ๋ก€

 

PR ํ…œํ”Œ๋ฆฟ์€ ํŒ€ ํ˜‘์—…์˜ ํšจ์œจ์„ ๋†’์ด๋Š” ๋ฐ ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค.

๋‹ค์Œ์€ PR ํ…œํ”Œ๋ฆฟ์„ ํ™œ์šฉํ•ด ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ด์ ์ด๋‹ค:

 

1. ๋ฆฌ๋ทฐ์–ด๊ฐ€ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ๋งฅ๋ฝ์„ ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•˜์—ฌ ๋ฆฌ๋ทฐ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ๋ช…์‹œํ•˜์—ฌ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ํŒ€ ๋‚ด ๊ทœ์น™์„ ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


๐ŸŒŸ ๋งˆ๋ฌด๋ฆฌ

 

PR ํ…œํ”Œ๋ฆฟ์€ ํ˜‘์—… ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋น„ํšจ์œจ์„ ์ค„์ด๊ณ , ์ฝ”๋“œ ๋ฆฌ๋ทฐ์™€ ๋ณ‘ํ•ฉ ๊ณผ์ •์„ ๋”์šฑ ์›ํ™œํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.

GitHub์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋งŒ ํ™œ์šฉํ•ด๋„ ํŒ€์˜ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž„์„ ๊ธฐ์–ตํ•˜์ž.

 

๋‹ค์Œ์—๋„ ์‹ค์šฉ์ ์ธ ๊นƒ ํŒ์œผ๋กœ ์ฐพ์•„์˜ค๊ฒ ๋‹ค. ๐Ÿš€

๋ฐ˜์‘ํ˜•

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

Dev_TIMI

its_TIMI

ํ™œ๋™ํ•˜๊ธฐ