์๊ฐ
์ด๋ฒ ์๊ฐ์๋ ๊นํ๋ธ๋ฅผ ์ ๋๋ก ํ์ฉํ ์ ์๋, ์ด์ & PR ์๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ ค๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.
๊นํ๋ธ๋ฅผ ์ฌ์ฉํ๊ณ ๊ณ์ ๋ถ๋ค์ ๋๋ถ๋ถ ์์ค ๊ฐ๋ ๋ค์ผ ํ ๋ฐ์, PR์ด merge ๋๋ฉด ๊ด๋ จ ์ด์๊ฐ ์๋์ผ๋ก ๋ซํ๋๋ก ํ๋ ๊ฒ์ ์ค์ ์ ๋๊ฒ ์ต๋๋ค.
Issue
๊นํ๋ธ์์ ์ด์ (Issue)๋, ๋ชจ๋ ์ข ๋ฅ์ ๋ฌธ์ ๋ฅผ ์๋ฏธํฉ๋๋ค. ์์๋ก Spring AI์ ์ด์๋ฅผ ๋ณด๋ฉด ์๋์ ๊ฐ์ด ์ฌ๋ฌ ๊ฐ๊ฐ ์์ต๋๋ค.
๊นํ๋ธ์ ๊ณต์ ๋ฌธ์์์๋ ์ด์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ช ํ๊ณ ์์ต๋๋ค.
GitHub Issue๋?
์ฐ๋ฆฌ ๋ชจ๋๋ ์ฐ๋ฆฌ์ ์์ ์ ๊ณํํ๊ณ , ๋ฌธ์ ๋ฅผ ์ถ์ ํ๊ณ , ์ฐ๋ฆฌ๊ฐ ๊ตฌ์ถํ๋ ๊ฒ๋ค์ ๋ ผ์ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ด ๋ณดํธ์ ์ธ ์ง๋ฌธ์ ๋ํ ์ฐ๋ฆฌ์ ๋๋ต์ ๊นํ๋ธ ์ด์์ด๋ฉฐ, ๊ทธ๊ฒ์ ๋ชจ๋ ์ ์ฅ์์ ๋ด์ฅ๋์ด ์์ต๋๋ค. ๊นํ๋ธ์ ์ด์ ์ถ์ ์ ์ฐ๋ฆฌ๊ฐ ๋จ์์ฑ, ์ฐธ์กฐ ๋ฐ ์ฐ์ํ ํ์์ ์ด์ ์ ๋ง์ถ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ ํนํฉ๋๋ค.
GitHub Issue๋ฅผ ์ฌ์ฉํ๋ฉด GitHub Flavored Markdown์ผ๋ก ์์ด๋์ด๋ฅผ ํํํ๊ณ ๊ธฐ์ฌ์๋ฅผ ํ ๋น ๋ฐ ์ธ๊ธํ๋ฉฐ ์ด๋ชจ์ง๋ก ๋ฐ์ํ๊ณ ์ฒจ๋ถ ํ์ผ ๋ฐ ๋น๋์ค๋ก ๋ช ํํ ํ๋ฉฐ ์ปค๋ฐ, ํ ์์ฒญ ๋ฐ ๋ฐฐํฌ์ ๊ฐ์ ์ฐธ์กฐ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ ๋ชฉ๋ก์ ์ฌ์ฉํ๋ฉด ํฐ ๋ฌธ์ ๋ฅผ ์์ ์ผ๋ก ๋๋๊ณ ๋ง์ผ์คํค๊ณผ ๋ ์ด๋ธ๋ก ์์ ์ ๋ ๊ตฌ์ฑํ๊ณ ๊ด๊ณ์ ์ข ์์ฑ์ ์ถ์ ํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ฐ๋ฐ์๋ค์ ์ํด ๊นํ๋ธ ์ด์๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ๊ฒ์ ๋จ์ํ๊ณ , ์ ์ํ ์ ์์ผ๋ฉฐ, ๊ฐ๋ ฅํฉ๋๋ค.
Pull Request
๋ค์์ผ๋ก๋ PR (Pull Request)์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
์ง์ญํ๋ฉด Pull์ ์์ฒญ (Request)ํ๋ ํ์์ ๋๋ค. ๊นํ๋ธ์์ Pull์ด๋, ์ฝ๋๋ฅผ ๋ด๋ ค๋ฐ๋ ๊ฒ์ ๋ปํฉ๋๋ค. ๋ก์ปฌ ์ปดํจํฐ์์ ์ปค๋ฐํ๊ณ ๋ณด๋ด๋ ๊ฒ์ Push๋ผ ํ๋๋ฐ, ๋ฉ์ธ ์ ์ฅ์์ ์ ์ฅ์์ ๋์ ๋ก์ปฌ ์ ์ฅ์์ ๋ณ๊ฒฝ ๋ด์ญ์ ๋ด๋ ค๋ฐ๋๋ก ์์ฒญํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Pull Request๋ผ ํฉ๋๋ค.
์ ๊ทธ๋ฆผ์์ ๋ธ๋์น (branch)๊ฐ ๋์ค๋๋ฐ์, ๋ธ๋์น๋ ํ์ ๊ณผ์ ์์์ ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ๊นํ๋ธ์์ ์ ๊ณตํ๋ ๋ถ๊ธฐ์ ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์ Pull Request ์์ฒญ์ด ํ์ํ ๊น?
Pull Request ์์ฒญ ์์ด, ๋ฐ๋ก ๋ฉ์ธ ์ ์ฅ์์ ๋ณ๊ฒฝ ๋ด์ญ์ด ๋ค์ด๊ฐ๋๋ก ํ๋ฉด ์ ๋๋ ๊ฒ์ผ๊น์?
์ฌ์ค ํ์ ํ์ง ์๊ณ ํผ์ ๊ณต๋ถํ๋ ๊ฒฝ์ฐ์๋ ๋ฌด์กฐ๊ฑด Pull Request๋ฅผ ํ ํ์๋ ์์ต๋๋ค. ๋ฉ์ธ ๋ธ๋์น์ ๋ฐ๋ก ์ ์ฉ๋๋๋ก ํ ์๋ ์์ฃ .
๊ทธ๋ฌ๋ ํ์ ์ ํ๊ฑฐ๋ ์ค์ ๋์๊ฐ๋ ์๋น์ค (ex: Spring AI ๋ฑ)์ ์์ ์ด ์์ ์ ์ ์ถํ ๋๋, ์์ ์ด ์์ ํ ๋ด์ญ์ด ์ ๋๋ก ๋์๊ฐ๊ณ ์๋์ง, ๊ธฐ์กด ํ์ผ๋ค๊ณผ ์ถฉ๋๋์ง๋ ์๋์ง, ๋ฒ๊ทธ๋ ์๋์ง, ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋์ ๋ณ๊ฒฝ ๋ด์ญ์ ์ ๋๋ก ์ดํดํ๊ณ ์๋์ง ๋ฑ์ ๊ณผ์ ์ ๋ฐ๋์ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
๊นํ๋ธ์ ๊ณต์ ๋ฌธ์์์๋ PR์ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ช ํ๊ณ ์์ต๋๋ค.
ํ ์์ฒญ(pull request)์ ํ ๋ธ๋์น์์ ๋ค๋ฅธ ๋ธ๋์น๋ก ๋ณ๊ฒฝ ์ฌํญ ์งํฉ์ ๋ณํฉํ๋ ์ ์์ ๋๋ค. ํ ์์ฒญ์์ ๊ณต๋ ์์ ์๋ ๋ฉ์ธ ์ฝ๋๋ฒ ์ด์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ํตํฉํ๊ธฐ ์ ์ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ ์งํฉ์ ๊ฒํ ํ๊ณ ๋ ผ์ํ ์ ์์ต๋๋ค. ํ ์์ฒญ์ ์์ค ๋ธ๋์น์ ๋ด์ฉ๊ณผ ๋์ ๋ธ๋์น์ ๋ด์ฉ ๊ฐ์ ์ฐจ์ด ๋๋ ์ฐจ์ด๋ฅผ ํ์ํฉ๋๋ค.
๋ฐ๋ผ์ ์ ๋ฆฌํ์๋ฉด, ์ด๋ค ๋ฌธ์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ (Issue), ๋์ ์ปดํจํฐ์์ ์์ ์ ํ๊ณ , ์ด๊ฒ์ ๋ฉ์ธ์ ๋ฐ์ํ๊ณ ์ถ๋ค (Pull Request)๊ณ ์์ฒญํ๋ ํ์๊ฐ ๋ฐ๋ก Issue์ Pull Request๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๋ธ๋์น ๋ณํฉ ์ PR ์์ฒญ ์ค์ ๋ฐฉ๋ฒ
์์ ๋ฉ์ธ ๋ธ๋์น์ ๋ฐ์๋๊ธฐ ์ ์๋ PR์ด ๋ฐ์๋๋๋ก ํ๋ ๊ฒ ์ข๋ค๊ณ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ณดํต ๋ธ๋์น ์ค์ ์ผ๋ก ๊ฐ๋ณด๋ฉด, PR ์์ด ๋ฐ๋ก ๋ณํฉ์ด ๊ฐ๋ฅํ๋๋ก ๋์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์ ๋ธ๋์น ๋ณดํธ ์ ๋ต (branch protection rules)์ ์ธ์ธ ์ ์๊ณ , ์ด ๊ณผ์ ์์ PR์ด ํ์๋ก ๋๊ฒ๋ ์ค์ ํ ์๋ ์์ต๋๋ค.
๋ธ๋์น ๋ณดํธ ์ ๋ต์ ๋ํด์๋ ํด๋น ๊ธ์ ์์ฑํ ๋ถ๊ป์ ์ ์ ๋ฆฌํด ๋์ผ์ จ์ผ๋ ์ด๊ณณ์ ์ฐธ๊ณ ํด ์ฃผ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ ํด๋น ๊ธ์ ์ฐธ๊ณ ํ์ฌ ์๋์ฒ๋ผ ์ค์ ํ์ต๋๋ค.
- merge ์ ๋ฐ๋์ Pull Request๊ฐ ํ์ํ๋๋ก ์ค์ ํ์์ต๋๋ค.
- ์น์ธ์ด ์ต์ 1๋ช ์ด์ ํ์ํ๊ฒ ์ค์ ํ์์ต๋๋ค.
- ๋ํ (conversation)๊ฐ ๋ชจ๋ ํด๊ฒฐ์ด ๋์ด์ผ merge ๋๋๋ก ์ค์ ํ์์ต๋๋ค. PR์ด ์ฌ๋ ค์ง๋ฉด ์๋ก ๋ํ (์ฝ๋ ๋ฆฌ๋ทฐ)๊ฐ ์ค๊ณ ๊ฐ๋๋ฐ, ์ด๋ ํ์ ์๋ค์ด ๋ณ๊ฒฝ ์์ฒญ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒ๋ค์ด ๋ชจ๋ ํด๊ฒฐ๋์ด์ผ ํฉ๋๋ค.
- ๋ณธ ๋ธ๋์น ๋ณดํธ ์ ๋ต์ main ๋ธ๋์น์ ์ ์ฉ๋ฉ๋๋ค.
Pull Request ์์ (Issue ์์ฑ X)
ํ ์คํธ ๊ณ์ ์ ๋ง๋ค๊ณ , ์ฐ์ตํ ์ ์๋ ๋ฆฌํฌ์งํฐ๋ฆฌ๋ฅผ ๋ง๋ ๋ค ์ค์ต์ ์งํํด ๋ดค์ต๋๋ค.
Pull Request ์์ฑ
๊ฐ๋จํ Pull Request๋ฅผ ๋ณด๋ด๋ ์๋์ ๊ฐ์ด ๋ฆฌ๋ทฐ์ด๊ฐ ํ์ํ๋ค๊ณ ๋์ต๋๋ค. (No reviews - at least 1 approving review is required)
Reviewers ํ ์คํธ๋ฅผ ๋๋ฅด๋ฉด, Collaborator ์ค ๋ฆฌ๋ทฐ์ด๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ์ ๋ณธ ๊ณ์ ์๊ฒ ํ ๋นํ๊ฒ ์ต๋๋ค.
๊ทธ๋ผ ์ด์ ์ ์ฌ์ง์ฒ๋ผ Pull Request๊ฐ ์คํ๋ฉ๋๋ค.
- feat/test์์ main์ผ๋ก ์์ฒญ์ ํฉ๋๋ค. main ๋ธ๋์น์ ๋ํ ๋ธ๋์น ๋ณดํธ ์ ๋ต์ ๋ฐ๋ผ, direct merge๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
- 1๋ช ์ด์์ ์น์ธ๋ ๋ฆฌ๋ทฐ๊ฐ ํ์ํฉ๋๋ค.
- ํ ๋น๋ ๋ฆฌ๋ทฐ์ด๋ ๋ฉ์ผ๋ก PR ์์์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
- 1๏ธโฃ: ๋ฆฌ๋ทฐ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
- 2๏ธโฃ: ๋ธ๋์น ๋ณดํธ ์ ๋ต์ ์ถฉ์กฑ ์กฐ๊ฑด์ ๋ฌด์ํ ์ฑ ๋ฐ๋ก merge์ํฌ ์ ์์ต๋๋ค. ๋ง์ฝ ์ด๊ฒ์กฐ์ฐจ ๋ง๊ณ ์ถ๋ค๋ฉด, ๋ธ๋์น ๋ณดํธ ์ ๋ต์์ Do not allow bypassing the above settings๋ฅผ ํ์ฑํํ๋ฉด ๋ฉ๋๋ค.
Pull Request ๋ฆฌ๋ทฐ
์ด์ ๋ฆฌ๋ทฐ ๊ณผ์ ์ ๋ณด๊ฒ ์ต๋๋ค.
- ์ฝ๋ ์ ํ๋ฌ์ค ๋ฒํผ์ ๋๋ฅด๋ฉด, ๊ทธ ์์น์์ ๋ฆฌ๋ทฐ๋ฅผ ๋จ๊ธธ ์ ์์ต๋๋ค.
- Add single comment๋ ๋จ์ ๋๊ธ์ ์๋ฏธํฉ๋๋ค.
- Start a review๋ ๋ฆฌ๋ทฐ๋ก ๋จ๊ธธ๋งํ ๋ด์ฉ์ ์์ฑํ ์ ์์์ ์๋ฏธํฉ๋๋ค. (general feedback, approve, request changes)
- ์ฐ์ธก Review Changes๋ฅผ ๋๋ฅด๋ฉด Comment / Approve / Request changes๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๊ฐ๊ฐ ๋จ์ ๋ฆฌ๋ทฐ / ์น์ธ / ์์ฒญ ์๊ตฌ๋ก ์ฌ์ฉํ์ค ์ ์์ต๋๋ค.
์ฌ๋ด์ผ๋ก ๊ฐ ํ์ผ์๋ ์ด๋ ๊ฒ Viewed ๋ฒํผ์ด ์๋๋ฐ, ํ์ผ์ด ๋งค์ฐ ๋ง์ ๊ฒฝ์ฐ์๋ ํ์ผ๋ง๋ค ๋ฆฌ๋ทฐ๊ฐ ๋๋ ๋ค Viewed ์ฒดํฌ ํ์๋ฅผ ํด ๋๋ฉด ํ์ผ ๋ณ๊ฒฝ ๋ด์ญ์ด ์ ํ์ ๋ค์ด๊ฐ๋๋ค. ๋ค๋ฅธ ํ์ผ๋ค๊ณผ ํท๊ฐ๋ฆฌ์ง ์๊ฒ ๋์ด ์ด ์ ๋ ์ ์ฉํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฆฌ๋ทฐ๊ฐ ์๋ฃ๋๋ฉด, ์๋์ ๊ฐ์ด ๋ณ๊ฒฝ์ด ํ์ํ๋ค๊ณ ๋์ต๋๋ค.
Pull Request ๋ฆฌ๋ทฐ ๋ด์ฉ ๋ฐ์
๋ฆฌ๋ทฐ ๋ด์ฉ์ ๋ฐ๋ผ ์์ ์ ํ์์ต๋๋ค. ์ด์ ๋ค์ ์ปค๋ฐํ๊ณ ํธ์ํ์์ต๋๋ค.
๊ฐํน ๋ณ๊ฒฝ์ด ์๊ฒผ์ผ๋ ๊ธฐ์กด PR์ ๋ซ๊ณ ์๋กญ๊ฒ PR์ ์ด์ด์ผ ํ๋? ๋ผ๋ ์๊ฐ์ ํ๋ ๋ถ๋ค์ด ๊ณ์ ๋ฐ, ๊ฐ์ธ์ ์ผ๋ก๋ ์ถ์ฒ๋๋ฆฌ์ง ์์ต๋๋ค.
Pull Request๋ ์์ ์ ์์ ๋ฌผ์ด ๋ฐ์๋๊ธฐ๋ฅผ ์๊ตฌํ๋ ๊ณผ์ ์ด๋ฉฐ, ๊ทธ ๊ณผ์ ์์๋ ์ฝ๋ ๋ฆฌ๋ทฐ๊ฐ ๋ค์ด๊ฐ๋๋ค.
๊ทธ๋ฌ๋ ์์ ์ด ๋ ๋ ๋ง๋ค PR์ ๋ซ๊ณ ๋ค์ ๋ง๋ ๋ค๋ฉด, ๋ฆฌ๋ทฐ์ ๊ณผ์ ์ด ์๋ฏธ ์์ด์ง๊ฒ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์๊ฐ์ด ๋ค๋ฅด๊ฑฐ๋ ์๋ชป๋ ์ ์ ์์ ํด ๋๊ฐ๋ ๊ณผ์ ์์ ์ค๊ณ ๊ฐ๋ ๋ํ (conversation)๋ค์ด ํ๋์ PR์ ๋ณด์กด๋์ด์ผ, ์ง์ ํ ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ๋ฆฌ๋ทฐ์ด๋ ์ด๋ ๊ฒ ๋ณ๊ฒฝ๋ ๊ฒ์ ๋ํด์ Approve๋ฅผ ์ ์ถํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ผ ์ด์ ์๋์ฒ๋ผ ๋์ค๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์์ง merge๊ฐ ๋ถ๊ฐ๋ฅํ๋ค์. ์ด๋ ๋ชจ๋ conversation์ด solve ๋ ์ํ์ฌ์ผ๋ง ๊ฐ๋ฅํ๊ฒ๋ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ง์ฝ ํ์ํ ์ต์ Approve๋ง ๋ฐ์ ๋ค์ merge๊ฐ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค์ ๋ธ๋์น ๋ณดํธ ์ ๋ต์์ Require conversation resolution before merging ์ต์ ์ off ํ์๋ฉด ๋ฉ๋๋ค. (๊ทธ๊ฒ ์๋ ๋ถ๋ค์ ๋ชจ๋ ๋ํ ๋ด์ญ์์ Resolve conversation์ ํ์๋ฉด ๋ฉ๋๋ค.)
Pull Request ๋ณํฉ
์ด์ merge๋ฅผ ํ ์ ์์ต๋๋ค.
- Create a merge commit: ์ง๊ธ๊น์ง ๊ธฐ์ฌ์๊ฐ ์์ ํ๋ ๋ชจ๋ ์ปค๋ฐ์ด ์ ๋ถ ๋ฉ์ธ ๋ธ๋์น์ ๊ธฐ๋ก์ ๋จ๊ฒ ๋ฉ๋๋ค. ๋ณํฉ ๊ธฐ๋ก์ด ์๊น๋๋ค.
- Squash and merge: ์ง๊ธ๊น์ง ๊ธฐ์ฌ์๊ฐ ์์ ํ๋ ๋ชจ๋ ์ปค๋ฐ์ด ํ๋์ ์ปค๋ฐ์ผ๋ก ๋ฉ์ธ ๋ธ๋์น์ ๊ธฐ๋ก์ ๋จ๊ฒ ๋ฉ๋๋ค.
- Rebase and merge: Create a merge commit๊ณผ ๋น์ทํ์ง๋ง, ๋ณํฉ ๊ธฐ๋ก์ด ์๊ธฐ์ง ์์ต๋๋ค.
์์ธํ ์ฐจ์ด์ ์ ์ด ๊ธ์ ์ฐธ๊ณ ํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก๋ Squash and merge๋ฅผ ์ ํธํฉ๋๋ค. ํน์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ๋ง์ ์ปค๋ฐ์ด ๊ฐ ํ ๋ฐ, ๋ฉ์ธ ๋ธ๋์น๋ก ๋ณํฉํ๋ ์๊ฐ ๊ทธ ๋ณ๊ฒฝ ๋ด์ญ์ด ์ ๋ถ ๊ฐ๊ฐ ๋ค์ด๊ฐ๊ฒ ๋๋ค๋ฉด ์ด๋์๋ถํฐ ์ด๋ค ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋์ง ํ์ธํ๊ธฐ ์ด๋ ค์ธ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด์ main ๋ธ๋์น์ ๋ณํฉ์ด ๋์์ต๋๋ค. ํ๋์์ผ๋ก ๋์ด ์๋ #1์ ๋๋ฅด๋ฉด, ๊ด๋ จ๋ Pull Request๋ก ์๋ ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ด์ ์์ฑ ํ Pull Request ์์ฑํ๊ธฐ
์ด์ ์๋กญ๊ฒ ์ด์๋ฅผ ์์ฑํ ๋ค์ ์์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ์์ ๋งํ๋ฏ Pull Request๋ฅผ ํ๊ฒ ๋ ์ด์ ๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด ์ด์๋ฅผ ๋จผ์ ๋ง๋๋ ๊ฒ ์ข์ต๋๋ค.
์ด์ ํ ํ๋ฆฟ ๋ง๋ค๊ธฐ
์ฒ์ ์ด์๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ฉด ๋ง๋ ํ ์ ํด์ง ํ ํ๋ฆฟ์ด ์๊ธฐ ๋๋ฌธ์, ์ฌ๋๋ง๋ค ์๋ฌด๋ ๊ฒ๋ ์์ฑํ ํ๋ฅ ์ด ๋์ต๋๋ค.
ํ์ ์ ํ๊ณ ์๋๋ฐฉ์ด ์ฝ๊ฒ ์ดํดํ๊ธฐ ์ํด์๋ ์ผ์ข ์ ํ ํ๋ฆฟ์ด ํ์ํ๊ฒ ์ฃ . ์ด์ ํ ํ๋ฆฟ์ ์ธ์ธ ์ ์๋๋ฐ, ๊ด๋ จ ๊ธ์ ์ฐธ๊ณ ํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ธ์ ์ฐธ๊ณ ํ์ฌ ์๋์ฒ๋ผ ์์ฑํด ๋ดค์ต๋๋ค.
์ด์ ํ ํ๋ฆฟ ์ฌ์ฉ
์ด์ ๊ธฐ์ฌ์๋ ์๋์ ๊ฐ์ ํ์์ผ๋ก ์ด์๋ฅผ ์์ฑํ๊ฒ ๋ฉ๋๋ค.
๋ํ, ๋ฆฌํฌ์งํฐ๋ฆฌ๋ฅผ ๋ณด๋ฉด .github/ISSUE_TEMPLATE/์ด์ํ ํ๋ฆฟ.md๋ก ์ ์ฅ๋จ์ ๋ณผ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํ๋ก์ ํธ๋ค์๋ ๋์ผํ๊ฒ ์์ฑํ๊ณ ์ถ์ผ์๋ค๋ฉด ์ด ํ์ผ๋ค์ ์ง์ ์ฎ๊ฒจ์ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
PR ํ ํ๋ฆฟ ๋ง๋ค๊ธฐ
PR์ ๋ํด์๋ ํ ํ๋ฆฟ์ ๋ง๋ค ์ ์์ต๋๋ค. ํด๋น ๊ธ์ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค.
PR ํ ํ๋ฆฟ ์ฌ์ฉ
์ด์ ๊ธฐ์ฌ์๋ ์๋ ํ ํ๋ฆฟ์ฒ๋ผ ์์ฑํ๊ฒ ๋ฉ๋๋ค.
#์ ๋๋ฅด๋ฉด ์ด์, ํ ํ๋ฆฟ์ ์ ํํ ์ ์๊ฒ ๋ฉ๋๋ค. ๊ด๋ จ ์ด์์ด๋ #2๋ฅผ ํ๋ฉด ๋๊ฒ ๋ค์.
์ด์ ์๋ ์ด์๋ก ๋ค์ด๊ฐ๋ฉด ๊ด๋ จ PR์ด ์๊ฒผ์์ ๋ณผ ์ ์์ต๋๋ค.
PR ์ฐ๊ฒฐ ํ ๊ด๋ จ ์ด์๊ฐ ์๋์ผ๋ก ๋ซํ๊ฒ ํ๊ธฐ (ํต์ฌ)
๊ทธ๋ฌ๋ ๋ง์ฝ PR์ ์ฐ๊ฒฐํ ํ PR์ด merge๋ ๋ค์ ์๋์ผ๋ก ์ด์๋ close ๋๋๋ก ํ๊ณ ์ถ๋ค๋ฉด, ์๋ ํค์๋๋ฅผ ์์ฑํ๋ฉด ๋ฉ๋๋ค. (์ถ์ฒ: ๊นํ๋ธ ๋ฌธ์)
์ ๋ฆฌ
์ฒ์์๋ PR์ ๋ณํฉํ๋ฉด ์๋์ผ๋ก ์ด์๊ฐ ๋ซํ๋๋ก ํ๋ ๊ฒ๋ง ์์ฑํ๋ ค ํ๋๋ฐ, ๊ทธ๋ฌ๊ธฐ ์ํด์๋ ์ด์์ PR์ ๋ํ ๊ฐ๋ ๋ ์ ๋ฆฌํด๋ฌ์ผ ํ ๊ฒ ๊ฐ์ ์์ฑํด ๋ดค์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ๋ณด๋ค ๊ฐ๋จํ ๊ณผ์ ์ผ๋ก ์ด์๋ฅผ ์๋์ผ๋ก ๋ซํ๊ฒ ํ ์ ์์๋ค์. ์ต๊ทผ ํ๋ก์ ํธ์์ ์๋์ผ๋ก ๋ซํ์ง ์์์ ์ ๋ฆฌํด ๋ณธ ๊ฑด๋ฐ, ๋น๋ ํ ์คํธ ๋ฑ์ ๋ด์ฉ์ ๋ด์ ์คํฌ๋ฆฝํธ์ ์ค๋ฅ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์คํ๋ง ํ๋ก์ ํธ ๋ฑ์ ๊ฒฐํฉํ์ฌ ๋ด๋ถ ํ ์คํธ๋ฅผ ๊ฑฐ์น๊ณ ๋ค๋ฅธ ๊ณผ์ ๋ค์ ์๋ํํ ์ ์๋ ๊ฒ๋ค์ ๋ค๋ฅธ ๊ธ์์ ์์ฑํ๊ฒ ์ต๋๋ค.
Reference
- ์ค์ตํ ๋ฆฌํฌ์งํฐ๋ฆฌ
- Github Issues - Github feature
- Github Pull Request - Github docs
- [GitHub] Branch Protection Rule ์ ์ฉํด ๋ธ๋์น ๋ณดํธํ๊ธฐ
- GitHub ์ฌ์ฉ๋ฒ ๋ฌธ์ํฉ๋๋ค. PR review ์์ "Add single comment"์ "Start a review"์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
- How to review and edit a pull request
- [GitHub] Request Changes๋ฅผ ํตํ PR ๋ค์ ์์ฒญํ๊ธฐ
- [Git] Merge ์ดํดํ๊ธฐ (Merge / Squash and Merge / Rebase and Merge)
- ๊นํ๋ธ ์ด์ ํ ํ๋ฆฟ ์์ฑํ๊ธฐ
- ์ข์ Pull Request๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๊ณผ PR Template ๊ตฌ์ฑ
- [Project] Github PR->merge ์ issue ์๋ close ๋ฐฉ๋ฒ
- Using keywords in issues and pull requests - Github docs