๋๋ Git ๊ด๋ฆฌ๋ฅผ ๋งก๊ณ ์๋ค. ์ฐ๋ฆฌ๋ ๋งค์ผ ์ค์ 10์์ ํจ๊ป ๋ชจ์ฌ์ ๊ฐ์ ์ ๋ ์์ ํ ๋ด์ฉ์ Git์ ์ฌ๋ฆฌ๊ณ , ์ถฉ๋์ด ์๋์ง ํ์ธํ๋ค. ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ํด๊ฒฐํ๊ณ , ์ถฉ๋์ด ์๋ค๋ฉด develop ๋ธ๋์น์ ๋ณํฉํ๋ค. ๋ณํฉ์ด ์๋ฃ๋๋ฉด ๊ฐ์์ ๋ก์ปฌ ํ๊ฒฝ์์ master ๋ธ๋์น๋ฅผ ์ ๋ฐ์ดํธํ๊ณ , ์์ ๋ด์ฉ์ ์ด์์ ์์ฑํ ํ feature ๋ธ๋์น๋ฅผ ์์ฑํ์ฌ ๊ทธ๋ ์ ์์ ์ ์งํํ๋ค.
ํ์ง๋ง ์ด๋ฒ์ ํ๋ก ํธ์๋ ๋ฐฐํฌ๋ฅผ ์งํํ๋ฉฐ GitHub ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ก๋ค. ์์ ์ค๊ฐ๋ง๋ค ๋ฐฐํฌ๋ฅผ ์ํด ์์ฃผ Git ํ ๋ฆฌํ์คํธ๋ฅผ ์์ฒญํ๊ณ , ํ ๋ช ๋ง ์ฌ๋ฆด ์ ์์ด์ ํ์ ์ ์ฒด๊ฐ ํจ๊ป ์ฌ๋ฆฌ๊ณ ๋ด๋ ค๋ฐ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ์ด๋ก ์ธํด ํผ์ณ ์ด์๊ฐ ์ง๋์น๊ฒ ๋ง์์ก๋ค. ์ฌ์ค ์ด๋ฐ ๊ด๋ฆฌ ๋ฐฉ์์ ์ณ์ง ์๋ค๋ ์๊ฐ์ด ๋ค์์ง๋ง ๋ฐฐํฌ๊ฐ ๊ธํ ์ํฉ์ด์ด์ ์ด์ฉ ์ ์์ด ์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก Git์ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ๋ฆฌ๊ณ ๋ด๋ ค๋ฐ๊ฒ ๋์๋ค.
ํ์
์์ ๊นํ๋ธ ๊ด๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ๋์ง
ํ์ ์์ Git ๋ฐ GitHub๋ฅผ ์ฌ์ฉํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์กฐ์ง์ด๋ ํ์ ์๊ตฌ์ฌํญ, ํ๋ก์ ํธ์ ๊ท๋ชจ์ ๋ณต์ก์ฑ์ ๋ฐ๋ผ ๋ค์ํ ์ ์๋ค. ๊ทธ๋ ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก๋ ์๋์ ๊ฐ์ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ด ๋๋ฆฌ ์ฌ์ฉ๋๋ค.
*๏ธโฃ ๋ธ๋์น ์ ๋ต : ์ฃผ๋ก Git Flow
๋ GitHub Flow
์ ๊ฐ์ ๋ธ๋์น ์ ๋ต์ ์ฌ์ฉํ๋ค. ์ด๋ ๊ฐ๋ฐ, ํ
์คํธ, ๋ฐฐํฌ๋ฅผ ์ํ ๋ค์ํ ๋ธ๋์น๋ฅผ ๊ตฌ์ฑํ์ฌ ๊ธฐ๋ฅ ๊ฐ๋ฐ, ๋ฒ๊ทธ ์์ , ๋ฐฐํฌ ๋ฑ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ์
*๏ธโฃ ์ด์ ํธ๋ํน : GitHub์ ์ด์ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ธฐ๋ฅ ์ถ๊ฐ, ๋ฒ๊ทธ ์์ , ์์ ์์ฒญ ๋ฑ์ ๊ด๋ฆฌํ๋ค. ์ด์์๋ ์ ๋ชฉ, ์ค๋ช , ๋ ์ด๋ธ, ๋ง์ผ์คํค ๋ฑ์ ํ์ฉํ์ฌ ์์ธํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๊ณ , ํ์๊ณผ์ ์ํต๊ณผ ์์ ์ถ์ ์ ํ์ฉํ๋ค.
*๏ธโฃ ์ฝ๋ ๋ฆฌ๋ทฐ : Pull Request๋ฅผ ํตํด ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์ํํ๋ค. ํ์๋ค์ด ์์ฑํ ์ฝ๋๋ฅผ ์๋ก ๊ฒํ ํ๊ณ ์๊ฒฌ์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ, ํ์ง ํฅ์๊ณผ ๋ฒ๊ทธ ์๋ฐฉ์ ์ํด ๋ฆฌ๋ทฐ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
*๏ธโฃ ์๋ํ์ ํ ์คํธ : CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ฌ ์ฝ๋์ ๋น๋, ํ ์คํธ, ๋ฐฐํฌ ๋ฑ์ ์๋ํํ๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ค์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ผ๋ก ๊ฒ์ฆ๋๊ณ ๋ฐฐํฌ๋๋ ๊ณผ์ ์ ํ์ธํ ์ ์๋ค.
*๏ธโฃ ํ์ ๊ณผ ์ํต : ์ปค๋ฎค๋์ผ์ด์ ๋๊ตฌ๋ ์ด์ ํธ๋์ปค๋ฅผ ํ์ฉํ์ฌ ํ์๋ค๊ณผ ์ํตํ๋ฉฐ, ์์ ์ํฉ, ๊ณํ, ์ด์ ๋ฑ์ ํฌ๋ช ํ๊ฒ ๊ณต์ ํ๋ค. ๋ํ, ์ฝ๋์ ๋ํ ๋ฌธ์ํ์ ์ง์์ ์ธ ํผ๋๋ฐฑ ๊ณต์ ๋ฅผ ํตํด ํ์๋ค ๊ฐ์ ์ง์ ๊ณต์ ๋ฅผ ๋๋ชจํ๋ค.
์ด ์ธ์๋ ํ์ ์์๋ ์ฝ๋ ์คํ์ผ ๊ฐ์ด๋, ๋ฒ์ ํ๊น , ๋ฆด๋ฆฌ์ฆ ๋ ธํธ ์์ฑ ๋ฑ์ ๊ด๋ฆฌ ์์ ๋ ํจ๊ป ์ด๋ฃจ์ด์ง๋ค. ์ค์ํ ๊ฒ์ ํ์ ์๊ตฌ์ฌํญ๊ณผ ํ๋ก์ ํธ์ ํน์ฑ์ ๋ง๊ฒ Git ๋ฐ GitHub๋ฅผ ์ ์ฐํ๊ฒ ํ์ฉํ์ฌ ํจ์จ์ ์ด๊ณ ํ์ ์ ์ํํ๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๊ฒ์ด๋ค.
๊น์ FR๋ ๋ฆฌ๋ ์๊ฐ์ ์ ํด์ ธ ์๋๊ฐ? ํ๋ฃจ์ ๋ช ๋ฒ ์ ๋ ํ๋๊ฐ?
๊น์ ํธ์ํ๋ ์๊ฐ์ ์กฐ์ง ๋๋ ํ์ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๋ค. ํ๋ง๋ค ๋ค๋ฅธ ์๊ตฌ์ฌํญ๊ณผ ๊ฐ๋ฐ ๋ฐฉ์์ด ์๊ธฐ ๋๋ฌธ์ ํธ์ํ๋ ์๊ฐ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ๊ท์ ์ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ ํจํด์ด ์ผ๋ฐ์ ์ด๋ค.
*๏ธโฃ ์์ ์๋ฃ ํ ํธ์ : ๊ฐ๋ฐ์๋ ๊ธฐ๋ฅ ๋๋ ๋ฒ๊ทธ ์์ ๋ฑ์ ์์ ์ ์๋ฃํ ํ, ํด๋น ์์ ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ํธ์ํ๋ค. ์ด๋ ์์ ์ด ์๋ฃ๋์์ผ๋ฉฐ ๋ค๋ฅธ ํ์๋ค๊ณผ ๊ณต์ ํ ์ค๋น๊ฐ ๋์์์ ์๋ฏธํ๋ค.
*๏ธโฃ ์ฝ๋ ๋ฆฌ๋ทฐ ํ ํธ์ : Pull Request๋ฅผ ํตํด ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ ํ์ ๋ฆฌ๋ทฐ์ด์ ํผ๋๋ฐฑ์ ๋ฐ์ํ์ฌ ์์ ๋ธ๋์น๋ฅผ ํธ์ํ๋ค. ์ด๋ ๋ฆฌ๋ทฐ ๊ณผ์ ์ ๊ฑฐ์ณ ์ฝ๋ ํ์ง์ ํฅ์์ํค๊ณ ํ์๋ค์ ๊ฒํ ๋ฅผ ๋ฐ์์์ ์๋ฏธํ๋ค.
ํ๋ฃจ์ ํธ์ํ๋ ํ์๋ ํ๋ก์ ํธ์ ๊ท๋ชจ, ์์ ์ ๋ณต์ก์ฑ, ๊ฐ๋ฐ์์ ์์ ์๋ ๋ฑ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ์์ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ, ํ๋ฃจ์ ๋ช ์ฐจ๋ก ํธ์ํ ์๋ ์์ง๋ง, ๋๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ์๋ ํ ๋ฒ ์ด์์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์น ํ ํธ์ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค. ์ค์ํ ๊ฒ์ ํ์๋ค๊ณผ์ ํ์๋ฅผ ํตํด ์ผ๊ด๋ ๊ท์น์ ์ ํ๊ณ ํ๋ก์ ํธ์ ๋ง์ถฐ ํธ์ํ๋ ์๊ฐ์ ์กฐ์จํ๋ ๊ฒ์ด๋ค.
๊นํ๋ธ ๊ด๋ฆฌ