๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋๋ ํฌ๊ฒ ์ผ๋์ ๋๊ณ ์์ง ์์๋ ๊ด์ฐฎ์์์ง๋ง, ํ์
์ ํ๋ค ๋ณด๋ฉด Push / Pull ํ ๋ ์ด์๊ฐ ๋ฐ์ํ๊ณค ํฉ๋๋ค.
ํ๋์ ๋ธ๋์น๋ง ๊ด๋ฆฌํ๊ฒ ๋ ๊ฒฝ์ฐ ๋ฐฐํฌ๊ฐ ๋์๋ค๊ฐ ๋กค๋ฐฑ์ด ๋์ด์ผ ํ๋ ์์ ์์ ์๋กญ๊ฒ ์ฌ๋ผ๊ฐ ๋ด์ญ๋ค์ ์ผ์ผ์ด ๋ค์ ๋กค๋ฐฑ์์ผ์ผ ํ๋ ๋์ฐธ์ฌ๋ฅผ ๊ฒช์ด๋ณด๊ฒ ๋์ค ๊ฒ๋๋ค. (์ ๋ง ์ง์ฅ ๊ฐ์ ์๊ฐ์ด์ฃ ...)
์ด๋ฐ ์ค์๋ฅผ ์ต์ํํ๊ธฐ ์ํด์ CI · CD๊ฐ ๊ตฌ์ถ๋์ด ์๋ ํ๋ก์ ํธ๋ฅผ ์งํ ์์ ๋๋ ์งํ ์ค์ด๋ผ๋ฉด ์ด๋ฒ ๊ธฐํ์ ํ๋ฒ GUI๋ฅผ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋จ์ ํ์ฉํด์ ๋๋ ๋ณด์๋ ๊ฒ์ ์ถ์ฒ ๋๋ฆฝ๋๋ค. ๋ฌผ๋ก , CI · CD๊ฐ ๊ตฌ์ถ๋์ด ์์ง ์์๋ ํ์ฉํ์
๋ ์ข์ต๋๋ค.
#1. ๋ธ๋์น(branch) ์ข
๋ฅ / ์ญํ
์๋์ ๋ช
์ํด๋ ๋ช
์นญ์ ์์ ์ด์ง๋ง, ์ต์ํ์ ๊ท์น์ ์งํค๊ธฐ ์ํ ๋ช
์นญ์ด๋ ์ฐธ๊ณ ํด ์ฃผ์๋ฉด ๋ฉ๋๋ค.
- main: ๊ธฐ๋ณธ ๋ฉ์ธ branch
- hotfix: ๊ธด๊ธํ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ์ฌ ์ฒ๋ฆฌ๋ฅผ ์ํ branch
- release: main์ผ๋ก merge request ์งํํ๊ธฐ ์ ์ ํ
์คํธ๋ฅผ ์งํํ๊ธฐ ์ํ branch
- develop: ๊ฐ๋ฐ ์งํ ๋ฉ์ธ branch
- feature: ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ํด ๋ถ๋ฆฌํ๋ branch (๋ณต์๊ฐ)
- feature/notice: ๊ณต์ง์ฌํญ ๊ธฐ๋ฅ์ ๋ง๋ค๊ธฐ ์ํ branch
- feature/login: ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๋ง๋ค๊ธฐ ์ํ branch
CI/CD๊ฐ ๊ตฌ์ถ๋์ด ์์ง ์๋ค๋ฉด ์๋์ ๊ฐ์ด ์งํํ์
๋ ๋ฌด๊ดํฉ๋๋ค.
main branch์์ ๋ชจ๋ ์์
์ ์งํํ๊ณ ์ ์์ ์ผ๋ก ๋์ํ ๋ ๋ฐฐํฌํ๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ด ๋ ์ ์์ง๋ง, ์ฑ
์์ ์์ง๊ฐ ์ปค์ง๋ฏ๋ก ์ต์ํ์ feature branch ์ ๋๋ ๋ถ๋ฆฌํด์ ์์
ํ์ ๋ณํฉํ๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
#2. ์ฅ์
Git Flow๋ฅผ ์ ์ฉํ ๊ฒฝ์ฐ ์ป์ ์ ์๋ ์ฅ์ ๋ค์ ์๋์ ๊ฐ์ต๋๋ค.
- ๋จ์ ์์
์๋ค๊ณผ ๊ด๋ฆฌ์์ ๊ถํ์ ๋ถ๋ฆฌํด์ ๊ฐ๊ฐ์ ๊ถํ์์๋ง ์ฝ๋์ ๋ธ๋์น์ ์ ๊ทผํ ์ ์๊ฒ ํด์ ๋ณด๋ค ์์ ํ๊ฒ ์์ค์ฝ๋๋ฅผ ๊ด๋ฆฌํ ์ ์์
- App, Web, Mobile, API ๋ฑ ์ด์์ ๋ฐฐํฌ๋๊ณ ์๋ ๋ธ๋์น์ ์ ๊ทผ์ ์ต์ข
๊ด๋ฆฌ์๋ง ๊ฐ๋ฅํ๊ฒ ํ๊ณ ์ ๊ท ์์
์ feature, develop, release, hotfix ๋ฑ์ ๋ธ๋์น์์ ์ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ง์คํ ์ ์์
- ์ต์ข
๊ด๋ฆฌ์๊ฐ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋จ๋๋ค๋ฉด, ๋ณํฉ ์์ฒญ์ ๊ฑฐ์ ํ ์๋ ์์ผ๋ฏ๋ก ์์ ํ๊ฒ ๊ด๋ฆฌ ๊ฐ๋ฅ
- ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ํ ๋ฆฌํ์คํธ๋ฅผ ํ์ฉ ๊ฐ๋ฅ