๊นํ๋ธ๋ฅผ ํ์ฉํ ํ์
์์ ๋ธ๋์น ๊ด๋ฆฌ๋ ๋จ์ํ ์ฝ๋ ๋ถ๋ฆฌ๋ฅผ ๋์ด ํ ์ ์ฒด์ ์์ฐ์ฑ์ ๊ฒฐ์ ์ง๋ ํต์ฌ ์์์์. ์ฒด๊ณ์ ์ธ ๊ด๋ฆฌ ์์ด๋ ์ฝ๋ ์ถฉ๋๊ณผ ๋ฐฐํฌ ์ค๋ฅ๋ก ์ธํด ๊ฐ๋ฐ ์๋๊ฐ ๊ธ๊ฒฉํ ์ ํ๋ ์ ์์ด์. ์ค๋ ์๊ฐํ๋ ๋ธ๋์น ๊ด๋ฆฌ ํ์ ํตํด ํ์
ํจ์จ์ 2๋ฐฐ ์ด์ ๋์ด๋ ๋ฐฉ๋ฒ์ ์์ธํ ์์๋ณผ๊ฒ์.
๐ ️ ๊นํ๋ธ ์ฌ์ฉ๋ฒ ํ์
ํจ์จ์ 2๋ฐฐ ๋์ด๋ ๋ธ๋์น ๊ด๋ฆฌ ํ
๐ฑ ๊นํ๋ธ ๋ธ๋์น์ ์ ์์ ์ญ์ฌ์ ๋ฐฐ๊ฒฝ
๊นํ๋ธ์์ ๋ธ๋์น๋ ํ๋ก์ ํธ์ ๋ฉ์ธ ์ฝ๋ ๋ผ์ธ์์ ๋ถ๊ธฐํ์ฌ ๋
๋ฆฝ์ ์ผ๋ก ์์
์ ์งํํ ์ ์๋๋ก ๋๋ ์์ฃผ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ด์์. ์ผ๋ฐ์ ์ผ๋ก main ๋๋ master๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ค๊ธฐ์์ ๋ป์ด ๋์ ์๋ก์ด ์คํ์ ํ๊ฑฐ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ์ ์๋ ๋
๋ฆฝ์ ์ธ ์์
๊ณต๊ฐ์ ์ ๊ณตํด์. ์ด๋ฅผ ํตํด ๋ฉ์ธ ์ฝ๋์ ์๋ฌด๋ฐ ์ํฅ์ ์ฃผ์ง ์๊ณ ๋ ์์ ๋กญ๊ฒ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ฑฐ๋ ์๋ก์ด ์์ด๋์ด๋ฅผ ๊ตฌํํด ๋ณผ ์ ์๋ ๊ฒ์ด์ฃ .
์์
์ด ์๋ฃ๋ ํ์๋ ๋ณํฉ์ด๋ผ๋ ๊ณผ์ ์ ๊ฑฐ์ณ ๋ค์ ๋ฉ์ธ ๋ธ๋์น๋ก ํตํฉํ๊ฒ ๋ผ์. ์ด ๊ณผ์ ์์ ํ ๋ฆฌํ์คํธ๋ฅผ ํ์ฉํ๋ฉด ํ์๋ค์๊ฒ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ๋ฐ๊ณ ํผ๋๋ฐฑ์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ์ฝ๋์ ํ์ง์ ํ ๋จ๊ณ ๋ ๋์ด์ฌ๋ฆด ์ ์์ด์. ๊นํ๋ธ๋ ๋จ์ํ ์ ์ฅ์๋ฅผ ๋์ด ์ด๋ฌํ ํ์
๊ณผ์ ์ ์๊ฐํํ๊ณ ์ฒด๊ณํํ๋ ์ต์ ์ ๋๊ตฌ๋ก ์๋ฆฌ ์ก์์ด์.
Git์ ์ญ์ฌ๋ฅผ ์ดํด๋ณด๋ฉด 2005๋
๋ฆฌ๋
์ค ์ปค๋ ๊ฐ๋ฐ์์ธ ๋ฆฌ๋์ค ํ ๋ฅด๋ฐ์ค์ ์ํด ์ฒ์ ํ์ํ์ด์. ๋น์์ ํ์์ฑ์ ์ํด ๋ง๋ค์ด์ง ์ด ์์คํ
์ 2008๋
๊นํ๋ธ๊ฐ ์ถ์๋๋ฉด์ ๋น์ฝ์ ์ธ ๋ฐ์ ์ ์ด๋ฃจ๊ฒ ๋์์ฃ . ๊นํ๋ธ๋ Git์ ์ฌ์ฉ ํธ์์ฑ์ ๊ทน๋ํํ๊ณ ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ด ์ค์๊ฐ์ผ๋ก ์ํตํ๋ฉฐ ์ฝ๋๋ฅผ ๊ณต์ ํ ์ ์๋ ํ๋ซํผ์ ์ ๊ณตํ๋ฉฐ ํ์
์ ํจ๋ฌ๋ค์์ ๋ฐ๊พธ์ด ๋์์ด์.
์ดํ ๋ธ๋์น ์ ๋ต์ ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง๊ณ ๊ฐ๋ฐ ํ๋ก์ธ์ค๊ฐ ๋ณต์กํด์ง์ ๋ฐ๋ผ ๋ค์ํ๊ฒ ์งํํด ์์ด์. ์ค๋๋ ๋ธ๋์น ๊ด๋ฆฌ๋ ๋จ์ํ ์ฝ๋๋ฅผ ๋๋๋ ๊ธฐ์ ์ ์๋จ์ ๋์ด ํ์ ๋ฌธํ๋ฅผ ๋ฐ์ํ๊ณ ๊ฐ๋ฐ ์๋๋ฅผ ์กฐ์ ํ๋ ์ ๋ต์ ๋๊ตฌ๋ก ํ์ฉ๋๊ณ ์์ด์. ์์ฒ๋ง ๋ช
์ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๋ ์ด ํ๋ซํผ์์ ๋ธ๋์น ๊ด๋ฆฌ๋ ์ด์ ์ ํ์ด ์๋ ํ์ ์คํฌ๋ก ์ฌ๊ฒจ์ง๊ณ ์๋ต๋๋ค.
๐ ๋ธ๋์น ๊ธฐ๋ณธ ์ฉ์ด ๋น๊ตํ
| ์ฉ์ด |
ํต์ฌ ๊ธฐ๋ฅ ๋ฐ ์ค๋ช
|
| ๋ธ๋์น (Branch) |
๋ฉ์ธ ๋ผ์ธ์์ ๋ถ๊ธฐ๋ ๋
๋ฆฝ์ ์ธ ์์
๊ณต๊ฐ |
| ๋ณํฉ (Merge) |
๋ถ๊ธฐ๋ ์์
๋ด์ฉ์ ๋ค๋ฅธ ๋ธ๋์น๋ก ํตํฉํ๋ ๊ณผ์ |
| ํ ๋ฆฌํ์คํธ (PR) |
์ฝ๋ ๊ฒํ ์์ฒญ ๋ฐ ๋ณํฉ์ ์น์ธ๋ฐ๋ ์ ์ฐจ |
๐ ํ์
ํจ์จ์ ๋์ด๋ ๋ช
ํํ ๋ธ๋์น ์ ๋ต
์ฑ๊ณต์ ์ธ ํ์
์ ์ํด์๋ ํ ์ ์ฒด๊ฐ ๋์ํ๊ณ ๋ฐ๋ฅด๋ ๋ช
ํํ ๋ธ๋์น ์ ๋ต์ด ์๋ฆฝ๋์ด์ผ ํด์. ํ๋ก์ ํธ์ ์ฑ๊ฒฉ์ด๋ ๋ฐฐํฌ ์ฃผ๊ธฐ, ํ์ ๊ท๋ชจ์ ๋ฐ๋ผ ์ ํฉํ ๋ชจ๋ธ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด์ฃ . ๋ํ์ ์ผ๋ก Git Flow, GitHub Flow, GitLab Flow ๋ฑ์ด ์์ผ๋ฉฐ ์ต๊ทผ์๋ ์ง์์ ํตํฉ์ ๊ฐ์กฐํ๋ Trunk-Based Development๋ ๋ง์ด ํ์ฉ๋๊ณ ์์ด์.
GitHub Flow๋ ๋งค์ฐ ๋จ์ํ๊ณ ์ง๊ด์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด ๋น ๋ฅธ ๋ฐฐํฌ๊ฐ ํ์ํ ์ ์์ผ ํ๊ฒฝ์ ์ ํฉํด์. ๋ฐ๋ฉด Git Flow๋ ๋ณต์กํ ๋ฆด๋ฆฌ์ฆ ๊ด๋ฆฌ์ ๋ณ๋ ฌ ๊ฐ๋ฐ์ด ํ์ํ ์ค๋ํ ํ๋ก์ ํธ์์ ๊ทธ ํ์ ๋ฐํํ์ฃ . ์ด๋ค ์ ๋ต์ ์ ํํ๋ ์ค์ํ ๊ฒ์ ๋ชจ๋ ํ์์ด ํด๋น ๊ท์น์ ์๊ฒฉํ ์ค์ํ์ฌ ์ฝ๋๋ฒ ์ด์ค์ ํผ๋์ ๋ฐฉ์งํ๋ ๊ฒ์ด์์.
ํนํ main ๋ธ๋์น์ ์์ ์ฑ์ ์ ์งํ๋ ๊ฒ์ ํ๋ก์ ํธ์ ์๋ช
๊ณผ๋ ๊ฐ์์. main ๋ธ๋์น๋ ํญ์ ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํ๋ฅผ ์ ์งํด์ผ ํ๋ฉฐ, ๋ชจ๋ ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด๋ ์์ ์ฌํญ์ ๋ฐ๋์ ๋ณ๋์ ๋ธ๋์น์์ ์ด๋ฃจ์ด์ ธ์ผ ํด์. ์ถฉ๋ถํ ํ
์คํธ์ ๊ฒํ ๋ฅผ ๊ฑฐ์น์ง ์์ ์ฝ๋๊ฐ ๋ฉ์ธ ๋ผ์ธ์ ์์ด์ง ์๋๋ก ์ฒ ์ ํ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ต๋๋ค.
๊ธฐ๋ฅ๋ณ ๋๋ ์์
๋ณ๋ก ๋ธ๋์น๋ฅผ ์ธ๋ถํํ์ฌ ์์ฑํ๋ ์ต๊ด๋ ์ค์ํด์. ์๋ฅผ ๋ค์ด ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ค๋ฉด feature/login๊ณผ ๊ฐ์ด ์ด๋ฆ์ ์ ํ๊ณ , ๋ฒํผ ์ค๋ฅ๋ฅผ ์์ ํ๋ค๋ฉด bugfix/button-error์ฒ๋ผ ๋ช
๋ช
๊ท์น์ ์ ํ๋ ๊ฒ์ด ์ข์์. ์ด๋ ๊ฒ ํ๋ฉด ๋ธ๋์น์ ๋ชฉ์ ์ด ๋ช
ํํด์ง๊ณ ๋ค๋ฅธ ์์
๊ณผ์ ๊ฐ์ญ์ ์ต์ํํ์ฌ ๋
๋ฆฝ์ ์ธ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ด์.
๐ ์ฃผ์ ๋ธ๋์น ์ ๋ต ๋น๊ตํ
| ์ ๋ต๋ช
|
ํน์ง ๋ฐ ์ ํฉํ ํ๋ก์ ํธ |
| GitHub Flow |
๋จ์ํจ, ๋น ๋ฅธ ๋ฐฐํฌ, ์ง์์ ์ธ๋์ ์ต์ ํ |
| Git Flow |
๋ณต์กํ ๋ฆด๋ฆฌ์ฆ ๊ด๋ฆฌ, ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์ ํฉ |
| GitLab Flow |
์ด์ ํธ๋์ปค ์ฐ๋ ๋ฐ ํ๊ฒฝ๋ณ ๋ฐฐํฌ ๊ด๋ฆฌ ๊ฐ์กฐ |
๐ ์ฝ๋ ํ์ง์ ๊ฒฐ์ ํ๋ ํ ๋ฆฌํ์คํธ์ ๋ฆฌ๋ทฐ
ํ ๋ฆฌํ์คํธ(PR)๋ ๋จ์ํ ๋ณํฉ ์์ฒญ ๊ทธ ์ด์์ ๊ฐ์น๋ฅผ ์ง๋๊ณ ์์ด์. ์ด๋ ํ์๋ค์ด ์๋ก์ ์ฝ๋๋ฅผ ๊ฒํ ํ๊ณ ์ง์์ ๊ณต์ ํ๋ฉฐ ์ ์ฌ์ ์ธ ๋ฒ๊ทธ๋ฅผ ์ฌ์ ์ ๋ฐ๊ฒฌํ๋ ๊ฐ์ฅ ์ค์ํ ์ํต ์ฐฝ๊ตฌ์ด๊ธฐ ๋๋ฌธ์ด์์. ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ๋ฅผ ํตํด ํ ์ ์ฒด์ ์ฝ๋ฉ ์คํ์ผ์ ํต์ผํ๊ณ ๋ ๋์ ํด๊ฒฐ์ฑ
์ ํจ๊ป ๊ณ ๋ฏผํ๋ฉฐ ์ฑ์ฅํ ์ ์์ด์.
๋ฆฌ๋ทฐ์ด๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๋ช
ํํ๊ณ ๊ฑด์ค์ ์ธ ํผ๋๋ฐฑ์ ์ ๊ณตํด์ผ ํ๋ฉฐ, ์์ฑ์๋ ์ด๋ฅผ ๋ฐํ์ผ๋ก ์ฝ๋๋ฅผ ๊ฐ์ ํ๋ ์ ์ฐํ ํ๋๊ฐ ํ์ํด์. ์ด ๊ณผ์ ์ ๋จ์ํ ์ค๋ฅ๋ฅผ ์ฐพ๋ ๊ฒ์ ๋์ด ํ์ ๊ฐ์ ์ ๋ขฐ๋ฅผ ์๊ณ ํ๋ก์ ํธ์ ์ ๋ฐ์ ์ธ ์ดํด๋๋ฅผ ๋์ด๋ ๋ฐ ๊ธฐ์ฌํด์. ์ ์ ์ฐฉ๋ ๋ฆฌ๋ทฐ ๋ฌธํ๋ ์ํํธ์จ์ด์ ์์ ์ฑ์ ํ๊ธฐ์ ์ผ๋ก ๋์ฌ์ค๋ต๋๋ค.
์๊ณ ์ฆ์ ์ปค๋ฐ๊ณผ ํธ์ ์ญ์ ํ์
์ ํจ์จ์ ๋์ด๋ ํต์ฌ ํ์ด์์. ์์
์ ํ๊บผ๋ฒ์ ๋ชฐ์์ ์ฒ๋ฆฌํ๊ธฐ๋ณด๋ค๋ ์๋ฏธ ์๋ ๋จ์๋ก ๋๋์ด ์์ฃผ ๊ธฐ๋กํ๋ฉด ์์
๋ด์ฉ์ ์์ ํ๊ฒ ๋ณด์กดํ ์ ์์ด์. ๋ํ ํ์๋ค์ด ํ์ฌ ์งํ ์ํฉ์ ์ค์๊ฐ์ผ๋ก ํ์
ํ ์ ์์ด ์ค๋ณต ์์
์ ํผํ๊ณ ์ถฉ๋์ด ๋ฐ์ํ์ ๋ ํด๊ฒฐํด์ผ ํ ์ฝ๋ ์์ ์ค์ฌ์ฃผ๋ ํจ๊ณผ๊ฐ ์์ด์.
์ถฉ๋ ํด๊ฒฐ ์ ๋ต ๋ํ ๋ฏธ๋ฆฌ ์์งํด ๋์ด์ผ ํด์. ์ฌ๋ฌ ์ฌ๋์ด ๋์์ ์์
ํ๋ค ๋ณด๋ฉด ์ฝ๋ ์ถฉ๋์ ํผํ ์ ์๋ ์๋ช
๊ณผ๋ ๊ฐ์ฃ . ์ด๋ rebase๋ฅผ ์ฌ์ฉํ์ฌ ํ์คํ ๋ฆฌ๋ฅผ ์ ํ์ ์ผ๋ก ๊น๋ํ๊ฒ ์ ์งํ ์ง, ์๋๋ฉด merge๋ฅผ ํตํด ๋ณํฉ ๊ธฐ๋ก์ ๋ช
ํํ ๋จ๊ธธ์ง ํ ๋ด์์ ๊ฒฐ์ ํด์ผ ํด์. ์ถฉ๋์ด ๋ฐ์ํ์ ๋ ์ฆ์ ์ํตํ์ฌ ํด๊ฒฐํ๋ ๊ฒ์ด ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ด์์.
๐ PR ๋ฐ ๋ฆฌ๋ทฐ ์ฒดํฌ๋ฆฌ์คํธ
| ๋จ๊ณ |
์ฃผ์ ์ฒดํฌ ์ฌํญ |
| PR ์์ฑ |
๋ณ๊ฒฝ ๋ชฉ์ ๋ช
์, ์คํฌ๋ฆฐ์ท ์ฒจ๋ถ, ๊ด๋ จ ์ด์ ์ฐ๊ฒฐ |
| ์ฝ๋ ๋ฆฌ๋ทฐ |
๋ก์ง ์ค๋ฅ ๊ฒ์ฌ, ๊ฐ๋
์ฑ ํ์ธ, ์คํ์ผ ๊ฐ์ด๋ ์ค์ |
| ์ต์ข
๋ณํฉ |
ํ
์คํธ ํต๊ณผ ํ์ธ, ์ถฉ๋ ํด๊ฒฐ, ๋ถํ์ ๋ธ๋์น ์ญ์ |
๐ ์ต์ ๋ธ๋์น ๊ด๋ฆฌ ๋ํฅ๊ณผ 2026๋
์ ๋ง
2024๋
๊ณผ 2025๋
์ ์ง๋๋ฉฐ ๊นํ๋ธ ์ฌ์ฉ ๋ฐฉ์์ ๋์ฑ ์๋ํ๋๊ณ ์ง๋ฅํ๋๊ณ ์์ด์. ํนํ ์ง์์ ์ธ ํตํฉ ๋ฐ ๋ฐฐํฌ(CI/CD) ๊ฐํ๊ฐ ๋์ ๋๋๋ฐ, ๊นํ๋ธ ์ก์
๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ๋ธ๋์น ์ ๋ต๊ณผ ์ฐ๋ํ์ฌ ๋น๋์ ํ
์คํธ๋ฅผ ์๋ํํ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ด ๋์์ฃ . ์ฝ๋๋ฅผ ํธ์ํจ๊ณผ ๋์์ ์๋์ผ๋ก ์ค๋ฅ๋ฅผ ๊ฒ์ฆํ๋ฏ๋ก ๊ฐ๋ฐ์๋ ๋ก์ง์๋ง ์ง์คํ ์ ์๊ฒ ๋์์ด์.
๋ํ ์ด์ ํธ๋ํน ๊ธฐ๋ฐ์ ๋ธ๋์น ๊ด๋ฆฌ๋ ์ฃผ๋ชฉ๋ฐ๋ ํธ๋ ๋์์. Jira๋ GitHub Issues์ ๋ธ๋์น๋ฅผ ์ง์ ์ฐ๋ํ์ฌ ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ์ฝ๋๊ฐ ์์ ๋์๋์ง ํฌ๋ช
ํ๊ฒ ์ถ์ ํ๋ ๋ฐฉ์์ด์ฃ . ์ด๋ ์ฝ๋ ๋ณ๊ฒฝ์ ๋ชฉ์ ์ ๋ช
ํํ ํ๊ณ ๋ธ๋์น์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ ํฐ ๋์์ ์ค๋ต๋๋ค.
2026๋
์๋ ์ธ๊ณต์ง๋ฅ(AI) ๊ธฐ๋ฐ์ ์ฝ๋ ์์ฑ ๋ฐ ๋ถ์ ๋๊ตฌ๊ฐ ๋ธ๋์น ์ ๋ต๊ณผ ๋์ฑ ๊น์์ด ํตํฉ๋ ๊ฒ์ผ๋ก ๋ณด์ฌ์. AI๊ฐ ์ฝ๋ ๋ฆฌ๋ทฐ์ ์ด์์ ์์ฑํ๊ฑฐ๋ ๋ณต์กํ ์ถฉ๋ ์ํฉ์์ ์ต์ ์ ๋ณํฉ ๋ฐฉ์์ ์ ์ํ๋ ๋ฑ ๊ฐ๋ฐ์์ ๋ณด์กฐ ์ญํ ์ ํกํกํ ํด๋ผ ๊ฒ์ด๋ผ๋ ์ ๋ง์ด ์ง๋ฐฐ์ ์ด์ฃ . ์ด๋ฅผ ํตํด ํ์
์ ๋ณต์ก์ฑ์ ๋ฎ์์ง๊ณ ์์ฐ์ฑ์ ๋์ฑ ๊ทน๋ํ๋ ๊ฑฐ์์.
ํ๊ตญ ์ํํธ์จ์ด ์ฐ์
์์๋ ๊นํ๋ธ๋ ํ์ ์คํฌ๋ก ํ๊ณ ํ ์๋ฆฌ ์ก์์ผ๋ฉฐ, ๋จ์ํ ๋๊ตฌ ์ฌ์ฉ๋ฒ์ ๋์ด ํจ์จ์ ์ธ ์ํฌํ๋ก์ฐ๋ฅผ ๊ตฌ์ถํ๋ ๋ฅ๋ ฅ์ด ์ค์ํด์ง๊ณ ์์ด์. ๋ณต์กํ ๊ตฌ์กฐ๋ณด๋ค๋ ๊ฐ๊ฒฐํ๊ณ ๋น ๋ฅธ ๋ฐฐํฌ๋ฅผ ์งํฅํ๋ GitHub Flow์ ์ ํธ๋๊ฐ ๋์์ง๋ ๊ฒ๋ ์ด๋ฌํ ํ๋์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ณํ๋ฅผ ๋ฐ์ํ๋ ๊ฒฐ๊ณผ๋ผ๊ณ ํ ์ ์์ด์.
๐ ๋ฏธ๋ ๊ธฐ์ ๋ฐ ํธ๋ ๋ ์ ๋งํ
| ๊ตฌ๋ถ |
์ฃผ์ ๋ํฅ ๋ฐ 2026๋
์์ธก |
| ์๋ํ (CI/CD) |
GitHub Actions๋ฅผ ํตํ ํ
์คํธ ๋ฐ ๋ฐฐํฌ ์๋ํ์ ๋ณดํธํ |
| AI ํตํฉ |
AI๋ฅผ ํ์ฉํ ์๋ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ์ง๋ฅํ ์ถฉ๋ ํด๊ฒฐ ์ง์ |
| ์ํฌํ๋ก์ฐ |
Trunk-Based ๋ฐ GitHub Flow ์ค์ฌ์ ๊ฐ๊ฒฐํ ๊ตฌ์กฐ ์ ํธ |
๐ ️ ์ค์ GitHub Flow ๊ฐ์ด๋์ ์ ์ฉํ ํ
์ค์ ํ์
์์ ๋ฐ๋ก ์ ์ฉํ ์ ์๋ GitHub Flow์ ๋จ๊ณ๋ฅผ ์ดํด๋ณผ๊ฒ์. ๋จผ์ main ๋ธ๋์น๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ๋ ๊ฒ๋ถํฐ ์์ํด์. git pull ๋ช
๋ น์ด๋ก ์๊ฒฉ ์ ์ฅ์์ ์ต์ ๋ด์ฉ์ ๋ก์ปฌ์ ๋ฐ์ํ ๋ค, ์์
ํ ๋ด์ฉ์ ๋ช
ํํ ๋ํ๋ด๋ ์ด๋ฆ์ผ๋ก ์ ๋ธ๋์น๋ฅผ ์์ฑํด์ผ ํด์. ์ด๋ feature/๋ bugfix/ ๊ฐ์ ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ด๋ฆฌ๊ฐ ํจ์ฌ ์ฌ์์ ธ์.
์์
์ ์งํํ ๋๋ ์๋ฏธ ์๋ ๋จ์๋ก ์์ฃผ ์ปค๋ฐ์ ๋จ๊ธฐ๋ ๊ฒ์ด ์ข์์. Conventional Commits์ ๊ฐ์ ๊ท์น์ ์ฌ์ฉํ๋ฉด ๋์ค์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ํ์ธํ ๋ ํจ์ฌ ์ดํดํ๊ธฐ ์ฝ์ฃ . ์์
์ด ์๋ฃ๋๋ฉด ์๊ฒฉ ์ ์ฅ์์ ํธ์ํ๊ณ ๊นํ๋ธ ์น์ฌ์ดํธ์์ PR์ ์์ฑํด์. ๋๋ฃ๋ค์ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์ณ ์น์ธ์ ๋ฐ์ผ๋ฉด ๋น๋ก์ ๋ฉ์ธ ๋ธ๋์น์ ๋ณํฉํ๊ฒ ๋๋ต๋๋ค.
๋ณํฉ์ด ๋๋ ๋ธ๋์น๋ ์ฆ์ ์ญ์ ํ์ฌ ์ ์ฅ์๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ๋ ๊ฒ๋ ์์ง ๋ง์ธ์. ๋ถํ์ํ ๋ธ๋์น๊ฐ ์์ด๋ฉด ๋์ค์ ํผ๋์ ์ผ๊ธฐํ ์ ์๊ฑฐ๋ ์. ๋ํ ์ค์๋ก ๋ธ๋์น๋ฅผ ์๋ชป ๊ฑด๋๋ ธ์ ๋๋ git reflog ๋ช
๋ น์ด๋ฅผ ํตํด ์ด์ ๊ธฐ๋ก์ ํ์ธํ๊ณ ๋ณต๊ตฌํ ์ ์๋ค๋ ์ ๋ ๊ธฐ์ตํด ๋๋ฉด ์๊ธํ ์ํฉ์์ ํฐ ๋์์ด ๋ ๊ฑฐ์์.
๋ง์ง๋ง์ผ๋ก ํ๋ก์ ํธ์ ๊ธธ์ก์ด๊ฐ ๋๋ README ํ์ผ๊ณผ ๊ธฐ์ฌ ๊ฐ์ด๋๋ฅผ ๋ด์ CONTRIBUTING ํ์ผ์ ์ ์์ฑํด ๋๋ ๊ฒ์ด ์ค์ํด์. ํ๋ก์ ํธ์ ๋ชฉ์ ๊ณผ ์ฌ์ฉ๋ฒ, ๋ธ๋์น ๊ด๋ฆฌ ๊ท์น ๋ฑ์ ๋ช
์ํด ๋๋ฉด ์๋ก์ด ํ์์ด ํฉ๋ฅํ์ ๋ ๋น ๋ฅด๊ฒ ์ ์ํ ์ ์๋๋ก ๋๋ ํ๋ฅญํ ๋ฌธ์๊ฐ ๋์ด์ค๋ต๋๋ค. ์ด๋ฌํ ์์ ์ต๊ด๋ค์ด ๋ชจ์ฌ ํ์ ํ์
ํจ์จ์ 2๋ฐฐ ์ด์ ๋์ฌ์ฃผ๋ ๊ฒฐ๊ณผ๋ก ์ด์ด์ ธ์.
๐ ์ค์ ๋ช
๋ น์ด ๋ฐ ํ ์์ฝํ
| ๋ช
๋ น์ด/ํ |
์ค๋ช
๋ฐ ํ์ฉ ๋ฐฉ๋ฒ |
| git checkout -b |
์๋ก์ด ๋ธ๋์น ์์ฑ ๋ฐ ์ฆ์ ์ด๋ |
| git reflog |
์์
๊ธฐ๋ก ํ์ธ์ ํตํ ์ค์ ๋ณต๊ตฌ ๊ธฐ๋ฅ |
| .gitignore |
๋ถํ์ํ ํ์ผ์ด๋ ๋ฏผ๊ฐ ์ ๋ณด ์ถ์ ์ ์ธ ์ค์ |
๐ ️ ๊นํ๋ธ ์ฌ์ฉ๋ฒ ํ์
ํจ์จ์ 2๋ฐฐ ๋์ด๋ ๋ธ๋์น ๊ด๋ฆฌ ํ - ์ถ๊ฐ ์ ๋ณด
❓ FAQ
Q1. ๋ธ๋์น๋ ์ ํํ ๋ฌด์์ธ๊ฐ์?
A1. ํ๋ก์ ํธ์ ๋ฉ์ธ ์ฝ๋ ๋ผ์ธ์์ ๋ถ๊ธฐํ์ฌ ๋
๋ฆฝ์ ์ผ๋ก ์์
์ ์งํํ ์ ์๋๋ก ๋๋ ๊ธฐ๋ฅ์ด์์.
Q2. ๋ณํฉ(Merge)์ ์ธ์ ํ๋์?
A2. ๋ธ๋์น์์ ์์
ํ ๋ด์ฉ์ด ์๋ฃ๋๊ณ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์ณ ์น์ธ๋์์ ๋ ๋ฉ์ธ ๋ธ๋์น๋ก ํตํฉํด์.
Q3. ํ ๋ฆฌํ์คํธ(PR)๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
A3. ํ์๋ค์๊ฒ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ๋ฐ๊ณ ํผ๋๋ฐฑ์ ํตํด ์ฝ๋ ํ์ง์ ๋์ด๊ธฐ ์ํด์ ์ฌ์ฉํด์.
Q4. main ๋ธ๋์น์ master ๋ธ๋์น์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
A4. ๊ธฐ๋ฅ์ ์ผ๋ก๋ ๋์ผํ๋ฉฐ, ์ต๊ทผ์๋ ์ฑ๋ณ ์ค๋ฆฝ์ ์ธ ์ฉ์ด์ธ main์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ์ถ์ธ์์.
Q5. GitHub Flow์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?
A5. ๋จ์ํ๊ณ ์ง๊ด์ ์ด์ด์ ๋น ๋ฅธ ๋ฐฐํฌ์ ์ง์์ ์ธ ํตํฉ์ด ํ์ํ ํ๊ฒฝ์ ๋งค์ฐ ์ ๋ฆฌํด์.
Q6. Git Flow๋ ์ด๋ค ํ๋ก์ ํธ์ ์ ํฉํ๊ฐ์?
A6. ๋ณต์กํ ๋ฆด๋ฆฌ์ฆ ๊ด๋ฆฌ๋ ์ฌ๋ฌ ๋ฒ์ ์ ๋์์ ์ ์งํด์ผ ํ๋ ์ค๋ํ ํ๋ก์ ํธ์ ์ ํฉํด์.
Q7. ๋ธ๋์น ์ด๋ฆ์ ์ง์ ๋ ํ์ด ์๋์?
A7. feat/, fix/, docs/์ ๊ฐ์ ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉ์ ์ ๋ช
ํํ ํ๋ ๊ฒ์ด ์ข์์.
Q8. ์ปค๋ฐ์ ์์ฃผ ํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
A8. ์์
๋ด์ฉ์ ์์ ํ๊ฒ ๋ณด์กดํ๊ณ ์ถฉ๋ ๋ฐ์ ์ ํด๊ฒฐํด์ผ ํ ์ฝ๋ ์์ ์ค์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ด์์.
Q9. ์ฝ๋ ๋ฆฌ๋ทฐ๋ ๊ผญ ํด์ผ ํ๋์?
A9. ๋ค, ์ ์ฌ์ ๋ฒ๊ทธ ๋ฐ๊ฒฌ๊ณผ ํ์ ๊ฐ ์ง์ ๊ณต์ ๋ฅผ ์ํด ํ์์ ์ธ ๋ฌธํ๋ก ์๋ฆฌ ์ก๊ณ ์์ด์.
Q10. ์ถฉ๋(Conflict)์ ์ ๋ฐ์ํ๋์?
A10. ์ฌ๋ฌ ๋ช
์ ๊ฐ๋ฐ์๊ฐ ๋์ผํ ํ์ผ์ ๊ฐ์ ๋ถ๋ถ์ ๋์์ ์์ ํ ๋ ๋ฐ์ํด์.
Q11. rebase์ merge์ ์ฐจ์ด์ ์ด ๋ฌด์์ธ๊ฐ์?
A11. merge๋ ๋ณํฉ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ , rebase๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ์ ํ์ ์ผ๋ก ๊น๋ํ๊ฒ ์ฌ์ ๋ ฌํด์.
Q12. ๋ณํฉ๋ ๋ธ๋์น๋ ์ญ์ ํด์ผ ํ๋์?
A12. ๋ค, ์ ์ฅ์๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ๊ณ ํผ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฃผ๊ธฐ์ ์ผ๋ก ์ญ์ ํ๋ ๊ฒ์ด ์ข์์.
Q13. git reflog๋ ์ธ์ ์ฌ์ฉํ๋์?
A13. ์ค์๋ก ์ปค๋ฐ์ ์ญ์ ํ๊ฑฐ๋ ๋ธ๋์น ์์
์ ๋๋๋ ค์ผ ํ ๋ ๊ธฐ๋ก์ ํ์ธํ์ฌ ๋ณต๊ตฌํ ์ ์์ด์.
Q14. .gitignore ํ์ผ์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
A14. ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ด๋ ๋ก๊ทธ ํ์ผ ๋ฑ Git์ด ์ถ์ ํ์ง ๋ง์์ผ ํ ํ์ผ์ ์ง์ ํ๋ ์ญํ ์ ํด์.
Q15. pull๊ณผ fetch์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
A15. fetch๋ ์ ๋ณด๋ง ๊ฐ์ ธ์ค๊ณ , pull์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ์ ๋ณํฉ์ ๋์์ ์ํํด์.
Q16. GitHub Actions๋ ๋ฌด์์ธ๊ฐ์?
A16. ๋ธ๋์น ์์
์ ์๋์ผ๋ก ๋น๋, ํ
์คํธ, ๋ฐฐํฌ๋ฅผ ์ํํ๊ฒ ๋๋ ์๋ํ ๋๊ตฌ์์.
Q17. Conventional Commits๊ฐ ๋ฌด์์ธ๊ฐ์?
A17. ์ผ๊ด์ฑ ์๋ ์ปค๋ฐ ๋ฉ์์ง ์์ฑ์ ์ํด ์ฝ์๋ ๊ท์น์ ์๋ฏธํด์.
Q18. CI/CD๊ฐ ์ ์ค์ํ๊ฐ์?
A18. ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๋์ผ๋ก ๊ฒ์ฆํ๊ณ ๋ฐฐํฌํ์ฌ ๊ฐ๋ฐ ์๋์ ์์ ์ฑ์ ๋์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ด์์.
Q19. GitLab Flow๋ ๋ฌด์์ด ํน์ง์ธ๊ฐ์?
A19. ์ด์ ํธ๋์ปค์ ๊ธด๋ฐํ๊ฒ ์ฐ๋ํ์ฌ ๋ธ๋์น์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ํน์ง์ด์์.
Q20. 2026๋
๊นํ๋ธ์ ๋ฏธ๋๋ ์ด๋จ๊น์?
A20. AI๊ฐ ์ฝ๋ ๋ฆฌ๋ทฐ์ ์ถฉ๋ ํด๊ฒฐ์ ๋ ๊น์ด ๊ด์ฌํ์ฌ ํ์
์ด ๋์ฑ ํธ๋ฆฌํด์ง ๊ฒ์ผ๋ก ์์๋ผ์.
Q21. README ํ์ผ์ ์ ์ค์ํ๊ฐ์?
A21. ํ๋ก์ ํธ์ ๋ชฉ์ ๊ณผ ์ฌ์ฉ๋ฒ์ ์๋ดํ์ฌ ํ์ ๊ฐ์ ์ดํด๋ฅผ ๋๋ ํ์ ๋ฌธ์์ด๊ธฐ ๋๋ฌธ์ด์์.
Q22. CONTRIBUTING ํ์ผ์๋ ๋ฌด์์ ์ ๋์?
A22. ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ธ๋์น ๋ช
๋ช
๊ท์น ๋ฑ ํ์
๊ฐ์ด๋๋ผ์ธ์ ์ ์ด์.
Q23. Trunk-Based Development๋ ๋ฌด์์ธ๊ฐ์?
A23. ๋ธ๋์น๋ฅผ ๊ธธ๊ฒ ์ ์งํ์ง ์๊ณ ๋ฉ์ธ ๋ธ๋์น์ ์์ฃผ ํตํฉํ๋ ๋ฐฉ์์ด์์.
Q24. Git Hooks๋ ์ด๋ป๊ฒ ํ์ฉํ๋์?
A24. ์ปค๋ฐ์ด๋ ํธ์ ์ ์๋์ผ๋ก ์คํ์ผ ๊ฒ์ฌ๋ ํ
์คํธ๋ฅผ ์คํํ๋๋ก ์ค์ ํ ์ ์์ด์.
Q25. ์ถฉ๋์ด ๋ฐ์ํ์ ๋ ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์?
A25. ์ถฉ๋์ด ๋ฐ์ํ ํ์ผ์ ํ์ธํ๊ณ ํ์๊ณผ ์ํตํ์ฌ ํด๊ฒฐ ๋ฐฉํฅ์ ๋
ผ์ํ๋ ๊ฒ์ด์์.
Q26. Scott Chacon์ ์ด๋ค ํ๋ฆ์ ์ถ์ฒํ๋์?
A26. ์ง์์ ์ธ ์ํํธ์จ์ด ์ ๊ณต์ ํ๋ ํ์๊ฒ GitHub Flow์ ๊ฐ์ ๊ฐ๋จํ ์ํฌํ๋ก์ฐ๋ฅผ ์ ์ํ์ด์.
Q27. Vincent Driessen์ด ์ ์ํ ์ ๋ต์?
A27. ๋ณต์กํ ๋ฆด๋ฆฌ์ฆ ๊ด๋ฆฌ์ ์ ํฉํ Git Flow ์ ๋ต์ ์ ์ํ์ด์.
Q28. ๊นํ๋ธ๊ฐ ํ๊ตญ ๊ฐ๋ฐ์์๊ฒ ํ์์ธ ์ด์ ๋?
A28. ์ ์ธ๊ณ์ ์ธ ํ์
ํ์ค์ด๋ฉฐ ํ๊ตญ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์์๋ ํต์ฌ ์ญ๋์ผ๋ก ํ๊ฐ๋ฐ๊ธฐ ๋๋ฌธ์ด์์.
Q29. ๋ธ๋์น ์ ๋ต์ ๋ฐ๊พธ๊ณ ์ถ์ ๋๋ ์ด๋ป๊ฒ ํ๋์?
A29. ํ์ ์ ์ฒด์ ๋
ผ์ํ์ฌ ํ๋ก์ ํธ ํน์ฑ์ ๋ง๋ ์ ๋ต์ ์ ํํ๊ณ ๊ท์น์ ์ฌ์ ๋ฆฝํด์ผ ํด์.
Q30. ํ์
ํจ์จ์ 2๋ฐฐ ๋์ด๋ ๋น๊ฒฐ ํ ๊ฐ์ง๋ง ๊ผฝ๋๋ค๋ฉด?
A30. ๋ช
ํํ ๋ธ๋์น ์ ๋ต ์๋ฆฝ๊ณผ ํ ๋ฆฌํ์คํธ๋ฅผ ํตํ ๊พธ์คํ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ ์ ์ฐฉ์ด์์.
๋ฉด์ฑ
๋ฌธ๊ตฌ
์ด ๊ธ์ ๊นํ๋ธ ์ฌ์ฉ๋ฒ ๋ฐ ๋ธ๋์น ๊ด๋ฆฌ ํ์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์์ฑ๋์์ด์. ์ ๊ณต๋ ์ ๋ณด๋ ๊ธฐ์ ์ ์๋ฌธ์ด ์๋๋ฉฐ, ํ๋ก์ ํธ์ ๊ตฌ์ฒด์ ์ธ ์ํฉ์ด๋ ํ์ ํน์ฑ์ ๋ฐ๋ผ ์ ์ฉ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์์ด์. ๋ฐ๋ผ์ ์ด ๊ธ์ ๋ด์ฉ๋ง์ ๋ฐํ์ผ๋ก ์ค์ํ ์์คํ
์ค์ ์ ๋ณ๊ฒฝํ๊ธฐ๋ณด๋ค๋ ๋ฐ๋์ ๊ณต์ ๋ฌธ์๋ ์ ๋ฌธ๊ฐ์ ์กฐ์ธ์ ์ฐธ๊ณ ํด์ผ ํด์. ํ์๋ ์ด ๊ธ์ ์ ๋ณด๋ก ์ธํด ๋ฐ์ํ๋ ๊ธฐ์ ์ ์ค๋ฅ๋ ์ํด์ ๋ํด ์ด๋ ํ ๋ฒ์ ์ฑ
์๋ ์ง์ง ์์์.
์์ฝ
๊นํ๋ธ ๋ธ๋์น ๊ด๋ฆฌ๋ ํ์
์ ์ฑํจ๋ฅผ ๊ฐ๋ฅด๋ ํต์ฌ ์์์์. ํ๋ก์ ํธ ๊ท๋ชจ์ ๋ง๋ ๋ช
ํํ ๋ธ๋์น ์ ๋ต(Git Flow, GitHub Flow ๋ฑ)์ ์๋ฆฝํ๊ณ , main ๋ธ๋์น์ ์์ ์ฑ์ ์ต์ฐ์ ์ผ๋ก ์ ์งํ๋ ๊ฒ์ด ์ค์ํด์. ๊ธฐ๋ฅ๋ณ ๋ธ๋์น ์์ฑ, ์ฆ์ ์ปค๋ฐ, ๊ทธ๋ฆฌ๊ณ ๋ฌด์๋ณด๋ค ํ ๋ฆฌํ์คํธ๋ฅผ ํตํ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ๋ ํ ์ ์ฒด์ ์ฝ๋ ํ์ง๊ณผ ์ง์ ๊ณต์ ๋ฅผ ์ด์งํด์. ์ต๊ทผ์๋ CI/CD ์๋ํ์ AI ๊ธฐ์ ์ด ๊ฒฐํฉ๋์ด ๋ธ๋์น ๊ด๋ฆฌ๊ฐ ๋์ฑ ๊ณ ๋ํ๋๊ณ ์์ผ๋ฉฐ, ์ด๋ฌํ ํ๋ฆ์ ์ดํดํ๊ณ ์ค์ฒํ๋ ๊ฒ์ด ๊ฐ๋ฐ์๋ก์์ ๊ฒฝ์๋ ฅ์ ๋์ด๋ ๊ธธ์ด์์. ์์ ์ต๊ด์ ๋ณํ๊ฐ ํ์ ํจ์จ์ 2๋ฐฐ ์ด์ ๋์ผ ์ ์๋ค๋ ์ ์ ๊ธฐ์ตํ๊ณ ์ค๋๋ถํฐ ์ค์ฒํด ๋ณด์ธ์.
๋๊ธ
๋๊ธ ์ฐ๊ธฐ