์ค๋ต ๊น ๐ช - ์ค๊ธํธ #5: ๊นํ๋ธ PR ํ ํ๋ฆฟ์ผ๋ก ํ์ ํจ์จ ๋์ด๊ธฐ
by its_TIMIGitHub๋ ํ์ ๊ฐ์ ์ํํ ํ์ ์ ์ํด ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๊ทธ์ค์์๋ 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 |
|-------|-------|
|  |  |
-->
---
## ๐ฌ ๋ฆฌ๋ทฐ ์์ฒญ ์ฌํญ (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