Git์ ์ฌ์ฉํ์ฌ ํ๋ก ํธ์๋ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๋ง์คํฐํ์ธ์. ์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ ํจ์จ์ ์ธ ํ ํ์ ์ ์ํ ์ํฌํ๋ก์ฐ, ๋ธ๋์นญ ์ ๋ต, ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ค๋ฃน๋๋ค.
ํ๋ก ํธ์๋ ๋ฒ์ ๊ด๋ฆฌ: Git ์ํฌํ๋ก์ฐ ๋ฐ ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ญ๋์ ์ธ ์ธ๊ณ์์ ํจ๊ณผ์ ์ธ ๋ฒ์ ๊ด๋ฆฌ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด๋ ์ฝ๋ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ณ , ํ์ ์ ์ฉ์ดํ๊ฒ ํ๋ฉฐ, ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํฉ๋๋ค. ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ธ Git์ ์ ๊ณ ํ์ค์ด ๋์์ต๋๋ค. ์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋์์๋ ํ๋ก ํธ์๋ ํ์ ๊ฐํํ๊ธฐ ์ํ Git ์ํฌํ๋ก์ฐ, ๋ธ๋์นญ ์ ๋ต, ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ ๊ธฐ์ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํด๋ด ๋๋ค.
์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ค์ํ๊ฐ?
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ ์ด์ ์ ์ HTML ๋ฐ CSS์ ๊ตญํ๋์ง ์์ต๋๋ค. ์ต์ ํ๋ก ํธ์๋ ํ๋ก์ ํธ์๋ ๋ณต์กํ JavaScript ํ๋ ์์ํฌ(React, Angular, Vue.js ๋ฑ), ๋ณต์กํ ๋น๋ ํ๋ก์ธ์ค ๋ฐ ํ์ ์ํฌํ๋ก์ฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ ์ ํ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์์ผ๋ฉด ์ด๋ฌํ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋น ๋ฅด๊ฒ ํผ๋์ค๋ฌ์์ง ์ ์์ต๋๋ค. ๋ฒ์ ๊ด๋ฆฌ๊ฐ ํ์์ ์ธ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ์ : ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ์๋ก์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฎ์ด์ฐ์ง ์๊ณ ๋์์ ๋์ผํ ํ๋ก์ ํธ์์ ์์ ํ ์ ์์ต๋๋ค.
- ์ฝ๋ ๋ฌด๊ฒฐ์ฑ: ์ฝ๋๋ฒ ์ด์ค์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ์ฌ ํ์ํ ๊ฒฝ์ฐ ์ด์ ๋ฒ์ ์ผ๋ก ์ฝ๊ฒ ๋๋๋ฆด ์ ์์ต๋๋ค.
- ๋ฒ๊ทธ ์ถ์ : ๋ฒ๊ทธ๊ฐ ์ธ์ ์ด๋์์ ๋์ ๋์๋์ง ์๋ณํ์ฌ ๋๋ฒ๊น ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํฉ๋๋ค.
- ๊ธฐ๋ฅ ๊ด๋ฆฌ: ๊ธฐ๋ณธ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ฐฉํดํ์ง ์๊ณ ๊ฒฉ๋ฆฌ๋ ์ํ์์ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํฉ๋๋ค.
- ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ: ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ์ผ๊ด๋ ๋ฐฐํฌ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
- ์คํ: ์์ ์ ์ธ ์ํ๋ก ์ฝ๊ฒ ๋๋๋ฆด ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์๋ก์ด ์์ด๋์ด๋ฅผ ์์ ์๊ฒ ์คํํฉ๋๋ค.
Git ๊ธฐ๋ณธ ์ฌํญ ์ดํด
์ํฌํ๋ก์ฐ๋ฅผ ์ดํด๋ณด๊ธฐ ์ ์ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ Git ๊ฐ๋ ์ ๊ฒํ ํด ๋ณด๊ฒ ์ต๋๋ค.
- Repository(Repo): ๋ชจ๋ ํ๋ก์ ํธ ํ์ผ๊ณผ Git ๊ธฐ๋ก์ด ํฌํจ๋ ๋๋ ํ ๋ฆฌ์ ๋๋ค. ๋ก์ปฌ(์ปดํจํฐ์ ์์) ๋๋ ์๊ฒฉ(์: GitHub, GitLab ๋๋ Bitbucket์ ์์)์ผ ์ ์์ต๋๋ค.
- Commit: ํน์ ์์ ์ ํ๋ก์ ํธ ์ค๋ ์ท์ ๋๋ค. ๊ฐ ์ปค๋ฐ์๋ ๊ณ ์ ํ ID(SHA-1 ํด์)๊ฐ ์์ต๋๋ค.
- Branch: ํน์ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์ ๋๋ค. ๋ณ๋์ ๊ฐ๋ฐ ๋ผ์ธ์ ๋ง๋ค ์ ์์ต๋๋ค.
- Merge: ํ ๋ถ๊ธฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค๋ฅธ ๋ถ๊ธฐ๋ก ๊ฒฐํฉํฉ๋๋ค.
- Pull Request(Merge Request): ํ ๋ถ๊ธฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค๋ฅธ ๋ถ๊ธฐ๋ก ๋ณํฉํ๋ผ๋ ์์ฒญ์ ๋๋ค. ์ข ์ข ์ฝ๋ ๊ฒํ ๊ฐ ํฌํจ๋ฉ๋๋ค.
- Clone: ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ก์ปฌ ์ปดํจํฐ์ ๋ณต์ฌํฉ๋๋ค.
- Push: ๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์์ ์ ๋ก๋ํฉ๋๋ค.
- Pull: ์๊ฒฉ ์ ์ฅ์์์ ๋ก์ปฌ ์ปดํจํฐ๋ก ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- Fetch: ๋ค๋ฅธ ์ ์ฅ์์์ ๊ฐ์ฒด์ ์ฐธ์กฐ๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ํ ์ธ๊ธฐ ์๋ Git ์ํฌํ๋ก์ฐ
Git ์ํฌํ๋ก์ฐ๋ ํ์ด Git์ ์ฌ์ฉํ์ฌ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ์ฌ๋ฐ๋ฅธ ์ํฌํ๋ก์ฐ๋ฅผ ์ ํํ๋ ๊ฒ์ ํ ๊ท๋ชจ, ํ๋ก์ ํธ ๋ณต์ก์ฑ ๋ฐ ๋ฆด๋ฆฌ์ค ๋น๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์ธ๊ธฐ ์๋ ์ต์ ์ ๋๋ค.
1. ์ค์ ์ง์ค์ ์ํฌํ๋ก์ฐ
๋ชจ๋ ๊ฐ๋ฐ์๊ฐ main(๋๋ master) ๋ถ๊ธฐ์์ ์ง์ ์์
ํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ์ํฌํ๋ก์ฐ์
๋๋ค. ์ดํดํ๊ธฐ ์ฝ์ง๋ง ์ ์ฌ์ ์ธ ์ถฉ๋๋ก ์ธํด ๋๊ท๋ชจ ํ์๋ ๊ถ์ฅ๋์ง ์์ต๋๋ค.
์ฅ์ :
- ์ดํดํ๊ณ ๊ตฌํํ๊ธฐ ์ฝ์ต๋๋ค.
- ์๊ท๋ชจ ํ ๋๋ ๊ฐ๋จํ ํ๋ก์ ํธ์ ์ ํฉํฉ๋๋ค.
๋จ์ :
- ํนํ ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ์๋ ๊ฒฝ์ฐ ์ถฉ๋ ์ํ์ด ๋์ต๋๋ค.
- ๊ฒฉ๋ฆฌ๋ ์ํ์์ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต์ต๋๋ค.
- ์ง์์ ํตํฉ ๋๋ ์ง์์ ๋ฐฐํฌ์ ์ ํฉํ์ง ์์ต๋๋ค.
์: ๊ฐ๋จํ ์น์ฌ์ดํธ์์ ์์ ํ๋ 2~3๋ช ์ ์๊ท๋ชจ ํ์ด ์ด ์ํฌํ๋ก์ฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ค์ ์์ฃผ ์ํตํ๊ณ ์ถฉ๋์ ํผํ๊ธฐ ์ํด ์ฃผ์ํฉ๋๋ค.
2. ๊ธฐ๋ฅ ๋ถ๊ธฐ ์ํฌํ๋ก์ฐ
๊ฐ๋ฐ์๋ ์์
์ค์ธ ๊ฐ ๊ธฐ๋ฅ์ ๋ํด ์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค. ์ด๋ฅผ ํตํด ๊ฒฉ๋ฆฌ๋ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๊ณ ๊ธฐ๋ณธ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ฐฉํดํ ์ํ์ด ์ค์ด๋ญ๋๋ค. ์ฝ๋ ๊ฒํ ํ ๊ธฐ๋ฅ ๋ถ๊ธฐ๋ main์ผ๋ก ๋ค์ ๋ณํฉ๋ฉ๋๋ค.
์ฅ์ :
- ๊ฒฉ๋ฆฌ๋ ๊ธฐ๋ฅ ๊ฐ๋ฐ.
main๋ถ๊ธฐ์์ ์ถฉ๋ ์ํ ๊ฐ์.- ์ฝ๋ ๊ฒํ ๋ฅผ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
๋จ์ :
- ์ ๋๋ก ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ์ฅ๊ธฐ ์คํ ๊ธฐ๋ฅ ๋ถ๊ธฐ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
- ๋ ๋ง์ ๊ท์จ๊ณผ ์์ฌ ์ํต์ด ํ์ํฉ๋๋ค.
์: ํ์ด ์๋ก์ด ์ ์ ์๊ฑฐ๋ ํ๋ซํผ์ ๊ตฌ์ถํ๊ณ ์์ต๋๋ค. ํ ๊ฐ๋ฐ์๋ ์ ํ ์นดํ๋ก๊ทธ๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค๊ณ , ๋ค๋ฅธ ๊ฐ๋ฐ์๋ ๋ณ๋์ ๋ถ๊ธฐ์์ ์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ์ ์์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ ๋ฆฝ์ ์ผ๋ก ์์ ํ๊ณ ์ค๋น๊ฐ ๋๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ๋ณํฉํ ์ ์์ต๋๋ค.
3. Gitflow ์ํฌํ๋ก์ฐ
๊ฐ๋ฐ(develop), ๋ฆด๋ฆฌ์ค(release) ๋ฐ ํซํฝ์ค(hotfix)์ ์ ์ฉ ๋ถ๊ธฐ๊ฐ ์๋ ๋ณด๋ค ๊ตฌ์กฐ์ ์ธ ์ํฌํ๋ก์ฐ์
๋๋ค. ์์ฝ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์๋ ํ๋ก์ ํธ์ ์ ํฉํฉ๋๋ค.
๋ถ๊ธฐ:
- main: ํ๋ก๋์ ์ค๋น ์ฝ๋๋ฅผ ํฌํจํฉ๋๋ค.
- develop: ๋ชจ๋ ๊ธฐ๋ฅ ๋ถ๊ธฐ์ ๋ํ ํตํฉ ๋ถ๊ธฐ์ ๋๋ค.
- feature/*: ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ถ๊ธฐ์ ๋๋ค.
- release/*: ๋ฆด๋ฆฌ์ค๋ฅผ ์ค๋นํ๊ธฐ ์ํ ๋ถ๊ธฐ์ ๋๋ค.
- hotfix/*: ํ๋ก๋์ ์์ ์ค์ํ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ธฐ ์ํ ๋ถ๊ธฐ์ ๋๋ค.
์ฅ์ :
- ์ ์ ์๋ ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค.
- ํซํฝ์ค ์ง์.
- ๊ด์ฌ์ฌ ๋ช ํํ ๋ถ๋ฆฌ.
๋จ์ :
- ์ดํดํ๊ณ ๊ตฌํํ๊ธฐ๊ฐ ๋ ๋ณต์กํฉ๋๋ค.
- ์๊ท๋ชจ ํ๋ก์ ํธ์๋ ๊ณผ๋ํ ์ ์์ต๋๋ค.
- ์ง์์ ์ธ ์ ๊ณต์๋ ์ ํฉํ์ง ์์ต๋๋ค.
์: ํ ์ํํธ์จ์ด ํ์ฌ๊ฐ ๋งค๋ฌ ์ ํ์ ์ ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํฉ๋๋ค. ๊ทธ๋ค์ Gitflow๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ, ํ ์คํธ ๋ฐ ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ์ฌ ์์ ์ ์ด๊ณ ์์ธก ๊ฐ๋ฅํ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
4. GitHub Flow
Gitflow์ ๋จ์ํ๋ ๋ฒ์ ์ผ๋ก, ๋ชจ๋ ๊ธฐ๋ฅ ๋ถ๊ธฐ๊ฐ main์์ ๋ถ๊ธฐ๋์ด ์ฝ๋ ๊ฒํ ํ ๋ค์ ๋ณํฉ๋ฉ๋๋ค. ์ง์์ ์ผ๋ก ๋ฐฐํฌํ๋ ํ๋ก์ ํธ์ ์ ํฉํฉ๋๋ค.
์ฅ์ :
- ๋จ์ํ๊ณ ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค.
- ์ง์์ ์ธ ์ ๊ณต์ ์ ํฉํฉ๋๋ค.
- ์์ฃผ ๋ฐฐํฌํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
๋จ์ :
- Gitflow๋ณด๋ค ๋ ๊ตฌ์กฐ์ ์ ๋๋ค.
- ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐฉ์งํ๋ ค๋ฉด ๋ ๋ง์ ๊ท์จ์ด ํ์ํ ์ ์์ต๋๋ค.
- ํซํฝ์ค๋ฅผ ๋ช
์์ ์ผ๋ก ์ฒ๋ฆฌํ์ง ์์ต๋๋ค(
main์์ ์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค์ด์ผ ํจ).
์: ํ์ ํ๋ฃจ์ ์ฌ๋ฌ ๋ฒ ๋ฐฐํฌ๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ GitHub Flow๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ๊ธฐ๋ฅ ๋ฐ ๋ฒ๊ทธ ์์ ์ ๋น ๋ฅด๊ฒ ๋ฐ๋ณตํ์ฌ ๋น ๋ฅด๊ณ ์ง์์ ์ธ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ฅผ ๋ณด์ฅํฉ๋๋ค. ๊ธฐ๋ฅ ๋ถ๊ธฐ์ ๋ํ ๋ชจ๋ ํธ์๋ ์๋ํ๋ ํ ์คํธ ๋ฐ ์คํ ์ด์ง ํ๊ฒฝ์ ๋ํ ๋ฐฐํฌ๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
5. GitLab Flow
GitHub Flow์ ์ ์ฌํ์ง๋ง ํ๊ฒฝ ๋ถ๊ธฐ(์: production, staging)์ ๋ ์ค์ ์ ๋ก๋๋ค. ์ง์์ ํตํฉ ๋ฐ ์ง์์ ์ ๊ณต(CI/CD) ํ์ดํ๋ผ์ธ์ ์ง์ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ฅ์ :
- CI/CD์ฉ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค.
- ํ๊ฒฝ ๋ช ํํ ๋ถ๋ฆฌ.
- ์๋ํ๋ฅผ ์ด์งํฉ๋๋ค.
๋จ์ :
- ์ฒ์์ ์ค์ ํ๋ ๊ฒ์ด ๋ ๋ณต์กํ ์ ์์ต๋๋ค.
์: ํ์ฌ๋ ์ฝ๋ ๊ด๋ฆฌ์์ CI/CD๊น์ง ์ ์ฒด ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์ GitLab์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ค์ GitLab Flow๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋ค์ํ ํ๊ฒฝ์ ์๋์ผ๋ก ๋ฐฐํฌํ์ฌ ์ํํ๊ณ ์๋ํ๋ ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ๋ณด์ฅํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ์ํฌํ๋ก์ฐ ์ ํ
์ต์์ Git ์ํฌํ๋ก์ฐ๋ ํน์ ์๊ตฌ ์ฌํญ๊ณผ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋ค์ ์์๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ํ ๊ท๋ชจ: ์๊ท๋ชจ ํ์ ์ข ์ข ๋ ๊ฐ๋จํ ์ํฌํ๋ก์ฐ๋ก ํด๊ฒฐํ ์ ์์ผ๋ฉฐ ๋๊ท๋ชจ ํ์ ๋ณด๋ค ๊ตฌ์กฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ ๋ณต์ก์ฑ: ์ฌ๋ฌ ์ข ์์ฑ์ด ์๋ ๋ณต์กํ ํ๋ก์ ํธ์๋ ๋ณด๋ค ๊ฐ๋ ฅํ ์ํฌํ๋ก์ฐ๊ฐ ํ์ํ ์ ์์ต๋๋ค.
- ๋ฆด๋ฆฌ์ค ๋น๋: ์์ฃผ ๋ฐฐํฌํ๋ ํ์ GitHub Flow์ ๊ฐ์ ์ํฌํ๋ก์ฐ๋ฅผ ์ ํธํ ์ ์์ผ๋ฉฐ ์์ฝ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์๋ ํ์ Gitflow๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
- CI/CD ์ธํ๋ผ: ๊ฐ๋ ฅํ CI/CD ํ์ดํ๋ผ์ธ์ด ์๋ ๊ฒฝ์ฐ GitLab Flow๊ฐ ์ข์ ์ ํ์ด ๋ ์ ์์ต๋๋ค.
๋ค์ํ ์ํฌํ๋ก์ฐ๋ฅผ ์คํํ๊ณ ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์กฐ์ ํ๋ ๊ฒ์ ๋๋ ค์ํ์ง ๋ง์ญ์์ค. ํต์ฌ์ ํ์ ์ ํฉํ๊ณ ๊ณ ํ์ง ์ํํธ์จ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ์ ๊ณตํ๋ ๋ฐ ๋์์ด ๋๋ ์ํฌํ๋ก์ฐ๋ฅผ ์ฐพ๋ ๊ฒ์ ๋๋ค.
ํ๋ก ํธ์๋ ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ ์ ๋ต
๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ์๋ ์ํํธ์จ์ด ์ ๋ฐ์ดํธ์ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ณํ, ์์ฝ ๋ฐ ์ ์ดํ๋ โโ๊ฒ์ด ํฌํจ๋ฉ๋๋ค. ํจ๊ณผ์ ์ธ ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์ ์ ์ด๊ณ ์์ธก ๊ฐ๋ฅํ๋ฉฐ ์ฌ์ฉ์์๊ฒ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
Semantic Versioning (SemVer)
MAJOR.MINOR.PATCH์ ์ธ ๋ถ๋ถ์ผ๋ก ๋ ์ซ์๋ฅผ ์ฌ์ฉํ๋ ๋๋ฆฌ ์ฑํ๋ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ์
๋๋ค.
- MAJOR: ํธํ๋์ง ์๋ API ๋ณ๊ฒฝ ์ฌํญ.
- MINOR: ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ๋ฐฉ์์ผ๋ก ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- PATCH: ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ๋ฐฉ์์ผ๋ก ๋ฒ๊ทธ ์์ .
SemVer๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก ํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋น์๊ฐ ์ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ๋์ ์ํฅ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์: 1.0.0์์ 2.0.0์ผ๋ก ์
๊ทธ๋ ์ด๋ํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์ํ๊ณ , 1.0.0์์ 1.1.0์ผ๋ก ์
๊ทธ๋ ์ด๋ํ๋ฉด ๊ธฐ์กด ๊ธฐ๋ฅ์ ์์์ํค์ง ์๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์์ ๋ํ๋
๋๋ค.
๋ฆด๋ฆฌ์ค ๋ธ๋์นญ
๋ฆด๋ฆฌ์ค๋ฅผ ์ค๋นํ ๋ develop ๋ถ๊ธฐ(๋๋ ์ด์ ์์ํ๋ ๋ถ๊ธฐ)์์ ์ ์ฉ ๋ฆด๋ฆฌ์ค ๋ถ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค. ์ด๋ฅผ ํตํด ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ํํ๊ณ ์งํ ์ค์ธ ๊ฐ๋ฐ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ๋ง๋ฐ์ง ๋ฒ๊ทธ๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
๋จ๊ณ:
release/1.2.0(๋๋ ์ ์ฌํ)์ด๋ผ๋ ์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค.- ๋ฆด๋ฆฌ์ค ๋ถ๊ธฐ์์ ์ต์ข ํ ์คํธ ๋ฐ ๋ฒ๊ทธ ์์ ์ ์ํํฉ๋๋ค.
- ๋ฆด๋ฆฌ์ค ๋ถ๊ธฐ๋ฅผ
main์ ๋ณํฉํ๊ณ ๋ฒ์ ๋ฒํธ(์:v1.2.0)๋ก ํ๊ทธ๋ฅผ ์ง์ ํฉ๋๋ค. - ๋ชจ๋ ๋ฒ๊ทธ ์์ ์ ์ ํํ๊ธฐ ์ํด ๋ฆด๋ฆฌ์ค ๋ถ๊ธฐ๋ฅผ
develop์ผ๋ก ๋ค์ ๋ณํฉํฉ๋๋ค.
๊ธฐ๋ฅ ํ๋๊ทธ
์ ์ฝ๋๋ฅผ ๋ฐฐํฌํ์ง ์๊ณ ํ๋ก๋์ ์์ ๊ธฐ๋ฅ์ ํ์ฑํํ๊ฑฐ๋ ๋นํ์ฑํํ๋ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์์ ํ์ ์งํฉ์ผ๋ก ์๋ก์ด ๊ธฐ๋ฅ์ ํ ์คํธํ๊ณ , ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ๋กค์์ํ๊ณ , ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๊ธฐ๋ฅ์ ์ ์ํ๊ฒ ๋นํ์ฑํํ ์ ์์ต๋๋ค. ๊ธฐ๋ฅ ํ๋๊ทธ๋ ๊ตฌ์ฑ ํ์ผ, ํ๊ฒฝ ๋ณ์ ๋๋ ์ ์ฉ ๊ธฐ๋ฅ ํ๋๊ทธ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์์ต๋๋ค.
์ฅ์ :
- ๋ฐฐํฌ ์ํ ๊ฐ์.
- A/B ํ ์คํธ.
- ํ๊ฒ ๊ธฐ๋ฅ ๋ฆด๋ฆฌ์ค.
- ๊ธด๊ธ ์ค์์น ๋๊ธฐ.
์: ํ์ฌ๊ฐ ์น์ฌ์ดํธ์ ๋ํ ์๋ก์ด ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ถ์ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ๊ธฐ๋ฅ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ์ฌ์ฉ์์๊ฒ ์ UI๋ฅผ ํ์ฑํํ๊ณ ํผ๋๋ฐฑ์ ์์งํ๊ณ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๋ฉด์ ์ ์ง์ ์ผ๋ก ๋กค์์ํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๊ธฐ๋ฅ ํ๋๊ทธ๋ฅผ ๋น ๋ฅด๊ฒ ๋นํ์ฑํํ์ฌ ์ด์ UI๋ก ๋๋๋ฆด ์ ์์ต๋๋ค.
์นด๋๋ฆฌ์ ๋ฆด๋ฆฌ์ค
๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋กค์์ํ๊ธฐ ์ ์ ์์์ ์ฌ์ฉ์์๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ง์ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น๊ธฐ ์ ์ ์ค์ ํ๊ฒฝ์์ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ์์ ํ ์ ์์ต๋๋ค. ์นด๋๋ฆฌ์ ๋ฆด๋ฆฌ์ค๋ ์ข ์ข ๋ถํ ๋ถ์ฐ ๋ฐ ๋ชจ๋ํฐ๋ง ๋๊ตฌ์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
์ฅ์ :
- ๋ฌธ์ ์กฐ๊ธฐ ๊ฐ์ง.
- ๋ฒ๊ทธ์ ์ํฅ ๊ฐ์.
- ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ .
์: ํ์ฌ๋ ํ๋ก ํธ์๋์ ์ ๋ฒ์ ์ ์๋ฒ์ ์์ ๋น์จ๋ก ๋ฐฐํฌํฉ๋๋ค. ๊ทธ๋ค์ ์นด๋๋ฆฌ์ ์๋ฒ์ ์ฑ๋ฅ์ ๋ฉด๋ฐํ ๋ชจ๋ํฐ๋งํ๊ณ ๊ธฐ์กด ์๋ฒ์ ์ฑ๋ฅ๊ณผ ๋น๊ตํฉ๋๋ค. ์ฑ๋ฅ ์ ํ ๋๋ ์ค๋ฅ๊ฐ ๊ฐ์ง๋๋ฉด ์นด๋๋ฆฌ์ ๋ฐฐํฌ๋ฅผ ๋น ๋ฅด๊ฒ ๋๋๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ ์ ์์ต๋๋ค.
Blue-Green ๋ฐฐํฌ
๋ธ๋ฃจ ๋ฐ ๊ทธ๋ฆฐ ๋ ๊ฐ์ ๋์ผํ ํ๋ก๋์ ํ๊ฒฝ์ ์ ์งํฉ๋๋ค. ํ ํ๊ฒฝ(์: ๋ธ๋ฃจ)์ ๋ผ์ด๋ธ๋ก ํธ๋ํฝ์ ์ ๊ณตํ๊ณ ๋ค๋ฅธ ํ๊ฒฝ(์: ๊ทธ๋ฆฐ)์ ์ ํด ์ํ์ ๋๋ค. ์ ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํ ์ค๋น๊ฐ ๋๋ฉด ์ ํด ํ๊ฒฝ์ ๋ฐฐํฌํ๊ณ ์ฒ ์ ํ ํ ์คํธํฉ๋๋ค. ์ ๋ฒ์ ์ด ์์ ์ ์ธ์ง ํ์ ํ๋ฉด ํธ๋ํฝ์ ๋ธ๋ฃจ ํ๊ฒฝ์์ ๊ทธ๋ฆฐ ํ๊ฒฝ์ผ๋ก ์ ํํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ธ๋ฃจ ํ๊ฒฝ์ผ๋ก ๋น ๋ฅด๊ฒ ๋ค์ ์ ํํ ์ ์์ต๋๋ค.
์ฅ์ :
- ๋ฌด์ค๋จ ๋ฐฐํฌ.
- ์ฌ์ด ๋กค๋ฐฑ.
- ์ํ ๊ฐ์.
๋จ์ :
- ์๋นํ ์ธํ๋ผ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค.
- ์ค์ ํ๊ณ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋ ๋ณต์กํฉ๋๋ค.
์ง์์ ํตํฉ/์ง์์ ์ ๊ณต(CI/CD)
๋น๋, ํ ์คํธ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํฉ๋๋ค. CI๋ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ณต์ ์ ์ฅ์์ ์๋์ผ๋ก ํตํฉ๋๋๋ก ๋ณด์ฅํ๊ณ CD๋ ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์ํ ํ๊ฒฝ(์: ์คํ ์ด์ง, ํ๋ก๋์ )์ ๋ฐฐํฌํ๋ ๊ฒ์ ์๋ํํฉ๋๋ค. CI/CD ํ์ดํ๋ผ์ธ์๋ ์ผ๋ฐ์ ์ผ๋ก Jenkins, GitLab CI, CircleCI ๋ฐ Travis CI์ ๊ฐ์ ๋๊ตฌ๊ฐ ํฌํจ๋ฉ๋๋ค.
์ฅ์ :
- ๋ ๋น ๋ฅธ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ.
- ์ค๋ฅ ์ํ ๊ฐ์.
- ์ฝ๋ ํ์ง ํฅ์.
- ๊ฐ๋ฐ์ ์์ฐ์ฑ ํฅ์.
ํ๋ก ํธ์๋ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
Git์ ์ด์ ์ ๊ทน๋ํํ๊ณ ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
- ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ๋ณ๊ฒฝํ ์ด์ ๋ฅผ ์ค๋ช ํ๊ณ ๋ณ๊ฒฝํ ๋ด์ฉ์ ์ค๋ช ํฉ๋๋ค. ์ผ๊ด๋ ์ปค๋ฐ ๋ฉ์์ง ํ์์ ๋ฐ๋ฅด์ญ์์ค(์: ์ผ๋ฐ์ ์ธ ์ปค๋ฐ ์ฌ์ฉ).
- ์์ฃผ ์ปค๋ฐํฉ๋๋ค. ์๊ณ ๋น๋ฒํ ์ปค๋ฐ์ ์ดํดํ๊ณ ๋๋๋ฆฌ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค.
- ์๋ฏธ ์๋ ๋ถ๊ธฐ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค. ๋ถ๊ธฐ ์ด๋ฆ์ ๋ถ๊ธฐ์ ๋ชฉ์ ์ ๋ช
ํํ๊ฒ ๋ํ๋ด์ผ ํฉ๋๋ค(์:
feature/add-user-authentication,bugfix/resolve-css-issue). - ๋ถ๊ธฐ๋ฅผ ์งง๊ฒ ์ ์งํฉ๋๋ค. ์ฅ๊ธฐ ์คํ ๋ถ๊ธฐ๋ ๋ณํฉํ๊ธฐ ์ด๋ ค์์ง๊ณ ์ค๋๋ ์ฝ๋๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
- ์ฝ๋ ๊ฒํ ๋ฅผ ์ํํฉ๋๋ค. ์ฝ๋ ๊ฒํ ๋ ๋ฒ๊ทธ๋ฅผ ์๋ณํ๊ณ ์ฝ๋ ํ์ง์ ๊ฐ์ ํ๋ฉฐ ํ ๊ตฌ์ฑ์ ๊ฐ์ ์ง์์ ๊ณต์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ฝ๋ ๊ฒํ ์ ํ ์์ฒญ(๋๋ ๋ณํฉ ์์ฒญ)์ ์ฌ์ฉํฉ๋๋ค.
- ํ ์คํธ๋ฅผ ์๋ํํฉ๋๋ค. ์ค๋ฅ๋ฅผ ์กฐ๊ธฐ์ ํฌ์ฐฉํ๊ธฐ ์ํด CI/CD ํ์ดํ๋ผ์ธ์ ์ผ๋ถ๋ก ์๋ํ๋ ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค.
- ๋ฆฐํฐ ๋ฐ ํฌ๋งทํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ผ๊ด๋ ์ฝ๋ฉ ์คํ์ผ์ ์ ์ฉํ๊ณ ์ ์ฌ์ ์ธ ์ค๋ฅ๋ฅผ ์๋ณํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ๋ฌธ์ ๋ฅผ ๋น ๋ฅด๊ฒ ์๋ณํ๊ธฐ ์ํด ์ฑ๋ฅ ์งํ์ ์ค๋ฅ์จ์ ์ถ์ ํฉ๋๋ค.
- ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ๋ฌธ์ํํฉ๋๋ค. ์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆด๋ฆฌ์คํ๋ ๋ฐ ๊ด๋ จ๋ ๋จ๊ณ๋ฅผ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๋ ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ๋ฌธ์๋ฅผ ๋ง๋ญ๋๋ค.
- ํ์ ๊ต์กํฉ๋๋ค. ๋ชจ๋ ํ ๊ตฌ์ฑ์์ด Git ๋ฐ ์ ํํ ์ํฌํ๋ก์ฐ์ ์ต์ํ์ง ํ์ธํฉ๋๋ค.
- ๋ฐฐํฌ๋ฅผ ์๋ํํฉ๋๋ค. ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋ฉด ์ธ์ ์ค๋ฅ๋ฅผ ์ต์ํํ ์ ์์ต๋๋ค.
- ๋กค๋ฐฑ ๊ณํ์ ์ธ์๋๋ค. ์ด์ ์์ ์ํ๋ก ๋๋๋ฆฌ๋ ๋ฐฉ๋ฒ์ ํญ์ ์์๋์ญ์์ค.
ํ๋ก ํธ์๋ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ๋ฅผ ์ํ ๋๊ตฌ
ํ๋ก ํธ์๋ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ๋ฐ ๋์์ด ๋๋ ๋ค์ํ ๋๊ตฌ๊ฐ ์์ต๋๋ค.
- Git ํด๋ผ์ด์ธํธ:
- Git CLI: Git์ฉ ๋ช ๋ น์ค ์ธํฐํ์ด์ค์ ๋๋ค.
- GitHub Desktop: GitHub์ ๊ทธ๋ํฝ Git ํด๋ผ์ด์ธํธ์ ๋๋ค.
- GitKraken: ์๊ฐ์ ์ธํฐํ์ด์ค๊ฐ ์๋ ํ๋ซํผ ๊ฐ Git ํด๋ผ์ด์ธํธ์ ๋๋ค.
- Sourcetree: Atlassian์์ ์ ๊ณตํ๋ ๋ฌด๋ฃ Git ํด๋ผ์ด์ธํธ์ ๋๋ค.
- Git ํธ์คํ
ํ๋ซํผ:
- GitHub: Git ์ ์ฅ์๋ฅผ ํธ์คํ ํ๊ณ ์ํํธ์จ์ด ํ๋ก์ ํธ์์ ํ์ ํ๊ธฐ ์ํ ์ธ๊ธฐ ์๋ ํ๋ซํผ์ ๋๋ค.
- GitLab: ์ฝ๋ ๊ด๋ฆฌ, CI/CD ๋ฐ ๋ฌธ์ ์ถ์ ์ ํฌํจํ ์ ์ฒด ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ํ ํฌ๊ด์ ์ธ ํ๋ซํผ์ ๋๋ค.
- Bitbucket: Jira ๋ฐ ๊ธฐํ Atlassian ๋๊ตฌ์ ํตํฉ๋ Atlassian์ Git ์ ์ฅ์ ๊ด๋ฆฌ ์๋ฃจ์ ์ ๋๋ค.
- CI/CD ๋๊ตฌ:
- Jenkins: CI/CD์ ์ฌ์ฉํ ์ ์๋ ์คํ ์์ค ์๋ํ ์๋ฒ์ ๋๋ค.
- GitLab CI: GitLab์ ๊ธฐ๋ณธ ์ ๊ณต CI/CD ํ์ดํ๋ผ์ธ์ ๋๋ค.
- CircleCI: ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ CI/CD ํ๋ซํผ์ ๋๋ค.
- Travis CI: GitHub์ ํตํฉ๋๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ CI/CD ํ๋ซํผ์ ๋๋ค.
- Azure DevOps: CI/CD์ฉ Azure Pipelines๋ฅผ ํฌํจํ์ฌ Microsoft์ ๊ฐ๋ฐ ๋๊ตฌ ๋ชจ์์ ๋๋ค.
- ๊ธฐ๋ฅ ํ๋๊ทธ ๊ด๋ฆฌ ๋๊ตฌ:
- LaunchDarkly: ๊ธฐ๋ฅ ๋ฆด๋ฆฌ์ค๋ฅผ ์ ์ดํ๊ณ A/B ํ ์คํธ๋ฅผ ์ํํ ์ ์๋ ๊ธฐ๋ฅ ํ๋๊ทธ ๊ด๋ฆฌ ํ๋ซํผ์ ๋๋ค.
- Split: ๊ณ ๊ธ ํ๊ฒํ ๋ฐ ์คํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ ํ๋๊ทธ ๊ด๋ฆฌ ํ๋ซํผ์ ๋๋ค.
- Flagsmith: ์คํ ์์ค ๊ธฐ๋ฅ ํ๋๊ทธ ๊ด๋ฆฌ ํ๋ซํผ์ ๋๋ค.
- ์ฝ๋ ๊ฒํ ๋๊ตฌ:
- GitHub ํ ์์ฒญ: GitHub์ ๊ธฐ๋ณธ ์ ๊ณต ์ฝ๋ ๊ฒํ ๊ธฐ๋ฅ์ ๋๋ค.
- GitLab ๋ณํฉ ์์ฒญ: GitLab์ ๊ธฐ๋ณธ ์ ๊ณต ์ฝ๋ ๊ฒํ ๊ธฐ๋ฅ์ ๋๋ค.
- Bitbucket ํ ์์ฒญ: Bitbucket์ ๊ธฐ๋ณธ ์ ๊ณต ์ฝ๋ ๊ฒํ ๊ธฐ๋ฅ์ ๋๋ค.
- Phabricator: Differential์ด๋ผ๋ ์ฝ๋ ๊ฒํ ๋๊ตฌ๋ฅผ ํฌํจํ์ฌ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ํ ์คํ ์์ค ๋๊ตฌ ๋ชจ์์ ๋๋ค.
๊ฒฐ๋ก
ํจ๊ณผ์ ์ธ ํ๋ก ํธ์๋ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ๋ ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ณ ์ ์งํ๋ ๋ฐ ํ์์ ์ ๋๋ค. Git ์ํฌํ๋ก์ฐ๋ฅผ ์ดํดํ๊ณ , ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ ์ ๋ต์ ์ฑํํ๊ณ , ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด, ํ์ ์ ๊ฐ์ ํ๊ณ , ์ํ์ ์ค์ด๋ฉฐ, ๊ณ ํ์ง ์ํํธ์จ์ด๋ฅผ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ ๊ณตํ ์ ์์ต๋๋ค. ํ ๊ท๋ชจ์ ์๊ตฌ ์ฌํญ์ ๋ง๋ ์ํฌํ๋ก์ฐ๋ฅผ ์ ํํ๊ณ ์ฑ์ฅํ๊ณ ๋ฐฐ์ฐ๋ฉด์ ์ด๋ฅผ ์กฐ์ ํ๋ ๊ฒ์ ์ฃผ์ ํ์ง ๋ง์ญ์์ค. ๋์์๋ ๊ฐ์ ์ ๋์์์ด ์งํํ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ธ๊ณ์์ ์ฑ๊ณต์ ์ด์ ์ ๋๋ค.