์ ์ฒด์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ ์ํ๊ธฐ
๊ฐ๋ฐ ๋ฌธํ๊ฐ ์ ๋ฆฝ๋ ์กฐ์ง์ด๋ผ๋ฉด ๋๊ตฌ๋ ์์ฐ์ค๋ฝ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ ์ฅ์์ ๋ฐ์ํ๋ ์ผ๋ จ์ ๊ณผ์ ์ ๊ฒช๊ฒ ๋๋ค. ์ด๋ ๊ฐ๋ฐ ์กฐ์ง์ด๋ ๋น์ทํ๊ฒ, ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ ์๋ฃ๋๋ฉด ์์ค๋ Git Repository์ ํธ์๋๋ฉฐ, ์ดํ ๋ณํฉ ๋ฐ ๋ฐฐํฌ ๋ฑ์ ๋จ๊ณ๋ก ์ด์ด์ง๋ค.
๋ธ๋์น ์ ๋ต์ด๋ Git Flow, trunk based ๊ฐ๋ฐ ๋ฑ ์ด๋ฏธ ์ ์ฐฉ๋ ๋ฐฉ์์ด ์๋ค๋ฉด, ํด๋น ๋ฃฐ์ ๊ฐ๋ฐ ๋ฌธํ ๋ฌธ์ ๋ด์ ํจ๊ป ๋ช ์๋๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค. ์ด์ฒ๋ผ ๊ท์น์ด ๋ฌธ์ํ๋๋ฉด ์ ๊ท ์ ์ฌ์๋ ์ธ๋ถ ํ๋ ฅ ์ธ๋ ฅ์ด ๋ค์ด์์ ๋๋ ๋น ๋ฅด๊ฒ ์ ์ํ ์ ์์ผ๋ฉฐ, ๋ง๋ก ์ค๋ช ํ์ง ์์๋ ๊ณต์ ๋ ๊ธฐ์ค์ ํตํด ์ผ๊ด์ฑ ์๊ฒ ์ ๋ฌด๋ฅผ ์ํํ ์ ์๋ค.
์ด๋ฌํ ์ ๋ต์ ๊ตฌ์ฑ์๋ค๊ณผ์ ํฉ์ ์๋ ์ ํด์ ธ์ผ ๊ฐ์ฅ ์ด์์ ์ด๋ค. ๊ทธ๋์ผ๋ง ๋ชจ๋๊ฐ ์๋ฐ์ ์ผ๋ก ๋ฌธํ๋ฅผ ๋ฐ๋ฅด๊ณ ์กฐ์ง ์ ์ฒด์ ์์ฐ์ฑ์ ๋์ผ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ฉด, ํ์ ๋ณด๋ค ๋ ๋จ์ ์ธ ๋ฐฉ์์ ์ต์ํ ๊ตฌ์ฑ์์ด ์๋ค๋ฉด ์ด๋ ‘์กฐ์ง์ ์ฉ์ ์ฌ๊ณผ’๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์, ์ฃผ๊ธฐ์ ์ธ ๊ด์ฐฐ๊ณผ ํผ๋๋ฐฑ์ด ํ์ํ๋ค๊ณ ๋ณธ๋ค.
์ผ๋ฐ์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํ๋ฆ
๋๋ถ๋ถ์ ์กฐ์ง์ ๋ค์๊ณผ ๊ฐ์ ์์๋ฅผ ํตํด ๊ฐ๋ฐ์ ์งํํ๋ค. ๋จ, ์๋น์ค์ ์ฑ๊ฒฉ๊ณผ ์กฐ์ง ๊ท๋ชจ์ ๋ฐ๋ผ ์ด ํ๋ก์ธ์ค๋ ์ ์ฐํ๊ฒ ์กฐ์ ๋์ด์ผ ํ๋ฉฐ, ์ค๊ฐ์ ์คํ ๋ณ๊ฒฝ์ด๋ ์ผ์ ์กฐ์ ์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ณ์์ ๋๋นํ ๊ฐ๋ฐ ๋ฒํผ๋ฅผ ํ๋ณดํด ๋๋ ๊ฒ์ด ์ค์ํ๋ค.
1. ๊ธฐํ ๋ฐ ์ด์ ๋ฑ๋ก
-
๊ฐ๋ฐ์๋ ์ง์ ๋๋ ๊ธฐํ์์ ํ์ ํ์ฌ Jira ํ์ด์ง์ ๊ธฐ๋ฅ(FEATURE), ๋ฒ๊ทธ, ๊ฐ์ ์ ๋ฑ์ ๋ฑ๋กํ๋ค.
-
์ด์๋ ํผ์ฒ ๋จ์๋ก ๋ฑ๋ก๋๋ฉฐ, ๋ด๋น ๊ฐ๋ฐ์์๊ฒ ํ ๋น๋์ด ์์ ์ด ์์๋๋ค.
-
์กฐ์ง์ด ํฌ๊ณ ๋ถ์๊ฐ ๋๋์ด ์๋ค๋ฉด Jira ํด๋ก ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ถ์ ๊ฐ ์คํ์ ์ฐ๊ฒฐํ๊ณ ์ฐธ๊ณ ๋ฌธ์๋ฅผ ๋งํฌํ๋ ๋ฐฉ์์ด ํจ์จ์ ์ด๋ค.
2. ๊ฐ๋ฐ ์งํ
-
๊ฐ๋ฐ์๋ ๊ฐ๋ ์ฑ ์ข์ ์ฝ๋, ํ์ง ๋์ ๊ตฌ์กฐ๋ฅผ ์งํฅํ๋ฉฐ ๊ฐ๋ฐ์ ์งํํ๋ค.
-
ํ ์คํธ ๊ฐ๋ฅํ ๋จ์๋ก ๋ถ๋ฆฌํ๊ณ , ๋์ค์ ๋ฆฌ๋ทฐ์ ํ ์คํธ๊ฐ ์ฉ์ดํ๋๋ก ๊ตฌ์กฐํํ๋ค.
3. ์ฝ๋ ๋ฆฌ๋ทฐ
-
GitLab์ MR(Merge Request) ํน์ GitHub์ PR(Pull Request)์ ํตํด ์์ ๋ด์ฉ์ ๊ณต์ ํ๋ค.
-
์ํฅ๋, ํ ์คํธ ๊ธฐ๊ธฐ, ์์ ๋ด์ญ ๋ฑ์ ์์ธํ ๊ธฐ์ ํ๋ฉฐ, ์ด๋ฅผ ์ํด .github ํด๋ ๋ด ํ ํ๋ฆฟ์ ํ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
-
๋ฆฌ๋ทฐ์ด๋ 3์ธ ์ด์ ์ง์ ํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ๊ด๋ จ์๋ ํ๊ทธํ๋ค.
-
๋ฆฌ๋ทฐ ์ค ์ด์๊ฐ ๋ฐ๊ฒฌ๋๋ฉด ์์ ํ ๋ค์ ํธ์ํ์ฌ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๋ณตํ๋ค.
4. Push ๋ฐ Merge
-
์ฝ๋๋ฅผ ํธ์ํ๋ฉด GitLab CI/CD๋ ๊ธฐํ ์๋ํ ์์คํ ์ด ๋์ํ์ฌ ์ฝ๋ ์ ์ ๋ถ์ ๋ฐ ํ ์คํธ๋ฅผ ์ํํ๋ค.
-
ํ์ง ๊ธฐ์ค์ ์๋ฐฐ๋ ๊ฒฝ์ฐ ๋ณํฉ์ Fail๋๋ฉฐ, ๊ฐ๋ฐ์๊ฐ ์์ ์ ๊ฑฐ์ณ ๋ค์ ํธ์ํด์ผ ํ๋ค.
-
๋ฆฌ๋ทฐ์ด๊ฐ Approveํ๋ฉด ๊ธฐ๋ฅ์ด Git Repository์ ๋จธ์ง๋๋ค.
์ด ๋จ๊ณ์์ ์ฌ์ฉํ๋ ์ ์ ๋ถ์ ๋๊ตฌ๋ก๋ SonarQube๋ฅผ ์๋ก ๋ค ์ ์๋ค. ๊ผญ ํ์๋ ์๋์ง๋ง, ์ฝ๋ ์ผ๊ด์ฑ๊ณผ ์ ๋์ ํ์ง์ ๋ณด์ฌ์ค ์ ์๋ ์ ์๋ฏธํ ์งํ๋ก ๊ธฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋์ ์ ๊ณ ๋ คํ ์ ์๋ค.
์ด์ ํ ๋ก ๋ฐ ์ํฅ๋ ์กฐ์จ
๊ธฐ๋ฅ ํ๋๋ผ๋ ์ํฅ๋๊ฐ ํฌ๊ฑฐ๋ ์คํ ๋ณ๊ฒฝ์ด ์์๋๋ค๋ฉด ์ด๊ธฐ ํ ๋ก ๋ฐ ์ผ์ ์กฐ์จ์ด ๋ฐ๋์ ํ์ํ๋ค. ํ๋กํ ํ์ ๋จ๊ณ์์๋ ๋จ์ํด ๋ณด์๋ ๊ธฐ๋ฅ์ด ์ค์ ๊ตฌํ ์ ๋ง์ ์ฝ๋ ์์ ์ด ํ์ํ ๊ฒฝ์ฐ๋ ๋ง๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฐ ์ํฉ์์ ๊ฐ๋ฐ์๊ฐ ํ๋จํ ์ํฅ๋์ ๋ฐ๋ผ ๋ ๋จ์ ์ผ๋ก ์์ ์ ์งํํ๋ ๊ฒ์ ์ํํ๋ค. ์ผ์ ์ง์ฐ์ ๋ฌผ๋ก , ์ฝ๋ ํ์ง๊ณผ ์ ์ง ๋ณด์์ฑ ๋ชจ๋์ ์ ์ํฅ์ ๋ฏธ์น ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ด ๋๋ ๊ธฐํ์, ๋ฆฌ๋, ๊ฐ๋ฐ์ ๋ฑ์ด ๋น ๋ฅด๊ฒ ๋ ผ์ ํ ์ด๋ธ์ ๋ชจ์ฌ ํ ๋ก ์ ํตํด ๋ฐฉํฅ์ ์ ๋ฆฌํด์ผ ํ๋ค. ์ด๋ฅผ ํตํด ๋ถํ์ค์ฑ์ ์ค์ด๊ณ , ๊ตฌ์ฑ์ ๊ฐ ์ ๋ขฐ์ ํ์ ๋ฌธํ๋ฅผ ๋์์ ๋์ผ ์ ์๋ค.
๋ฐ๋ผ์, ๊ฐ๋ฐ ์ผ์ ์ฐ์ ์ ์ด์ ์ ๋ฆฌ ๋ฐ ํ์ ์๊ฐ์ ํฌํจํ ๋ฒํผ ํ๋ณด๊ฐ ์ข์ ์ต๊ด์ด๋ฉฐ, ์กฐ์ง์ ์์ฐ์ฑ์ ๋์ด๋ ์ง๋ฆ๊ธธ์ด ๋๋ค.
๋ง์น๋ฉฐ
๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ ์ํ๊ณ ๋ฌธ์ํํ๋ ์ผ์ ๊ฐ๋ฐ ๋ฌธํ๋ฅผ ์ ๋ฆฝํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋จ๊ณ๋ค. ๋ชจ๋๊ฐ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ผํ๊ณ ์๋ค๋ ๋ฏฟ์์ ํ ์ ์ฒด์ ์ ๋ขฐ๋ฅผ ๋์ด๊ณ , ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ ๋์ ์ฑ๊ณผ๋ฅผ ๋ง๋๋ ๊ธฐ๋ฐ์ด ๋๋ค.
์กฐ์ง๋ง๋ค ๋ค๋ฅธ ๊ฐ๋ฐ ๋ฐฉ์๊ณผ ํด ์ฒด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์ ์ ์์ง๋ง, ๊ทธ ์์์๋ ๊ณตํต๋ ๋ฌธํ์ ๊ธฐ์ค์ ์ธ์ฐ๋ ๋ ธ๋ ฅ์ด ๋ฐ๋์ ํ์ํ๋ค.
๋ค์ ํธ ์๊ณ
๊ฐ๋ฐ ๋ฌธํ ์ ๋ฆฝ ์๋ฆฌ์ฆ - 3ํ : ๊ฐ๋ฐ ์ ๋ฌด์ ๊ด๋ จ๋ ๋ฌธํ ์ ๋ฆฝํ๊ธฐ
์ผ์ ๊ณผ ๊ธฐ๋ฅ๋ง ์ ๊ด๋ฆฌํ๋ค๊ณ ํ์ด ์ ๊ตด๋ฌ๊ฐ๋ ๊ฒ์ ์๋๋ค.
์ฌ๋, Jira, Notion, ํ์ ์ด์ ๋ฐฉ์ ๋ฑ ๊ฐ๋ฐ ์ ๋ฌด๋ฅผ ๋๋ฌ์ผ ๋ฌธํ๋ ํ์ ์๋์ ํ์ง์ ๊ฒฐ์ ์ง๋ ์ค์ํ ์์๋ค.
๋ค์ ํธ์์๋ ์ผ์์ ์ธ ๊ฐ๋ฐ ํ์ ํ๊ฒฝ์์์ ์ปค๋ฎค๋์ผ์ด์ ๊ณผ ์ ๋ฌด ๋๊ตฌ ํ์ฉ ๋ฌธํ๋ฅผ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค.
๋๊ธ ์ฐ๊ธฐ