์คํ์์ค ํ์ ํด์ ์ค์์ฑ๊ณผ ์์ํ๊ธฐ
ํ๋์ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ ๋ก ๋ณต์กํด์ง๊ณ ์์ผ๋ฉฐ, ๊ฐ๋ฐ์ ๊ฐ์ ํ์ ์ด ๊ทธ ์ด๋ ๋๋ณด๋ค ์ค์ํด์ง๊ณ ์์ต๋๋ค. ์คํ์์ค ํ์ ํด์ ์ด๋ฌํ ๊ณผ์ ์์ ํต์ฌ์ ์ธ ์ญํ ์ ํ๋ฉฐ, ๋๊ท๋ชจ ํ๋ก์ ํธ๋ถํฐ ์๊ท๋ชจ ํ๊น์ง ๋ค์ํ ๊ฐ๋ฐ ์ํฉ์์ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์ด๋ณด์๋ถํฐ ์ ๋ฌธ๊ฐ๊น์ง ๋จ๊ณ๋ณ๋ก ์คํ์์ค ํ์ ํด์ ์๋ฒฝํ๊ฒ ๊ฐ์ด๋ํ๊ฒ ์ต๋๋ค. ๋ณธ ๊ฐ์ด๋๋ ํ๋ก๊ทธ๋จ์ ๊ธฐ์ด๋ฅผ ๋ค์ง๊ณ , ํจ๊ณผ์ ์ธ ํ์ฉ ๋ฐฉ๋ฒ๊ณผ ์ค์ ์ฌ๋ก๋ฅผ ํตํด ๋ ์ ์ฌ๋ฌ๋ถ์ด ์ด ๋๊ตฌ๋ค์ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ๋๊ณ ์ ํฉ๋๋ค.
์คํ์์ค ํ์ ํด์ ๊ฐ๋ ๊ณผ ํ์์ฑ
์คํ์์ค ํ์ ํด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ค ์ฝ๋๊ฐ ๊ณต๊ฐ๋์ด ์์ด ์ฌ์ฉ์ ๋๊ตฌ๋ ์ด๋ฅผ ์์ ํ๊ณ ๋ฐฐํฌํ ์ ์๋ ์ํํธ์จ์ด์ ๋๋ค. ์ด๋ ๋จ์ํ ์ฝ๋ ๊ณต์ ๋ฅผ ๋์ด์, ๊ฐ๋ฐ์ ๊ฐ์ ์ํํ ์์ฌ์ํต์ ์ด์งํ๊ณ , ํ๋ก์ ํธ ๊ด๋ฆฌ์ ํจ์จ์ฑ์ ๋์ ๋๋ค. ์๋ฅผ ๋ค์ด, GitHub์ GitLab ๊ฐ์ ํ๋ซํผ์ ์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฝ๊ฒ ํ๊ณ , ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์์ ์์ ํ๋ ๋ฐ ํ์ํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ค ํด์ ํ์ ์ ์ฅ๋ฒฝ์ ์ค์ด๋ฉฐ, ์ ์ธ๊ณ์ ๊ฐ๋ฐ์๋ค๊ณผ ํจ๊ป ํ๋ก์ ํธ๋ฅผ ์งํํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์คํ์์ค ํด์ ์ฌ์ฉํ๋ ๊ฒ์ ๋จ์ํ ๋น์ฉ์ ์ ๊ฐํ๋ ๊ฒ์ ๋์ด์, ๊ธฐ์ ์ ์ ์ฐ์ฑ์ ํ๋ณดํ๋ ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ ๊ทธ ๊ธฐ๋ฅ์ ์ง์ ์์ ํ๊ฑฐ๋ ์ถ๊ฐํ ์ ์๋ ์์ ๊ฐ ์ฃผ์ด์ง๋๋ค. ์ด๋ฌํ ์ ์ ํนํ ์คํํธ์ ์ด๋ ๊ธฐ์ ํ์ ์ ์ถ๊ตฌํ๋ ํ์ ๋งค์ฐ ์ ๋ฆฌํฉ๋๋ค.
์์์ง๋ ์คํ์์ค ํด ์ค์์ ์ด๋ค ํด์ ์ ํํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด, ์ฌ๋ฌ๋ถ์ ํ์ ๊ท๋ชจ์ ํ๋ก์ ํธ์ ์ฑ๊ฒฉ์ ๋จผ์ ํ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋๊ท๋ชจ ํ๋ก์ ํธ๋ผ๋ฉด GitHub์ ๊ฐ์ ํ๋ซํผ์, ์์ ํ์ด๋ ๊ฐ์ธ ํ๋ก์ ํธ๋ผ๋ฉด Bitbucket ๊ฐ์ ๋์๋ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ๊ฐ ํ๋ซํผ์ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๋ค ํด์ด ๊ฐ์ฅ ์ ํฉํ์ง ์ดํดํด์ผ ํจ์จ์ ์ธ ํ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ด์ฒ๋ผ, ์คํ์์ค ํ์ ํด์ ์ ํ์ ๊ฐ๋ฐ์๋ค์ด๋ ํ์ ์์ ๋ฐฉ์์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ฌ๋ฌ๋ถ์ด ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ด๋ณด์๋ผ๋ฉด ์ด๋ฌํ ํด์ ํ์์ฑ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ฉฐ, ์ ๋ฌธ๊ฐ๊ฐ ๋๊ธฐ ์ํ ์ฒซ๊ฑธ์์ด ๋ ๊ฒ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ธ ํ์ ํด ์๊ฐ
Git: ๋ฒ์ ๊ด๋ฆฌ์ ๊ธฐ์ด
Git์ ๋ถ์ฐํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ผ๋ก, ํ์ฌ ์ต๊ณ ์ ํ์ ํด ์ค ํ๋๋ก ํ๊ฐ๋ฐ๊ณ ์์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ฝ๊ฒ ์ถ์ ํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ฉฐ, ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์์ ํ๋ก์ ํธ์ ์ฐธ์ฌํ ์ ์๊ฒ ํฉ๋๋ค. Git์ ์ฌ์ฉํ๋ฉด ์ฝ๋์ ์ด๋ ฅ์ ์ ์ฅํ๊ณ , ์ด์ ์ํ๋ก ๋๋๋ฆด ์ ์๋ ๊ธฐ๋ฅ์ด ์์ด ์ค์๋ก ์ธํ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ํ ํ๋ก์ ํธ์์ ํ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์์ ํ๊ณ , ์ด ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. Git์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ์ด์ ์ปค๋ฐ์ผ๋ก ๋์๊ฐ ์ ์์ด, ์ฌ๊ณ ๋ฅผ ์ ์ํ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํน์ง ๋๋ถ์ Git์ ๋ง์ ๊ฐ๋ฐ ํ์์ ํ์์ ์ธ ๋๊ตฌ๋ก ์๋ฆฌ ์ก์์ต๋๋ค.
GitHub: ์ฌํ์ ํ์ ์ ํ๋ธ
GitHub๋ Git์ ๊ธฐ๋ฐ์ผ๋ก ํ ์น ์๋น์ค๋ก, ๊ฐ๋ฐ์๋ค์ด ์ฝ๋๋ฅผ ํธ์คํ ํ๊ณ ํ์ ํ๋ ๋ฐ ์ต์ ํ๋ ํ๋ซํผ์ ๋๋ค. ์คํ์์ค ํ๋ก์ ํธ๋ฅผ ์ํ ์ ์ฅ์๋ก๋ ๋งค์ฐ ์ธ๊ธฐ ์์ผ๋ฉฐ, ์ฌ์ฉ์๋ค์ ์์ ์ ํ๋ก์ ํธ๋ฅผ ๊ณต๊ฐํ๊ฑฐ๋ ๋น๊ณต์์ ์ธ ์ ์ฅ์๋ฅผ ๋ง๋ค๊ธฐ ์ํด GitHub๋ฅผ ์ด์ฉํฉ๋๋ค. GitHub์ ๋ฌธ์ ์ถ์ ์์คํ ๊ณผ Pull Request ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์ ๊ฐ์ ์ํต์ ์ํํ๊ฒ ๋ง๋ค์ด ์ฃผ๋ฉฐ, ํ๋ก์ ํธ ๊ด๋ฆฌ์ ํจ์จ์ฑ์ ๋์ ๋๋ค.
ํํธ, GitHub๋ ์ฌํ์ ๋คํธ์ํน ์์๋ฅผ ์ถ์งํ์ฌ ์คํ์์ค ํ๋ก์ ํธ์ ์ฐธ์ฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด ์ค๋๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์์์ ์ธ๋งฅ์ ํ์ฑํ๊ณ , ์์ ์ ์์ ์ ์ ์ธ๊ณ์ ํ๋ณดํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์ ์ ์ฝ๋ ๊ณต๊ฐ ์ธ์๋ ๋ง์ ํํ์ ์ ๊ณตํฉ๋๋ค.
GitLab๊ณผ Bitbucket: ๋์ ์ ํ์ง
GitLab๊ณผ Bitbucket์ ๊ฐ๊ฐ Git์ ๋์์ผ๋ก ์ฌ์ฉ๋๋ ํด๋ค๋ก, ํน์ ์ํฉ์ ์ ํฉํฉ๋๋ค. GitLab์ CI/CD(์ง์์ ํตํฉ ๋ฐ ์ง์์ ๋ฐฐํฌ) ๊ธฐ๋ฅ์ด ๋ฐ์ด๋๊ณ , DevOps ํ๊ฒฝ์ ์ง์ํ์ฌ ๋ ๋์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ, ๊ฐ์ธ ์๋ฒ์ ์ค์นํ ์ ์์ด ๋ณด์์ด ์ค์ํ ํ๋ก์ ํธ์ ์ ํฉํฉ๋๋ค.
๋ฐ๋ฉด, Bitbucket์ Atlassian์ ์ ํ์ผ๋ก, JIRA์ ํจ๊ป ์ฌ์ฉ ์ ๋ฐ์ด๋ ํ๋ก์ ํธ ๊ด๋ฆฌ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ํ์ด ์ด๋ฏธ Atlassian์ ๋ค๋ฅธ ์ ํ์ ์ฌ์ฉ ์ค์ด๋ผ๋ฉด Bitbucket์ ์ ํํ๋ ๊ฒ์ด ์์ฐ์ค๋ฌ์ด ๊ฒฐ์ ์ผ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ ํด์ ์ฅ๋จ์ ์ ์๊ณ , ์ ์ ํ ํ๊ฒฝ์ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
ํ์ ํด ํ์ฉ์ ์ํ ๊ธฐ๋ณธ ๊ท์น
์ด์ ์คํ์์ค ํ์ ํด์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ดํดํ์ผ๋, ํจ๊ณผ์ ์ผ๋ก ์ด๋ค์ ํ์ฉํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ๊ท์น์ ์์๋ณด๊ฒ ์ต๋๋ค.
- ๋ช ํํ ์ปค๋ฐ ๋ฉ์์ง ์์ฑํ๊ธฐ: ํ์๋ค์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ๊ฐ ์ปค๋ฐ์ ๋ํด ๋ช ํํ ๋ฉ์์ง๋ฅผ ์์ฑํ์ธ์.
- ์ ๊ธฐ์ ์ธ ์ฝ๋ ๋ฆฌ๋ทฐ: ์๋ก์ ์ฝ๋๋ฅผ ๊ฒํ ํ๋ ๊ณผ์ ์ ๋ฒ๊ทธ๋ฅผ ์ฌ์ ์ ์๋ฐฉํ๊ณ , ํ์ ๊ฐ์ ์ดํด๋๋ฅผ ๋์ ๋๋ค.
- ๋ฌธ์ํ: ํ๋ก์ ํธ์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฌธ์ํํ์ฌ ๋์ค์ ์ฐธ์กฐํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ ํ๋ก์ ํธ์ ์ ์ง ๋ณด์์ฑ์ ๋์ ๋๋ค.
- ์์ ๋จ์๋ก ์์ ํ๊ธฐ: ํฐ ๊ธฐ๋ฅ ์ถ๊ฐ๋ ์์ ๋จ์๋ก ๋๋์ด ์์ ํ๋ฉฐ, ํ์ ํตํฉํ์ฌ ์์ ์ฑ์ ํ๋ณดํฉ๋๋ค.
- ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD): ํ ์คํธ๋ฅผ ๋จผ์ ์์ฑํ๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ TDD ๋ฐฉ๋ฒ์ ํตํด ๋ ๋์ ํ์ง์ ์ฝ๋๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.
์ด์ฒ๋ผ ๊ธฐ๋ณธ์ ์ธ ๊ท์น์ ํจ์จ์ ์ธ ํ์ ํ๊ฒฝ์ ์กฐ์ฑํ๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค. ํ์ ์ํฌํ๋ก์ฐ๋ฅผ ์ดํดํ๊ณ , ๊ฐ์์ ์ญํ ์ ๋ช ํํ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๊ฒฐ๋ก ๋ฐ ๋ค์ ๋จ๊ณ
์คํ์์ค ํ์ ํด์ ์ค์์ฑ์ ์์ผ๋ก๋ ๊ณ์ ๊ฐ์กฐ๋ ๊ฒ์ด๋ฉฐ, ์ด๋ฅผ ํ์ฉํ๋ ๋ฅ๋ ฅ์ ๊ฐ๋ฐ์์ ๊ฒฝ๋ ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ๊ฒ์ ๋๋ค. ์์์ ์ค๋ช ํ ํด๊ณผ ๊ธฐ๋ณธ ๊ท์น๋ค์ ๋ฐํ์ผ๋ก ํ์ ์์ ๋ฐฉ์์ ๊ฐ์ ํ๊ณ , ํจ์จ์ ์ผ๋ก ํ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํฉ๋๋ค. ๊ธฐ์ด๋ฅผ ๋ค์ง ํ์๋ ์ด๋ฌํ ํด์ ํ์ฉํ์ฌ ์ค์ ํ๋ก์ ํธ์์ ๊ฒฝํ์ ์์๋ณด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์์ผ๋ก์ ์ฌ์ ์ ์ํด ์ปค๋ฎค๋ํฐ์ ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํ๊ณ , ๋ค์ํ ์คํ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด ๋ ๊ฒ์ ๋๋ค. ๋ง์ ์ฌ๋๋ค๊ณผ ํ๋ ฅํ๋ฉด์ ๊ทธ๋์ผ๋ง ๋ ๋ง์ ๊ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ฌ์ ์ ํ์ด์ด ํจ๊ปํ๊ธธ ๋ฐ๋๋๋ค!
์์ ๊ฐ์ด๋๋ฅผ ํตํด ๋ฐฐ์ด ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ฌ๋ฌ๋ถ๋ ์์ ๋ง์ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ , ์คํ์์ค ํ์ ํด์ ํตํด ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ๋์ด๋ณด์ธ์. ํจ๊ป ๋ฐฐ์๋๊ฐ๋ ์ฌํ์ ํ์ ์ ๋งค๋ ฅ์ ๋๊ปด๋ณด์ธ์!
๋ฉํ ์ค๋ช : ์ด๋ณด๋ถํฐ ์ ๋ฌธ๊ฐ๊น์ง ์คํ์์ค ํ์ ํด์ ์ค์์ฑ๊ณผ ํจ๊ณผ์ ์ธ ํ์ฉ ๋ฐฉ๋ฒ, ๋ค์ํ ํด์ ๋ํ ์ฌ์ธต ๊ฐ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํด์ํ๊ทธ
์คํ์์ค, Git, GitHub, GitLab, Bitbucket, ํ์ ํด, ์ํํธ์จ์ด๊ฐ๋ฐ, ๊ฐ๋ฐ์, TDD, ์ฝ๋๋ฆฌ๋ทฐ