๋ฆด๋ฆฌ์ค 13.4๋ CI ๋ณ์, Kubernetes ์์ด์ ํธ ๋ฐ ๋ณด์ ์ผํฐ๋ฅผ ์ํ HashiCorp ์คํ ๋ฆฌ์ง๋ ๋ฌผ๋ก Starter์ ์ ํ ๊ฐ๋ฅํ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์ถ์๋์์ต๋๋ค.
GitLab์์๋ ์ฌ์ฉ์๊ฐ ์ ํธํ๋ ํ๋ซํผ์์ ์ํ์ ์ค์ด๊ณ ํจ์จ์ฑ์ ํฅ์ํ๋ฉฐ ์ ์ก ์๋๋ฅผ ํฅ์์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ํญ์ ์๊ฐํ๊ณ ์์ต๋๋ค. ์ด๋ฒ ๋ฌ์๋ ๋ณด์ ๊ธฐ๋ฅ์ ํ์ฅํ๊ณ , ์ทจ์ฝ์ ์๋ฅผ ์ค์ด๊ณ , ํจ์จ์ฑ์ ๋์ด๊ณ , GitLab ์์ ์ ๋จ์ํํ๊ณ , ํ์ด ๊ธฐ๋ฅ์ ๋์ฑ ๋น ๋ฅด๊ฒ ์ ๊ณตํ๋ ๋ฐ ๋์์ด ๋๋ ์ ์ฉํ ์ ๊ธฐ๋ฅ์ ๋ง์ด ์ถ๊ฐํ์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค์ ์ฃผ์ ๊ธฐ๋ฅ์ด ์ ์ฉํ ๋ฟ๋ง ์๋๋ผ 53๊ฐ์ง ๋ค๋ฅธ ์๋ก์ด ๊ธฐ๋ฅ, ์ด๋ฒ ๋ฆด๋ฆฌ์ค์ ์ถ๊ฐ๋์์ต๋๋ค.
๊ณ ๊ธ ๋ณด์ ๊ธฐ๋ฅ
์ฐ๋ฆฌ๋ ๋งค๋ฌ GitLab DevSecOps์ ๋ช ๊ฐ์ง ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๊ณ ๋
ธ๋ ฅํ๊ณ ์์ผ๋ฉฐ ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ ์์ธ๋ ์๋๋๋ค.
์ํ์ ์ค์ด๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๋ก์ด ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค.
GitLab์ผ๋ก ๋์ฑ ํธ๋ฆฌํ๊ณ ํจ์จ์ ์ผ๋ก ์ ๋ฌด๋ฅผ ์ํํ์ธ์
๋ค์์ ํฌํจํ๋๋ก ๊ธ๋ก๋ฒ ๊ฒ์์ ๊ฐ์ ํ์ต๋๋ค.
์คํ ์์ค ๊ธฐ์ฌ
์ฐ๋ฆฌ๋ ๋ํ
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์์์ ๋ถ๊ณผํฉ๋๋ค!
์ธ์ ๋ ๊ทธ๋ ๋ฏ์ด ์ผ๋ฐ ๊ฐ์์๋ ๊ณต๊ฐ์ด ๋๋ฌด ์ ์ง๋ง 13.4 ๋ฆด๋ฆฌ์ค์๋ ๋ฉ์ง ๊ธฐ๋ฅ์ด ๋ง์ด ์์ต๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ๋ ์์ต๋๋ค:
๊ฐ์ธ ์ก์ธ์ค ํ ํฐ ๋ชฉ๋ก์ ํ์ธํ๊ณ API๋ฅผ ํตํด ์ทจ์ํ์ธ์. ์์ฒด ๊ด๋ฆฌ ์๊ฒฉ ์ฆ๋ช ์ ์ฅ์์ ๋ํ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ ์ทจ์ ์๋ฃ๋ ํ ์ผ์ ๋์์ธ ํ์ด์ง์ ํ์ ์ค์ฒฉ๋ ํ์ดํ๋ผ์ธ(GitLab "์กฐ๋ฆฝ ๋ผ์ธ"์ ๋ฌ์์์ด ํ์งํ)์ ์ด์ ์์ฒด ์ค์ฒฉ ํ์ดํ๋ผ์ธ์ ์คํํ ์ ์์ต๋๋ค. Helm ์ฐจํธ GitLab์ ๋ํ ์ค๋งํธ ์นด๋ ์ธ์ฆ ์ง์ .
๋ฌด์์ด ๋น์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋์ง ๋ฏธ๋ฆฌ ์๊ณ ์ถ๋ค๋ฉด ัะปะตะดัััะตะผ ํ์ด, ์ข ๋ด
MVP ์ด๋ฒ ๋ฌ - ํ๋น์ค ํ์
ํ๋น์ค๊ฐ ํฌ๊ฒ ๊ธฐ์ฌํ์ต๋๋ค.
GitLab 13.4 ๋ฆด๋ฆฌ์ค์ ์ฃผ์ ๊ธฐ๋ฅ
CI ์์ ์ HashiCorp Vault ํค ์ฌ์ฉ
(ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋)
๋ฆด๋ฆฌ์ค 12.10์์ GitLab์ GitLab ์์
ํธ๋ค๋ฌ(GitLab ๋ฌ๋)๋ฅผ ์ฌ์ฉํ์ฌ CI ์์
์ ๋ํ ํค๋ฅผ ์์ ํ๊ณ ์ ์กํ๋ ๊ธฐ๋ฅ์ ๋์
ํ์ต๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ํ์ฅํ๊ณ ์์ต๋๋ค secrets
ํ์ผ๋ก .gitlab-ci.yml
. ์ด๋ ๊ฒ ํ๋ฉด GitLab์์ HashiCorp ์ ์ฅ์๋ฅผ ๋ ์ฝ๊ฒ ์ค์ ํ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.
GitLab Kubernetes ์์ด์ ํธ ์๊ฐ
(ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ)
Kubernetes์ GitLab์ ํตํฉ์ ํตํด ์ค๋ซ๋์ ์๋ ๊ตฌ์ฑ ์์ด Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค. ๋ง์ ์ฌ์ฉ์๊ฐ ์ด ๋ฒ๋ค์ ์ฌ์ฉ ํธ์์ฑ์ ์ข์ํ์ง๋ง ๋ค๋ฅธ ์ฌ์ฉ์๋ ๋ช ๊ฐ์ง ์ด๋ ค์์ ๊ฒช์์ต๋๋ค. ํ์ฌ ํตํฉ์ ๊ฒฝ์ฐ GitLab์ด ํด๋ฌ์คํฐ์ ์ก์ธ์คํ๋ ค๋ฉด ์ธํฐ๋ท์์ ํด๋ฌ์คํฐ์ ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค. ๋ง์ ์กฐ์ง์์๋ ๋ณด์, ๊ท์ ์ค์ ๋๋ ๊ท์ ์์ ์ด์ ๋ก ํด๋ฌ์คํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฌํ ์ ํ ์ฌํญ์ ํด๊ฒฐํ๋ ค๋ฉด ์ฌ์ฉ์๋ GitLab์ ๊ธฐ๋ฐ์ผ๋ก ๋๊ตฌ๋ฅผ ๊ตฌ์ถํด์ผ ํ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ค๋ ์ฐ๋ฆฌ๋ Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ๋ ์๋ก์ด ๋ฐฉ๋ฒ์ธ GitLab Kubernetes Agent๋ฅผ ์๊ฐํฉ๋๋ค. ์์ด์ ํธ๋ ํด๋ฌ์คํฐ ๋ด๋ถ์์ ์คํ๋๋ฏ๋ก ์ ์ฒด ์ธํฐ๋ท์ ๋ ธ์ถํ ํ์๊ฐ ์์ต๋๋ค. ์์ด์ ํธ๋ GitLab์ด ํด๋ฌ์คํฐ์ ์ ๋ฐ์ดํธ๋ฅผ ํธ์ํ๋ ๋์ GitLab์์ ์๋ก์ด ๋ณ๊ฒฝ ์ฌํญ์ ์์ฒญํ์ฌ ๋ฐฐํฌ๋ฅผ ์กฐ์ ํฉ๋๋ค. ์ด๋ค GitOps ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ GitLab์ด ํด๊ฒฐํด ๋๋ฆฝ๋๋ค.
์ด๊ฒ์ด ์์ด์ ํธ์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๋ผ๋ ์ ์ ์ ์ํ์ญ์์ค. GitLab Kubernetes Agent์ ํ์ฌ ์ด์ ์ ์ฝ๋๋ฅผ ํตํด ๋ฐฐํฌ๋ฅผ ๊ตฌ์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์
๋๋ค. ๋ฐฐํฌ ๋ณด๋ ๋ฐ GitLab ๊ด๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๊ฐ์ ์ผ๋ถ ๊ธฐ์กด Kubernetes ํตํฉ ๊ธฐ๋ฅ์ ์์ง ์ง์๋์ง ์์ต๋๋ค.
์ฝ๋ ์ก์ธ์ค ์์ด ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌ ๊ถํ ๋ถ์ฌ
(ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋)
์ด์ ์๋ GitLab์ ๊ถํ ์์คํ ์ผ๋ก ์ธํด ํ ๋ด์์ ๊ฐ๋ฐ ๋ด๋น์์ ๋ฐฐํฌ ๋ด๋น์ ๊ฐ์ ์ฑ ์์ ์ ์ ํ๊ฒ ๋๋๊ธฐ๊ฐ ์ด๋ ค์ ์ต๋๋ค. GitLab 13.4๊ฐ ์ถ์๋๋ฉด์ ๋ฐฐํฌ์ฉ ๋ณํฉ ์์ฒญ์ ์น์ธํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๊ด๋ฆฌ์ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ์ง ์๊ณ ๋ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๋ ์ฌ๋๋ค์๊ฒ ์ค์ ๋ก ์ฝ๋๋ฅผ ๋ฐฐํฌํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค(GitLab "์ ์ง๊ด๋ฆฌ์"์ ๋ฌ์์์ด ํ์งํ) ).
๋ณด์ ์ผํฐ
(๊ถ๊ทน๊ธฐ, ๊ณจ๋)
์ด์ ์๋ ์ธ์คํด์ค ์์ค ์ทจ์ฝ์ฑ ๊ด๋ฆฌ๊ฐ ๊ธฐ๋ฅ๊ณผ ์ ์ฐ์ฑ ๋ชจ๋์์ ์ ํ๋์์ต๋๋ค. ์ธํฐํ์ด์ค๋ ์ทจ์ฝ์ , ์ธก์ ํญ๋ชฉ ๊ทธ๋ํ, ์ค์ ์ ๋ํ ์ธ๋ถ์ ๋ณด๊ฐ ๊ฒฐํฉ๋ ๋จ์ผ ํ์ด์ง์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ฑฐ๋ ๋ค๋ฅธ ๋ณด์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ฌ์ง๊ฐ ๋ง์ง ์์ต๋๋ค.
์ฐ๋ฆฌ๋ GitLab์์ ๋ณด์๊ณผ ํฌ๋ช ์ฑ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๊ทผ๋ณธ์ ์ผ๋ก ๋ณ๊ฒฝํ์ต๋๋ค. ์ธ์คํด์ค ๋ณด์ ํจ๋์ด ์ ์ฒด ๋ณด์ ์ผํฐ๋ก ์ ํ๋์์ต๋๋ค. ๊ฐ์ฅ ํฐ ๋ณํ๋ ์๋ก์ด ๋ฉ๋ด ๊ตฌ์กฐ์ ๋์ ์ ๋๋ค. ์ด์ ํ ํ์ด์ง ๋์ ๋ณด์ ๋์๋ณด๋, ์ทจ์ฝ์ ๋ณด๊ณ ์ ๋ฐ ์ค์ ์น์ ์ด ๋ณ๋๋ก ํ์๋ฉ๋๋ค. ๊ธฐ๋ฅ์ ๋ณ๊ฒฝ๋์ง ์์์ง๋ง ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋๋๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ด๋ ค์ธ ์ ์๋ ์ด ์น์ ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์ด๋ ๋ํ ํฅํ ๋ค๋ฅธ ๋ณด์ ๊ด๋ จ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํ ๊ธฐ๋ฐ์ ๋ง๋ จํฉ๋๋ค.
์ด์ ์ ์ฉ ์ทจ์ฝ์ ๋ณด๊ณ ์ ์น์ ์ ์ค์ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ์ํ ์ ์๋ ๊ณต๊ฐ์ด ๋ ๋ง์์ก์ต๋๋ค. ํ์ฌ ํ๋ก์ ํธ์ ์ทจ์ฝ์ ๋ชฉ๋ก์ ์๋ ์ทจ์ฝ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ทจ์ฝ์ ์งํ๊ฐ ํฌํจ๋ ์์ ฏ์ ๋ณ๋์ ์น์ ์ผ๋ก ์ด๋ํ๋ฉด ํธ๋ฆฌํ ๋ณด์ ์ ์ดํ์ด ์์ฑ๋ฉ๋๋ค. ์ด์ ์ด๋ ์ทจ์ฝ์ฑ ๊ด๋ฆฌ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๋ณด์ ๊ด๋ จ ์งํ์ ๋ํ ํฅํ ์๊ฐํ๋ฅผ ์ํ ์บ๋ฒ์ค์ ๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋ณ๋์ ์ค์ ์์ญ์ ์ทจ์ฝ์ ๊ด๋ฆฌ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ์ธ์คํด์ค ์์ค์ ๋ณด์ ์ค์ ์ ์ํ ๊ณตํต ๊ณต๊ฐ์ ์์ฑํฉ๋๋ค.
์ด์ ์ ํ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ด GitLab Starter์ ์์ต๋๋ค.
(์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
GitLab 11.4๊ฐ ์ถ์๋์์ต๋๋ค.
์ฌํด ์ด GitLab์ ๋ค์๊ณผ ๊ฐ์ ์ฝ์์ ํ์ต๋๋ค.
๊ฒ์์ฐฝ์ ํตํ ๋น ๋ฅธ ํ์
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๋๋ก๋ GitLab์ ํ์ํ ๋ ๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง๊ฐ ์๋ ํน์ ํ๋ก์ ํธ๋ก ๋ฐ๋ก ์ด๋ํ๊ณ ์ถ์ ๋๊ฐ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ๊ฒ์์ฐฝ์ ์ฌ์ฉํ๋ฉด ์ต์ ํฐ์ผ, ๊ทธ๋ฃน, ํ๋ก์ ํธ, ์ค์ ๋ฐ ๋์๋ง ํญ๋ชฉ์ผ๋ก ๋น ๋ฅด๊ฒ ์ด๋ํ ์ ์์ต๋๋ค. ๋จ์ถํค๋ฅผ ์ฌ์ฉํด๋ ๋ฉ๋๋ค /
GitLab์ ๋์ฑ ํจ์จ์ ์ผ๋ก ํ์ํ๋ ค๋ฉด ์ปค์๋ฅผ ๊ฒ์ ์ฐฝ์ผ๋ก ์ด๋ํ์ธ์!
๋ณํฉ ์์ฒญ ์ฐจ์ด์ ์ ์ฝ๋ ์ ์ฉ ๋ฒ์ ํ์
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๋ณํฉ ์์ฒญ์ ๊ฒํ ํ ๋ ๋ณ๊ฒฝ๋ ์ฝ๋๊ฐ ๋จ์ ํ ์คํธ์ ํฌํจ๋๋์ง ํ์ธํ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ๋์ ๊ฒํ ์๋ ๋ณํฉ ์์ฒญ์ ์น์ธํ๊ธฐ ์ ์ ์ ์ฒด ์ ์ฉ ๋ฒ์์ ์์กดํ์ฌ ๋ฒ์๋ฅผ ๋๋ ค๋ฌ๋ผ๊ณ ์์ฒญํ ์ ์์ต๋๋ค. ์ด๋ ํ ์คํธ ์์ฑ์ ๋ํ ๋ฌด๊ณํ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ด์ด์ง ์ ์์ผ๋ฉฐ, ์ด๋ ์ค์ ๋ก ์ฝ๋ ํ์ง์ด๋ ํ ์คํธ ์ ์ฉ ๋ฒ์๋ฅผ ํฅ์์ํค์ง ์์ต๋๋ค.
์ด์ ๋ณํฉ ์์ฒญ ์ฐจ์ด์ ์ ๋ณผ ๋ ์ฝ๋ ์ ์ฉ ๋ฒ์๊ฐ ์๊ฐ์ ์ผ๋ก ํ์๋ฉ๋๋ค. ์๋ก์ด ํ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณ๊ฒฝ๋ ์ฝ๋๊ฐ ๋จ์ ํ ์คํธ์ ํฌํจ๋๋์ง ์ฌ๋ถ๋ฅผ ๋น ๋ฅด๊ฒ ์ดํดํ ์ ์์ผ๋ฏ๋ก ์ฝ๋ ๊ฒํ ์๋๋ฅผ ๋์ด๊ณ ์ ์ฝ๋๋ฅผ ๋ณํฉ ๋ฐ ๋ฐฐํฌํ๋ ์๊ฐ์ ๋จ์ถํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๊ฐ์ฌ
ํ๊ฒฝ ํจ๋์ ๋ ๋ง์ ํ๊ฒฝ ๋ฐ ํ๋ก์ ํธ
(ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋)
GitLab 12.5 ์ถ์ ์ดํ
GitLab์ GitLab Terraform ๊ณต๊ธ์๋ฅผ ์ ์ดํฉ๋๋ค.
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ฐ๋ฆฌ๋ ์ต๊ทผ
OpenAPI ์ฌ์ ๋๋ HAR ํ์ผ์ ์ฌ์ฉํ ํผ์ง API ํ ์คํธ
(๊ถ๊ทน๊ธฐ, ๊ณจ๋)
API ํผ์ง ํ ์คํธ๋ ๋ค๋ฅธ ์ค์บ๋์ ํ ์คํธ ๋ฐฉ๋ฒ์ด ๋์น ์ ์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ API์ ๋ฒ๊ทธ์ ์ทจ์ฝ์ฑ์ ์ฐพ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
GitLab์ API ํผ์ง ํ
์คํธ๋ฅผ ํตํด ๋ค์์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ์ ์ฒซ ๋ฒ์งธ API ํผ์ง ํ
์คํธ ๋ฆด๋ฆฌ์ค์ด๋ฉฐ ์ฌ๋ฌ๋ถ์ ์๊ฐ์ ๋ฃ๊ณ ์ถ์ต๋๋ค. ํผ์ฆ ํ
์คํธ๋ฅผ ์ํ ์ฌ๊ณ ๊ฐ ๋ ๋ง์ด ์์ต๋๋ค.
์ธก์ ํญ๋ชฉ ํจ๋์์ ์ ๊ทธ๋ํ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ด์ ์๋ GitLab์ ์งํ ๋์๋ณด๋์์ ๊ทธ๋ํ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ฌ์ด ์์
์ด ์๋์์ต๋๋ค. ๋์๋ณด๋ YAML ํ์ผ์์ ์งํ๋ฅผ ์์ฑํ ํ ๋ค์์ ๋ณ๊ฒฝํ์ต๋๋ค. master
, ์๋ก ์์ฑ๋ ๊ทธ๋ํ๊ฐ ํ์ํ ๋๋ก ์ ํํ ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ถํฐ ๊ทธ๋ํ๋ฅผ ์์ฑํ๋ฉด์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฏธ๋ฆฌ ๋ณด๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๋์๋ณด๋ YAML ํ์ผ๋ก ๋ณด๋ด๊ธฐ ์ ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ฃน ๋ด ๋ชจ๋ ํ๋ก์ ํธ์ ๋ํ ํ ์คํธ๋ณ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ๋ฐ์ดํฐ
(ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋)
GitLab์์ ๋ง์ ์์ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ํ๋ก์ ํธ์์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฝ๋ ์ ์ฉ ๋ฒ์๊ฐ ์ด๋ป๊ฒ ๋ณํํ๋์ง์ ๋ํ ๋จ์ผ ์ ๋ณด ์์ค๊ฐ ํ์ํฉ๋๋ค. ์ด์ ์๋ ์ด ์ ๋ณด๋ฅผ ํ์ํ๋ ค๋ฉด ์ง๋ฃจํ๊ณ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ ์๋ ์์ ์ด ํ์ํ์ต๋๋ค. ๊ฐ ํ๋ก์ ํธ์์ ์ฝ๋ ์ ์ฉ ๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ํ ์ด๋ธ์ ๊ฒฐํฉํด์ผ ํ์ต๋๋ค.
๋ฆด๋ฆฌ์ค 13.4์์๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์กฐ๋ฆฝ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค. .csv
๊ทธ๋ฃน์ ๋ชจ๋ ํ๋ก์ ํธ ๋๋ ์ ํํ ํ๋ก์ ํธ์ ๋ํ ์ฝ๋ ์ ์ฉ ๋ฒ์์ ๋ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ์ ์ฅํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ MVC์ด๋ฉฐ ๋ค์ ๊ธฐ๋ฅ์ด ๋ค๋ฐ๋ฆ
๋๋ค.
์ ์ฒด ํผ์ง ํ ์คํธ๋ฅผ ์ํ ์๋ก์ด ์ธ์ด ์ง์
(๊ถ๊ทน๊ธฐ, ๊ณจ๋)
์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ์ ์ฒด ๋ฒ์๋ฅผ ๋ชฉํ๋ก ํ๋ ํผ์ง ํ ์คํธ๋ฅผ ์ํ ์ฌ๋ฌ ๊ฐ์ง ์๋ก์ด ์ธ์ด์ ๋ํ ์ง์์ด ๋์ ๋์์ต๋๋ค.
์ด์ Java, Rust ๋ฐ Swift ์ ํ๋ฆฌ์ผ์ด์ ์์ ํผ์ง ํ ์คํธ์ ์ ์ฒด ๊ธฐ๋ฅ์ ํ๊ฐํ๊ณ ๋ค๋ฅธ ์ค์บ๋ ๋ฐ ํ ์คํธ ๋ฐฉ๋ฒ์์ ๋์น ์ ์๋ ์ค๋ฅ์ ์ทจ์ฝ์ ์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ํ๊ฒฝ ํ์ด์ง์ ๊ฒฝ๊ณ
(ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋)
ํ๊ฒฝ ํ์ด์ง์๋ ํ๊ฒฝ์ ์ ๋ฐ์ ์ธ ์ํ๊ฐ ํ์๋ฉ๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ๊ฒฝ๊ณ ํ์๋ฅผ ์ถ๊ฐํ์ฌ ์ด ํ์ด์ง๋ฅผ ๊ฐ์ ํ์ต๋๋ค. ํ๊ฒฝ ์ํ์ ํจ๊ป ํธ๋ฆฌ๊ฑฐ๋ ๊ฒฝ๊ณ ๋ ๋ฐ์ํ๋ ์ํฉ์ ์์ ํ๊ธฐ ์ํด ์ ์ํ๊ฒ ์กฐ์น๋ฅผ ์ทจํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ด์ ์ค์ฒฉ๋ ํ์ดํ๋ผ์ธ์ด ์์ฒด ์ค์ฒฉ ํ์ดํ๋ผ์ธ์ ์คํํ ์ ์์ต๋๋ค.
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ค์ฒฉ๋ ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ๋ฉด ์ด์ ํ์ ํ์ดํ๋ผ์ธ ๋ด์์ ์ ํ์ดํ๋ผ์ธ์ ์คํํ ์ ์์ต๋๋ค. ๊ฐ๋ณ์ ์ธ ์์ ํ์ดํ๋ผ์ธ์ ์์ฑํ๋ ์ ์ฐ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ ์ถ๊ฐ ์์ค์ ๊น์ด๊ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
์ด์ ์๋ ์ค์ฒฉ๋ ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ ๋ ๊ฐ ํ์ ํ์ดํ๋ผ์ธ์์ ์์ ํ์ดํ๋ผ์ธ์ ํธ๋ฆฌ๊ฑฐ ์์ ์ ์๋์ผ๋ก ์ ์ํด์ผ ํ์ต๋๋ค. ์ด์ ์๋ก์ด ์ค์ฒฉ ํ์ดํ๋ผ์ธ์ ์ํ๋ ๋งํผ ๋์ ์ผ๋ก ์คํํ๋ ์ค์ฒฉ ํ์ดํ๋ผ์ธ์ ์์ฑํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋จ์ผ ์ ์ฅ์๊ฐ ์๋ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ํ์ ํ์ดํ๋ผ์ธ์ ๋์ ์ผ๋ก ์์ฑํ ์ ์์ผ๋ฉฐ, ์ด ํ์ ํ์ดํ๋ผ์ธ์ ๋ถ๊ธฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ๋ผ ํ์ํ ์์ ์ ํ์ดํ๋ผ์ธ์ ์์ฒด์ ์ผ๋ก ์์ฑํฉ๋๋ค.
์์ ํ์ดํ๋ผ์ธ๊ณผ ์ค์ฒฉ ํ์ดํ๋ผ์ธ ๊ฐ์ ํฅ์๋ ํ์
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ด์ ์๋ ์์ ํ์ดํ๋ผ์ธ๊ณผ ์ค์ฒฉ ํ์ดํ๋ผ์ธ ์ฌ์ด๋ฅผ ํ์ํ๋ ๊ฒ์ด ๊ทธ๋ฆฌ ํธ๋ฆฌํ์ง ์์์ต๋๋ค. ์ํ๋ ํ์ดํ๋ผ์ธ์ ๋๋ฌํ๋ ค๋ฉด ๋ง์ ํด๋ฆญ์ด ํ์ํ์ต๋๋ค. ์ด๋ค ์์ ์ด ํ์ดํ๋ผ์ธ์ ์์ํ๋์ง ํ์ ํ๋ ๊ฒ๋ ์ฝ์ง ์์์ต๋๋ค. ์ด์ ์์ ํ์ดํ๋ผ์ธ๊ณผ ์ค์ฒฉ ํ์ดํ๋ผ์ธ ๊ฐ์ ์ฐ๊ฒฐ์ ํจ์ฌ ์ฝ๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
๋ณ๋ ฌ ํ๋ ฌ ์์ ์ ์ง์์ ๊ด๋ จ ๋ณ์๋ฅผ ํ์ํฉ๋๋ค.
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ฌ์ฉํ ๊ฒฝ์ฐ matrix 1/4
. ๋ฆด๋ฆฌ์ค 13.4์์๋ ์ผ๋ฐ ์์
์ด๋ฆ ๋์ ํด๋น ์์
์ ์ฌ์ฉ๋ ๊ด๋ จ ๋ณ์ ๊ฐ์ด ํ์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด x86 ์ํคํ
์ฒ๋ฅผ ๋๋ฒ๊น
ํ๋ ๊ฒ์ด ๋ชฉํ๋ผ๋ฉด ์์
์ ๋ค์๊ณผ ๊ฐ์ด ํธ์ถ๋ฉ๋๋ค. matrix: debug x86
.
GitLab 13.4์ ๊ธฐํ ๊ฐ์ ์ฌํญ
Atlassian ๊ณ์ ์ฐ๊ฒฐ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ)
์ด์ GitLab ์ฌ์ฉ์๋ GitLab ๊ณ์ ์ Atlassian Cloud ๊ณ์ ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด Atlassian ์๊ฒฉ ์ฆ๋ช
์ผ๋ก GitLab์ ๋ก๊ทธ์ธํ ์ ์์ผ๋ฉฐ ํฅํ ํตํฉ ๊ฐ์ ์ ์ํ ํ ๋๊ฐ ๋ง๋ จ๋ ๊ฒ์
๋๋ค.
๋ชจ๋ ๋ณํฉ ์ปค๋ฐ ๋ชฉ๋ก ๋ด๋ณด๋ด๊ธฐ
(๊ถ๊ทน๊ธฐ, ๊ณจ๋)
๊ท์ ์ค์์ ์ค์ ์ ๋๋ ์กฐ์ง์๋ ์์ฐ์ ํน์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๊ด๋ จ๋ ๊ตฌ์ฑ ์์์ ๋ํ ์ ์ฒด์ ์ธ ๋ณด๊ธฐ๋ฅผ ๊ฐ์ฌ์์๊ฒ ๋ณด์ฌ์ค ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. GitLab์์ ์ด๋ ๋ณํฉ ์์ฒญ, ํฐ์ผ, ํ์ดํ๋ผ์ธ, ๋ณด์ ๊ฒ์, ๊ธฐํ ์ปค๋ฐ ๋ฐ์ดํฐ ๋ฑ ๋ชจ๋ ๊ฒ์ ํ ๊ณณ์ ์์งํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ง๊ธ๊น์ง๋ ์ ๋ณด๋ฅผ GitLab์์ ์๋์ผ๋ก ์์งํ๊ฑฐ๋ ์ ๋ณด๋ฅผ ์์งํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ๊ตฌ์ฑํด์ผ ํ๋๋ฐ ์ด๋ ๊ทธ๋ค์ง ํจ์จ์ ์ด์ง ์์์ต๋๋ค.
์ด์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ด ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๋ด๋ณด๋ด ๊ฐ์ฌ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ฑฐ๋ ๋ค๋ฅธ ๋ถ์์ ์ํํ ์ ์์ต๋๋ค. ํ์ฌ ๊ทธ๋ฃน์ ๋ชจ๋ ๋ณํฉ ์ปค๋ฐ ๋ชฉ๋ก์ ๋ด๋ณด๋ด๋ ค๋ฉด ๋ค์์ผ๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
API๋ฅผ ํตํด ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ ๋์ด ๋ฐ ๊ด๋ฆฌ
(๊ถ๊ทน๊ธฐ, ๊ณจ๋)
GitLab ๋ค์์คํ์ด์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๊ท์ ์ค์ ๋
ธ๋ ฅ์ ์ค์ํ ๋ถ๋ถ์
๋๋ค. ์ต์ ๊ถํ ์์น๋ถํฐ ์๊ฐ ์ ํ ์ก์ธ์ค ๋นํ์ฑํ๊น์ง GitLab์ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ๊ณผ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ์๊ตฌ ์ฌํญ์ด ์์ ์ ์์ต๋๋ค. ๋ค์์คํ์ด์ค ๋ด์์ ์ด๋ฌํ ๋ชจ๋ ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช
์ ๋ ์ฝ๊ฒ ์ ์งํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ๋ชจ๋ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ ๋์ดํ๊ณ ์ ํ์ ์ผ๋ก ๋์ดํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ต๋๋ค.
GitLab API์ ๋ํ ์ด๋ฌํ ๊ฐ์ ์ฌํญ์ ํตํด ์ฌ์ฉ์๋ ์์ ์ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ ๋์ดํ๊ณ ์ทจ์ํ ์ ์์ผ๋ฉฐ, ๊ด๋ฆฌ์๋ ์ฌ์ฉ์์ ํ ํฐ์ ๋์ดํ๊ณ ์ทจ์ํ ์ ์์ต๋๋ค. ์ด์ ๊ด๋ฆฌ์๋ ์์ ์ ๋ค์์คํ์ด์ค์ ์ก์ธ์คํ ์ ์๋ ์ฌ๋์ ํ์ธํ๊ณ , ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ก์ธ์ค ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ , ์์๋์์ ์ ์๊ฑฐ๋ ํ์ฌ์ ์ก์ธ์ค ๊ด๋ฆฌ ์ ์ฑ ์ ๋ฒ์ด๋๋ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ ์ทจ์ํ๋ ๊ฒ์ด ๋ ์ฌ์์ก์ต๋๋ค.
๊ด๋ จ ๋ฌธ์ ๋ฐ ๊ธฐํ ๊ธฐ๋ฅ์ด ์ด์ GitLab Core์ ์์ต๋๋ค.
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๋ช ๋ฌ ์ ์ ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ณํ์ ๋ฐํํ์ต๋๋ค.
๋ณํฉ ์์ฒญ ์ฌ์ด๋๋ฐ์ ์๋ณธ ๋ธ๋์น ์ด๋ฆ ํ์
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ฝ๋ ๋ณ๊ฒฝ, ํ ๋ก , ๋ณํฉ ์์ฒญ ์ปค๋ฐ์ ๊ฒํ ํ ๋ ๋ ์ฌ์ธต์ ์ธ ๊ฒํ ๋ฅผ ์ํด ๋ธ๋์น์ ๋ก์ปฌ ์ฒดํฌ์์์ ์ํํ๋ ๊ฒ์ด ๋ฐ๋์งํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ณํฉ ์์ฒญ ์ค๋ช ์ ๋ ๋ง์ ์ฝํ ์ธ ๊ฐ ์ถ๊ฐ๋๊ณ ํ์ด์ง ์๋๋ก ๋ ์คํฌ๋กคํด์ผ ํ๋ฏ๋ก ์ค๋ ๋ ์ด๋ฆ์ ์ฐพ๋ ๊ฒ์ด ์ ์ ๋ ์ด๋ ค์์ง๋๋ค.
๋ณํฉ ์์ฒญ ์ฌ์ด๋๋ฐ์ ๋ถ๊ธฐ ์ด๋ฆ์ ์ถ๊ฐํ์ฌ ์ธ์ ๋ ์ง ์ก์ธ์คํ ์ ์๊ณ ์ ์ฒด ํ์ด์ง๋ฅผ ์คํฌ๋กคํ ํ์๊ฐ ์์ต๋๋ค. ๋ณํฉ ์์ฒญ ๋งํฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ค ๋ถ๊ธฐ ์น์ ์๋ ํธ๋ฆฌํ "๋ณต์ฌ" ๋ฒํผ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๊ฐ์ฌ
๋ณํฉ ์์ฒญ ์ฐจ์ด์ ์ ์ถ์๋ ํ์ผ์ด ์์์ ๋ํ๋ ๋๋ค.
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ฌ๋ฌ ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐํ๋ ๋ณํฉ ์์ฒญ์ ๋ ๋๋ง ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ๋์ฉ๋ ํ์ผ์ ์ฐจ์ด์ ์ ์ถ์ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ํนํ ๋ง์ ์์ ํ์ผ์ด ํฌํจ๋ ๋ณํฉ ์์ฒญ์์ ๊ฒํ ์ค์ ์ค์๋ก ํ์ผ์ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. ๋ฒ์ 13.4๋ถํฐ ๋ณํฉ ์์ฒญ์ ์ ํ ํ์ผ์ด ํฌํจ๋ diff์ ํ๋๊ทธ๋ฅผ ์ง์ ํ๋ฏ๋ก ์ฝ๋ ๊ฒํ ์ค์ ์ด๋ฌํ ํ์ผ์ ๋์น์ง ์์ ๊ฒ์
๋๋ค. ๋์ฑ ๋ช
ํํ๊ฒ ํ๊ธฐ ์ํด ํฅํ ๋ฆด๋ฆฌ์ค์์๋ ์ด๋ฌํ ํ์ผ์ ๊ฐ์กฐ ํ์๋ฅผ ์ถ๊ฐํ ๊ณํ์
๋๋ค. ๋ค์ ์
๋ฐ์ดํธ๋ฅผ ๊ณ์ ์ง์ผ๋ด์ฃผ์ธ์
๋ณํฉ ์์ฒญ์ diff์ ์ถ์๋ ํ์ผ์ด ์๋ค๋ ๊ฒฝ๊ณ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๋ณํฉ ์์ฒญ diff ์น์ ์์๋ ์ฑ๋ฅ ํฅ์์ ์ํด ๋์ฉ๋ ํ์ผ์ด ์ถ์๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฝ๋๋ฅผ ๊ฒํ ํ ๋ ๋์ฉ๋ ํ์ผ์ ๋ชจ๋ ์ถ์๋๋ฏ๋ก ๊ฒํ ์๊ฐ ํ์ผ ๋ชฉ๋ก์ ์คํฌ๋กคํ ๋ ์ผ๋ถ ํ์ผ์ด ๋๋ฝ๋ ์ ์์ต๋๋ค.
์ด ์น์ ์ ๋ณํฉ๋ ํ์ผ์ด ์์์ ์ฌ์ฉ์์๊ฒ ์๋ฆฌ๊ธฐ ์ํด ๋ณํฉ ์์ฒญ diff ํ์ด์ง ์๋จ์ ํ์๋๋ ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฒํ ์ค์ ๋ณํฉ ์์ฒญ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋์น์ง ์์ ์ ์์ต๋๋ค.
Gitaly ํด๋ฌ์คํฐ ์ ์ฅ์ ์๋ ๋ณต๊ตฌ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ด์ ์๋ Gitaly ํด๋ฌ์คํฐ์ ๊ธฐ๋ณธ ๋ ธ๋๊ฐ ์คํ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด ํด๋น ๋ ธ๋์ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ํ์๋์์ต๋๋ค. ์ด๋ ์์ง ๋ณต์ ๋์ง ์์ ๋ ธ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ ์ํฉ์์ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํ์ต๋๋ค. ๋ ธ๋๊ฐ ๋ค์ ์จ๋ผ์ธ ์ํ๊ฐ ๋์์ ๋ GitLab์ ์๋์ผ๋ก ๋ณต์๋์ง ์์์ผ๋ฉฐ ๊ด๋ฆฌ์๋ ์๋์ผ๋ก ๋๊ธฐํ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ฑฐ๋ ๋ฐ์ดํฐ ์์ค์ ํ์ฉํด์ผ ํ์ต๋๋ค. ๋ณด์กฐ ๋ ธ๋์ ๋ณต์ ์์ ์คํจ์ ๊ฐ์ ๋ค๋ฅธ ์ํฉ์ผ๋ก ์ธํด ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์ค๋๋๊ฑฐ๋ ์ฝ๊ธฐ ์ ์ฉ์ด ๋ ์๋ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ณต์ ์์ ์ ์์ํ๋ ๋ค์ ์ฐ๊ธฐ ์์ ์ด ๋ฐ์ํ ๋๊น์ง ๋ฆฌํฌ์งํ ๋ฆฌ๋ ์ค๋๋ ์ํ๋ก ์ ์ง๋์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด
๋ํ ์๋ ๋ณต๊ตฌ๋ ํด๋ฌ์คํฐ์ ์ถ๊ฐ๋ ์ Gitaly ๋ ธ๋์์ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ณต์ ๋ฅผ ์์ํ๋ฏ๋ก ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ ๋ ์๋ ์์ ์ด ํ์ํ์ง ์์ต๋๋ค.
๋์์ธ ํ์ด์ง์์ ํ ์ผ์ ์๋ฃ๋ก ํ์ํ์ธ์.
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
GitLab์ ํจ๊ณผ์ ์ธ ์์ฌ์ํต์ ํ ์ผ ๋ชฉ๋ก์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋๊ธ์ ์์ ์ด ์ธ๊ธ๋ ๊ฒฝ์ฐ ์์ ์ผ๋ก ๋ฐ๋ก ์ด๋ํ์ฌ ์์ ์ ์์ํ๊ฑฐ๋ ์๋ฃ๋ก ํ์ํ ์ ์๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด๋ค ์ผ์ ํด์ผ ํ๊ฑฐ๋ ๋์ค์ ๋ค์ ํด์ผ ํ ๋ ์์ ์๊ฒ ์์ ์ ํ ๋นํ ์ ์๋ ๊ฒ๋ ์ค์ํฉ๋๋ค.
์ด์ ์๋ ๋์์ธ ์์ ์ ์์ ์ ์ถ๊ฐํ๊ฑฐ๋ ์๋ฃ๋ ๊ฒ์ผ๋ก ํ์ํ ์ ์์์ต๋๋ค. ํด์ผ ํ ์ผ์ GitLab ์ํฌํ๋ก์ ์ค์ํ ์์์ด๊ธฐ ๋๋ฌธ์ ์ด๋ก ์ธํด ์ ํ ํ ๊ฐ์ ์์ฌ์ํต ํจ์จ์ฑ์ด ์ฌ๊ฐํ๊ฒ ์ ํ๋์์ต๋๋ค.
๋ฆด๋ฆฌ์ค 13.4์์๋ ์์ ์ฌ์ฉ ์ ํฐ์ผ ๋๊ธ์ ๋ฐ๋ผ์ก๋ ๋์์ธ์ด ์์ด ์์ ์ ๋ณด๋ค ์ผ๊ด๋๊ณ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
CI/CD ๋ฌธ์ ํด๊ฒฐ ๊ฐ์ด๋ ๊ฐ์
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๋ฐ์ํ ์ ์๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ GitLab CI/CD ๋ฌธ์ ํด๊ฒฐ ๊ฐ์ด๋๋ฅผ ๊ฐ์ ํ์ต๋๋ค. ๊ฐ์ ๋ ๋ฌธ์๊ฐ GitLab CI/CD๋ฅผ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์์ํ๊ณ ์คํํ๋ ๋ฐ ๋์์ด ๋๋ ๊ท์คํ ๋ฆฌ์์ค๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ณํฉ ์์ฒญ์ด ๋ ์ด์ ๋ณํฉ ๋๊ธฐ์ด์์ ๋ฒ์ด๋์ง ์์ต๋๋ค.
(ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋)
์ด์ ์๋ ์ฃผ์์ด ๋ฆ์ด์ ธ ๋ณํฉ ์์ฒญ์ด ์ค์๋ก ๋ณํฉ ๋๊ธฐ์ด์์ ๋ฒ์ด๋ ์ ์์์ต๋๋ค. ๋ณํฉ ์์ฒญ์ด ์ด๋ฏธ ๋๊ธฐ์ด์ ์๊ณ ๋๊ตฐ๊ฐ๊ฐ ์ฌ๊ธฐ์ ์ค๋ช ์ ์ถ๊ฐํ์ฌ ํด๊ฒฐ๋์ง ์์ ์ ํ ๋ก ์ ์์ฑํ ๊ฒฝ์ฐ ๋ณํฉ ์์ฒญ์ ๋ณํฉ์ ์ ํฉํ์ง ์์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ด ๋๊ธฐ์ด์์ ์ ์ธ๋ฉ๋๋ค. ์ด์ ๋ณํฉ ์์ฒญ์ด ๋ณํฉ ๋๊ธฐ์ด์ ์ถ๊ฐ๋ ํ ๋ณํฉ ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋ ์ผ๋ ค ์์ด ์ ์ฃผ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ณํฉ ์์ฒญ์์ ์์ ์ ๋ํ ์ฝ๋ ์ ์ฉ ๋ฒ์ ๊ฐ ํ์
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๊ฐ๋ฐ์๋ ํ์ดํ๋ผ์ธ์ด ์๋ฃ๋ ํ ์ฝ๋ ์ ์ฉ ๋ฒ์ ๊ฐ์ ๋ณผ ์ ์์ด์ผ ํฉ๋๋ค. ์ ์ฉ ๋ฒ์ ๊ฐ์ ๊ณ์ฐํ๊ธฐ ์ํด ๊ตฌ๋ฌธ ๋ถ์ํด์ผ ํ๋ ์ฌ๋ฌ ์์ ์ด ํฌํจ๋ ํ์ดํ๋ผ์ธ์ ์คํํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ณต์กํ ์๋๋ฆฌ์ค์์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ด์ ์๋ ๋ณํฉ ์์ฒญ ์์ ฏ์ ์ด๋ฌํ ๊ฐ์ ํ๊ท ๋ง ํ์๋์์ต๋๋ค. ์ฆ, ์ค๊ฐ ์ ์ฉ ๋ฒ์ ๊ฐ์ ์ป์ผ๋ ค๋ฉด ์์ ํ์ด์ง๋ก ์ด๋ํ ๋ค์ ๋ณํฉ ์์ฒญ์ผ๋ก ๋ค์ ๋์๊ฐ์ผ ํ์ต๋๋ค. ์๊ฐ๊ณผ ์ด๋ฌํ ์ถ๊ฐ ๋จ๊ณ๋ฅผ ์ ์ฝํ๊ธฐ ์ํด ์์ ฏ์ ํ๊ท ์ ์ฉ ๋ฒ์ ๊ฐ, ๋์ ๋ถ๊ธฐ์ ์์ค ๋ถ๊ธฐ ๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ, ํ๊ท ์ด ๊ณ์ฐ๋ ๊ธฐ์ค์ผ๋ก ๊ฐ ์์ ์ ๋ํ ์ ์ฉ ๋ฒ์ ๊ฐ์ ํ์ํ๋ ๋๊ตฌ ์ค๋ช ์ด ํ์๋๋๋ก ๋ง๋ค์์ต๋๋ค.
๊ทธ๋ฃน์ ๋ณผ ๋ ํจํค์ง ๋ ์ง์คํธ๋ฆฌ์์ ํจํค์ง ์ ๊ฑฐ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
GitLab ํจํค์ง ๋ ์ง์คํธ๋ฆฌ๋ ํจํค์ง๋ฅผ ๋ค์ํ ํ์์ผ๋ก ์ ์ฅํ๊ณ ๋ฐฐํฌํ๋ ์ฅ์์
๋๋ค. ํ๋ก์ ํธ๋ ๊ทธ๋ฃน์ ํจํค์ง๊ฐ ๋ง์ผ๋ฉด ์ฌ์ฉํ์ง ์๋ ํจํค์ง๋ฅผ ์ ์ํ๊ฒ ์๋ณํ๊ณ ์ ๊ฑฐํ์ฌ ์ฌ๋๋ค์ด ๋ค์ด๋ก๋ํ์ง ๋ชปํ๋๋ก ํด์ผ ํฉ๋๋ค. ๋ค์์ ํตํด ๋ ์ง์คํธ๋ฆฌ์์ ํจํค์ง๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
์ด์ ๊ทธ๋ฃน์ ํจํค์ง ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๋ณผ ๋ ํจํค์ง๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฃน์ ํจํค์ง ๋ฑ๋ก ํ์ด์ง๋ก ์ด๋ํ์ฌ ์ด๋ฆ๋ณ๋ก ํจํค์ง๋ฅผ ํํฐ๋งํ๊ณ ํ์ํ์ง ์์ ํจํค์ง๋ฅผ ์ ๊ฑฐํ๋ฉด ๋ฉ๋๋ค.
Conan ํจํค์ง๋ฅผ ํ๋ก์ ํธ ์์ค์ผ๋ก ํ์ฅ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
GitLab์ Conan ์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ C/C++ ์ข
์์ฑ์ ๊ฒ์ํ๊ณ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Conan ํจํค์ง ์ด๋ฆ์ ์ต๋ 51์๊น์ง๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ด์ ํจํค์ง๋ ์ธ์คํด์ค ์์ค์ผ๋ก๋ง ํ์ฅํ ์ ์์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ์ ๊ทธ๋ฃน์์ ํจํค์ง๋ฅผ ๊ฒ์ํ๋ ค๋ ๊ฒฝ์ฐ gitlab-org/ci-cd/package-stage/feature-testing/conan
, ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ์ต๋๋ค.
์ด์ Conan ํจํค์ง๋ฅผ ํ๋ก์ ํธ ์์ค์ผ๋ก ์ถ์ํ์ฌ ํ๋ก์ ํธ์ ์ข ์์ฑ์ ์ฝ๊ฒ ๊ฒ์ํ๊ณ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์ข ์์ฑ ๊ฒ์ฌ๋ฅผ ์ํ ์๋ก์ด ํจํค์ง ๊ด๋ฆฌ์ ๋ฐ ์ธ์ด ์ง์
(๊ถ๊ทน๊ธฐ, ๊ณจ๋)
NuGet 4.9+ ๋๋ Conan ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ๋ C, C++, C# ๋ฐ .Net ์ฝ๋ ํ๋ก์ ํธ์ ๋ํ ์ข
์์ฑ ๊ฒ์ฌ๋ฅผ ๋ชฉ๋ก์ ์ถ๊ฐํ๊ฒ ๋์ด ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค.
๋ณํฉ ์์ฒญ ์ค์ ์ 'ํ์ดํ๋ผ์ธ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ๋ณํฉ'์ผ๋ก ๋ณ๊ฒฝํ ๋ ์๋ฆผ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ด์ ์๋ ๋ณํฉ ์์ฒญ ์ค์ ์ ํ ๋ ํ์ดํ๋ผ์ธ์ด ์๋ฃ๋๋ฉด ๋ณํฉ (ํ์ดํ๋ผ์ธ ์ฑ๊ณต ์ ๋ณํฉ, MWPS) ์ด๋ฉ์ผ ์๋ฆผ์ด ์ ์ก๋์ง ์์์ต๋๋ค. ์๋์ผ๋ก ์ํ๋ฅผ ํ์ธํ๊ฑฐ๋ ๋ณํฉ ์๋ฆผ์ ๊ธฐ๋ค๋ ค์ผ ํ์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ์ฌ์ฉ์ ๊ธฐ์ฌ๋ฅผ ์ ๊ณตํ๊ฒ ๋ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์ง์ ํ Kubernetes ๋ฒ์ ์ผ๋ก EKS ํด๋ฌ์คํฐ ์์ฑ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ด์ GitLab ์ฌ์ฉ์๋ EKS์์ ์ ๊ณตํ Kubernetes ๋ฒ์ ์ ์ ํํ ์ ์์ต๋๋ค. ๋ฒ์ 1.14~1.17 ์ค์์ ์ ํํ ์ ์์ต๋๋ค.
ํฐ์ผ ์ ํ์ผ๋ก ์ฌ๊ฑด ๋ง๋ค๊ธฐ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๋ฐ์ํ๋ ๋ชจ๋ ๋ฌธ์ ๊ฐ ์ฆ์ ๊ฒฝ๊ณ ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ๊ฒ์ ์๋๋๋ค. ์ฌ์ฉ์๋ ์ค๋จ์ ๋ณด๊ณ ํ๊ณ ํ ๊ตฌ์ฑ์์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์กฐ์ฌํฉ๋๋ค. ์ฌ๊ฑด์ ์ด์ ์ผ์ข ์ ํฐ์ผ์ด๋ฏ๋ก ํ์ ์ผ๋ฐ์ ์ธ ์ํฌํ๋ก์ ์ผ๋ถ๋ก ์ ์ํ๊ฒ ์ฌ๊ฑด์ ์์ฑํ ์ ์์ต๋๋ค. ๋ธ๊น ํ๋ ์๋ฆฌ ์ ์์ GitLab๊ณผ ํ์ฅ ์ด๋์์๋ ์ ํ ์ ํ ์ฌ๊ฑด.
Markdown์์ GitLab ๊ฒฝ๊ณ ์ธ๊ธ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
GitLab Markdown์ ํน๋ณํ ์๋ก์ด ์ธ๊ธ ์ ํ์ ์ถ๊ฐํ์ฌ GitLab ๊ฒฝ๊ณ ๋ฅผ ๊ฐ์ ํ์ฌ ๊ฒฝ๊ณ ๋ฅผ ๋ ์ฝ๊ฒ ๊ณต์ ํ๊ณ ์ธ๊ธํ ์ ์๊ฒ ํ์ต๋๋ค. ์ฌ์ฉ ^alert#1234
์ฌ๊ฑด, ํฐ์ผ, ๋ณํฉ ์์ฒญ ๋ฑ ๋งํฌ๋ค์ด ํ๋์์ ์๋ฆผ์ ์ธ๊ธํ ์ ์์ต๋๋ค. ์ด๋ ํฐ์ผ์ด๋ ๋ณํฉ ์์ฒญ์ด ์๋ ์๋ฆผ์ผ๋ก ์์ฑ๋ ์์
์ ์๋ณํ๋ ๋ฐ๋ ๋์์ด ๋ฉ๋๋ค.
์ฌ๊ฑด๋ณ ๊ฒฝ๋ณด ๋ถํ ๋ณด๊ธฐ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๊ฒฝ๊ณ ์ค๋ช ์๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐ ๋ณต๊ตฌ์ ์ค์ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ด ์ ๋ณด๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์ ํ ๋ ๋๊ตฌ๋ ํญ์ ์ ํํ ํ์๊ฐ ์๋๋ก ์ฝ๊ฒ ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค. ๊ฒฝ๊ณ ์์ ์์ฑ๋ ์ฌ๊ฑด์ ํญ์ ์ ์ฒด ๊ฒฝ๊ณ ์ค๋ช ์ ํ์ํฉ๋๋ค. ๊ฒฝ๊ณ ์ธ๋ถ์ ๋ณด.
75% ๋ ๋น ๋ฅธ ๊ณ ๊ธ ๊ฒ์
(์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๋จ์ผ ์ ํ๋ฆฌ์ผ์ด์
์ธ GitLab์ ์ ์ฒด DevOps ์ํฌํ๋ก์์ ์ฝํ
์ธ ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ ์ ์๋ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค. GitLab 13.4์์๋ ๊ณ ๊ธ ๊ฒ์์ด ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๋ฅผ 75% ๋ ๋น ๋ฅด๊ฒ ๋ฐํํฉ๋๋ค.
๊ด๋ฆฌ์๋ฅผ ์ํด ์ญ์ ๋ ํ๋ก์ ํธ ๋ณด๊ธฐ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ)
ํ๋ก์ ํธ ์ญ์ ๋ฅผ ์ฐ๊ธฐํ๋ ์ต์
์ด ์์์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ด๋ จ ์ ๋ณด๋ฅผ ํ๊ณณ์ ์์งํ๊ณ ์์น ์๋ ์ญ์ ์์ ์ ์ทจ์ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๊ด๋ฆฌ์๊ฐ ํ๋ก์ ํธ ์ญ์ ๋ฅผ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค.
๊ฐ์ฌ
API์ ๊ทธ๋ฃน ํธ์ ๊ท์น์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
(์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ด์ ์๋ GitLab UI๋ฅผ ํตํด ๊ฐ ๊ทธ๋ฃน์ ๊ฐ๋ณ์ ์ผ๋ก ๋ฐฉ๋ฌธํ๊ณ ํด๋น ๊ท์น์ ์ ์ฉํด์ผ๋ง ๊ทธ๋ฃน ํธ์ ๊ท์น์ ๊ตฌ์ฑํ ์ ์์์ต๋๋ค. ์ด์ API๋ฅผ ํตํด ์ด๋ฌํ ๊ท์น์ ๊ด๋ฆฌํ์ฌ ์ฌ์ฉ์ ์ ์ ๋๊ตฌ ๋ฐ GitLab ์๋ํ๋ฅผ ์ง์ํ ์ ์์ต๋๋ค.
์์ฒด ๊ด๋ฆฌ ์๊ฒฉ ์ฆ๋ช ์ ์ฅ์์ ๋ํ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ ์ทจ์
(๊ถ๊ทน์ ์ธ)
์ ์ ์ฌ์ดํธ ํธ์ง๊ธฐ์ฉ ๊ตฌ์ฑ ํ์ผ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
GitLab 13.4์์๋ ์ ์ ์ฌ์ดํธ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉ์ ์ ์ํ๋ ์๋ก์ด ๋ฐฉ๋ฒ์ ๋์
ํฉ๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค์์๋ ๊ตฌ์ฑ ํ์ผ์ด ์ด๋ค ์ค์ ๋ ์ ์ฅํ๊ฑฐ๋ ์์ ํ์ง ์์ง๋ง, ํฅํ ํธ์ง๊ธฐ ๋์ ์ฌ์ฉ์ ์ ์๋ฅผ ์ํ ๊ธฐ๋ฐ์ ๋ง๋ จํ๊ณ ์์ต๋๋ค. ํฅํ ๋ฆด๋ฆฌ์ค์์๋ ํ์ผ์ ์ถ๊ฐํ ์์ ์
๋๋ค. .gitlab/static-site-editor.yml
์ค์น ๋งค๊ฐ๋ณ์
์ ์ ์ฌ์ดํธ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ์ ์๊ฐ ๋ถ๋ถ ํธ์ง
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๋จธ๋ฆฌ๋ง์ ์ ์ ์ฌ์ดํธ ์์ฑ๊ธฐ์์ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ ํ์ผ์ ํ์ด์ง ๋ณ์๋ฅผ ์ ์ํ๋ ์ ์ฐํ๊ณ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ์ด์ง ์ ๋ชฉ, ๋ ์ด์์ ํ ํ๋ฆฟ ๋๋ ์์ฑ์๋ฅผ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉ๋์ง๋ง HTML๋ก ํ์ด์ง๋ฅผ ๋ ๋๋งํ ๋ ๋ชจ๋ ์ ํ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ฑ๊ธฐ์ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ฐ์ดํฐ ํ์ผ์ ๋งจ ์์ ํฌํจ๋ ์๊ฐ ๋ถ๋ถ์ ์ผ๋ฐ์ ์ผ๋ก YAML ๋๋ JSON ํ์์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ผ๊ด๋๊ณ ์ ํํ ๊ตฌ๋ฌธ์ด ํ์ํฉ๋๋ค. ํน์ ๊ตฌ๋ฌธ ๊ท์น์ ์ต์ํ์ง ์์ ์ฌ์ฉ์๋ ์ค์๋ก ์๋ชป๋ ๋งํฌ์ ์ ์ ๋ ฅํ ์ ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ํ์ ์ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ๋น๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์๋ ์์ต๋๋ค.
์ ์ ์ฌ์ดํธ ํธ์ง๊ธฐ์ WYSIWYG ํธ์ง ๋ชจ๋๋ ์ด๋ฌํ ํ์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ด๋ฏธ ํธ์ง๊ธฐ์์ ์๊ฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ํ๋ฉด ์์ค ๋ชจ๋์์ ํธ์ง์ผ๋ก ๋์๊ฐ์ง ์๊ณ ์ด ๋ถ๋ถ์ ์ ์ฅ๋ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. GitLab 13.4์์๋ ์น์ํ ์์ ๊ธฐ๋ฐ ์ธํฐํ์ด์ค์์ ๋ชจ๋ ํ๋์ ์ก์ธ์คํ๊ณ ํด๋น ๊ฐ์ ํธ์งํ ์ ์์ต๋๋ค. ๋ฒํผ์ ๋๋ ์ ๋ ์ค์ (์ค์ ) ์ฒ์์ ์ ์๋ ๊ฐ ํค์ ๋ํ ์์ ํ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ํจ๋์ด ์ด๋ฆฝ๋๋ค. ํ๋๋ ํ์ฌ ๊ฐ์ผ๋ก ์ฑ์์ง๋ฉฐ, ํธ์ง์ ์น ์์์ ์ ๋ ฅํ๋ ๊ฒ๋งํผ ๊ฐ๋จํฉ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์๊ฐ๋ฅผ ํธ์งํ๋ฉด ๋ณต์กํ ๊ตฌ๋ฌธ์ด ๋ฐฉ์ง๋๊ณ ์ต์ข ๊ฒฐ๊ณผ์ ํ์์ด ์ผ๊ด๋๊ฒ ์ ์ง๋๋ฉด์ ์ฝํ ์ธ ๋ฅผ ์๋ฒฝํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค.
Jira ๋ฐ DVCS ์ปค๋ฅํฐ์ฉ GitLab์ด ์ด์ ์ฝ์ด์ ์์ต๋๋ค.
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
GitLab์ Jira ์ฌ์ฉ์์ ๊ฒฝ์ฐ:
์ด๋ฌํ ๊ธฐ๋ฅ์ ์ด์ ์๋ ํ๋ฆฌ๋ฏธ์ ํ๋์์๋ง ์ฌ์ฉํ ์ ์์์ง๋ง ์ด์ ๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค!
Gitaly ํด๋ฌ์คํฐ ํธ๋์ญ์ ์ ๋ํ ๋ค์ ํฌํ(๋ฒ ํ)
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ)
Gitaly ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํ๋ฉด Git ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฌ๋ฌ "์" Gitaly ๋
ธ๋์ ๋ณต์ ํ ์ ์์ต๋๋ค. ์ด๋ ๋จ์ผ ์คํจ ์ง์ ์ ์ ๊ฑฐํ์ฌ ๋ด๊ฒฐํจ์ฑ์ ํฅ์์ํต๋๋ค.
๋ค์๊ฒฐ ํฌํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋์คํฌ์ ์ ์ฅํ๊ธฐ ์ ์ ๋ค์์ ๋ ธ๋(์ ์ฒด๋ ์๋)์ ๋์๋ฅผ ์๊ตฌํ์ฌ ๋ด๊ฒฐํจ์ฑ์ ํฅ์์ํต๋๋ค. ์ด ํ ๊ธ ๊ธฐ๋ฅ์ด ํ์ฑํ๋๋ฉด ์ฌ๋ฌ ๋ ธ๋์์ ์ฐ๊ธฐ๊ฐ ์ฑ๊ณตํด์ผ ํฉ๋๋ค. ๋ฐ๋ ๋ ธ๋๋ ์ฟผ๋ผ์ ๊ตฌ์ฑํ ๋ ธ๋์ ๋น๋๊ธฐ ๋ณต์ ๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ๋๊ธฐํ๋ฉ๋๋ค.
Web IDE์์ JSON ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํ ์ฌ์ฉ์ ์ ์ ์คํค๋ง ์ง์
(ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ, ์ค๋ฒ, ๊ณจ๋)
์ฌ๋๋ค์ด JSON ๋๋ YAML๋ก ๊ตฌ์ฑ์ ์์ฑํ๋ ํ๋ก์ ํธ๋ ์คํ๊ฐ ๋ฐ์ํ๊ณ ๋ฌด์ธ๊ฐ๊ฐ ๊นจ์ง๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ์ข ์ข ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค. CI ํ์ดํ๋ผ์ธ์์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํฌ์ฐฉํ๊ธฐ ์ํ ๊ฒ์ฌ ๋๊ตฌ๋ฅผ ์์ฑํ ์ ์์ง๋ง JSON ์คํค๋ง ํ์ผ์ ์ฌ์ฉํ๋ฉด ๋ฌธ์์ ํํธ๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ ์ฐธ๊ฐ์๋ ์ ์ฅ์์์ ํ์ผ์ ์ฌ์ฉ์ ์ ์ ์คํค๋ง ๊ฒฝ๋ก๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. .gitlab/.gitlab-webide.yml
, ํ์ธํ ํ์ผ์ ์คํค๋ง์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ํน์ ํ์ผ์ Web IDE์ ๋ก๋ํ๋ฉด ํ์ผ์ ์์ฑํ๋ ๋ฐ ๋์์ด ๋๋ ์ถ๊ฐ ํผ๋๋ฐฑ๊ณผ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ํ์๋ฉ๋๋ค.
DAG(๋ฐฉํฅ์ฑ ๋น์ํ ๊ทธ๋ํ) ๋ถ๊ธฐ ์ ํ์ด 50์ผ๋ก ์ฆ๊ฐํ์ต๋๋ค.
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ปจ๋ฒ ์ด์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ needs:
, ๋๋ฌด ๊ฐํนํฉ๋๋ค. 13.4์์๋ ํ์ดํ๋ผ์ธ์ ์์
๊ฐ ๊ด๊ณ์ ๋ ๋ณต์กํ ๋คํธ์ํฌ๋ฅผ ํ์ฉํ๊ธฐ ์ํด ๊ธฐ๋ณธ ์ ํ์ด 10์์ 50์ผ๋ก ๋์ด๋ฌ์ต๋๋ค.
์ฌ์ฉ์ ์ ์ GitLab ์ธ์คํด์ค์ ๊ด๋ฆฌ์์ธ ๊ฒฝ์ฐ ํ ๊ธ ๊ธฐ๋ฅ์ ์ค์ ํ์ฌ ์ด ์ ํ์ ๋ ๋์ผ ์ ์์ต๋๋ค. ๋จ ์ด์ ๋ํ ๊ณต์ ์ง์์ ์ ๊ณตํ์ง ์์ต๋๋ค.
ะะพะบัะผะตะฝัะฐัะธั ะฟะพ ะฝะฐัััะพะนะบะต needs:
๊ฐ์ ๋ ๋์ needs
๋์น ๊ณผ์ ์ ๋ํด
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
๊ฒฝ์ฐ์ ๋ฐ๋ผ ํ์ดํ๋ผ์ธ์์ ๋๋ฝ๋ ์์
์ด ์ง์ ๋ ์ข
์์ฑ์ ๋ํด ์ฑ๊ณตํ ๊ฒ์ผ๋ก ์๋ชป ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค. needs
, ์ด๋ก ์ธํด ๋ฐ์ํด์๋ ์ ๋๋ ํ์ ์์
์ด ์คํ๋์์ต๋๋ค. ์ด ๋์์ ๋ฒ์ 13.4์์ ์์ ๋์์ผ๋ฉฐ needs
์ด์ ๋๋ฝ๋ ์์
์ฌ๋ก๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํฉ๋๋ค.
ะะพะบัะผะตะฝัะฐัะธั ะฟะพ ะฝะฐัััะพะนะบะต needs
์ญ์ ๋์ง ์๋๋ก ๋ง์ง๋ง ํ์คํธ ์ํฐํฉํธ๋ฅผ ๊ณ ์ ํ์ธ์.
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ด์ GitLab์ ๋ง๋ฃ ํ ์ญ์ ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ์ฑ ๋ถ๊ธฐ, ๋ณํฉ ์์ฒญ ๋๋ ํ๊ทธ์์ ๋ง์ง๋ง์ผ๋ก ์ฑ๊ณตํ ์์ ๋ฐ ํ์ดํ๋ผ์ธ ์ํฐํฉํธ๋ฅผ ์๋์ผ๋ก ์ ๊ธ๋๋ค. ์ค๋๋ ์ํฐํฉํธ๋ฅผ ์ ๋ฆฌํ๊ธฐ ์ํด ๋์ฑ ๊ณต๊ฒฉ์ ์ธ ๋ง๋ฃ ๊ท์น์ ์ค์ ํ๋ ๊ฒ์ด ๋ ์ฌ์์ก์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋์คํฌ ๊ณต๊ฐ ์๋น๋ฅผ ์ค์ด๊ณ ํญ์ ํ์ดํ๋ผ์ธ์ ์ต์ ์ํฐํฉํธ ๋ณต์ฌ๋ณธ์ ์ ์งํ ์ ์์ต๋๋ค.
ํ์ดํ๋ผ์ธ ์ต์ ํ๋ฅผ ์ํ CI/CD ๊ฐ์ด๋
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
CI/CD ํ์ดํ๋ผ์ธ์ ์ต์ ํํ๋ฉด ์ ์ก ์๋๋ฅผ ํฅ์ํ๊ณ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค. ํ์ดํ๋ผ์ธ ์ต์ ํ๋ฅผ ์ต๋ํ ํ์ฉํ๊ธฐ ์ํ ๋น ๋ฅธ ๊ฐ์ด๋๋ฅผ ํฌํจํ๋๋ก ์ค๋ช ์๋ฅผ ๊ฐ์ ํ์ต๋๋ค.
ํ ์คํธ ์ํ๋ณ๋ก ์ ๋ ฌ๋ ํ ์คํธ ๋ณด๊ณ ์
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
ํจํค์ง ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋๋๋ ํ์ผ ํฌ๊ธฐ ์ ํ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ด์ GitLab ํจํค์ง ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋ํ ์ ์๋ ํจํค์ง ํ์ผ์ ํฌ๊ธฐ์ ์ ํ์ด ์์ต๋๋ค. ํจํค์ง ๋ ์ง์คํธ๋ฆฌ ์ฑ๋ฅ์ ์ต์ ํํ๊ณ ๋จ์ฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ํ ์ฌํญ์ด ์ถ๊ฐ๋์์ต๋๋ค. ํ๋๋ ํจํค์ง ํ์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. GitLab.com์ ๊ฒฝ์ฐ ์ต๋ ํ์ผ ํฌ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฝ๋: 250MB
- ๋ฉ์ด๋ธ: 3GB
- NPM: 300MB
- NuGet: 250MB
- PyPI: 3GB
์ฌ์ฉ์ ์ ์ GitLab ์ธ์คํด์ค์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ ๋์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ด๋ฆฌ์๋ ๋ค์์ ์ฌ์ฉํ์ฌ ์ ํ ์ฌํญ์ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค.
CI_JOB_TOKEN์ ์ฌ์ฉํ์ฌ PyPI ํจํค์ง ๊ฒ์
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
GitLab PyPI ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ค ์ฝ๋ ๋ฐ CI/CD ํ์ดํ๋ผ์ธ๊ณผ ํจ๊ป Python ํจํค์ง๋ฅผ ์์ฑ, ๊ฒ์ ๋ฐ ๊ณต์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ์๋ ์ฌ์ ์ ์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅ์์ ์ธ์ฆํ ์ ์์์ต๋๋ค. CI_JOB_TOKEN
. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ์ธ ์๊ฒฉ ์ฆ๋ช
์ ์ฌ์ฉํ์ฌ PyPI ์ ์ฅ์๋ฅผ ์
๋ฐ์ดํธํด์ผ ํ๊ฑฐ๋ ์ ์ฅ์๋ฅผ ์ ํ ์ฌ์ฉํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ์ ์๋ ์์ต๋๋ค.
์ด์ GitLab CI/CD๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ ์ ์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ PyPI ํจํค์ง๋ฅผ ๊ฒ์ํ๊ณ ์ค์นํ๋ ๊ฒ์ด ๋ ์ฌ์์ก์ต๋๋ค. CI_JOB_TOKEN
.
์์ฒญ ์ DAST ์ค์บ๋ ํ๋กํ
(๊ถ๊ทน๊ธฐ, ๊ณจ๋)
์ฃผ๋ฌธํ DAST ์ค์บ์
GitLab ํ์ด์ง์ ๋ํ ๊ฐ๋จํ ๋ฆฌ๋๋ ์ ๊ตฌ์ฑ ํ์ผ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
GitLab ํ์ด์ง๋ฅผ ์ฌ์ฉํ๊ณ URL ๋ณ๊ฒฝ ์ฌํญ์ ๋ ์ ๊ด๋ฆฌํ๋ ค๋ ๊ฒฝ์ฐ GitLab ํ์ด์ง ์ฌ์ดํธ์์ ๋ฆฌ๋๋ ์
๊ด๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ด์ GitLab์ ์ฌ์ฉํ๋ฉด ์ ์ฅ์์ ๊ตฌ์ฑ ํ์ผ์ ์ถ๊ฐํ์ฌ ํ์ด์ง ์ฌ์ดํธ์ ํ URL์ ๋ค๋ฅธ URL๋ก ๋ฆฌ๋๋ ์
ํ๋ ๊ท์น์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ Kevin Barnett(
GitLab์์ ๊ด๋ฆฌํ๋ Terraform ์ํ
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
ํ์ํ ๊ฒฝ์ฐ ๊ท์ ์ค์ ๋ฐ ๋๋ฒ๊น
์ ์ํด ์ด์ ๋ฒ์ ์ Terraform ์ํ์ ์ก์ธ์คํด์ผ ํฉ๋๋ค. GitLab์์ ๊ด๋ฆฌํ๋ Terraform ์ํ ๋ฒ์ ๊ด๋ฆฌ ์ง์์ GitLab 13.4๋ถํฐ ์ ๊ณต๋ฉ๋๋ค. ์๋ก์ด Terraform ์ํ ํ์ผ์ ๋ํด ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์๋์ผ๋ก ํ์ฑํ๋ฉ๋๋ค. ๊ธฐ์กด Terraform ์ํ ํ์ผ์
์ค์ํ ์ฌ๊ฑด ์๋ฆผ ์ธ๋ถ์ ๋ณด
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ธ์๋ํธ๋ฅผ ์ฒ๋ฆฌํ ๋ ๊ฒฝ๊ณ ๊ฐ ์ด๋ฆฐ ๊ธฐ๊ฐ๊ณผ ์ด๋ฒคํธ๊ฐ ํธ๋ฆฌ๊ฑฐ๋ ํ์๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ธ๋ถ ์ ๋ณด๋ ๊ณ ๊ฐ์๊ฒ ๋ฏธ์น๋ ์ํฅ๊ณผ ํ์ด ๋จผ์ ํด๊ฒฐํด์ผ ํ ์ฌํญ์ ๊ฒฐ์ ํ๋ ๋ฐ ์ค์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์๋ก์ด ์ฌ๊ฑด ์ธ๋ถ ์ ๋ณด ํจ๋์๋ ๊ฒฝ๊ณ ์์ ์๊ฐ, ์ด๋ฒคํธ ์ ๋ฐ ์๋ ๊ฒฝ๊ณ ์ ๋ํ ๋งํฌ๊ฐ ํ์๋ฉ๋๋ค. ์ด ์ ๋ณด๋ ๊ฒฝ๊ณ ์์ ์์ฑ๋ ์ธ์๋ํธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ๊ณ ์ฌ๊ฐ๋ ๋งค๊ฐ๋ณ์ ์ค์ ๋ฐ ํธ์ง
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ฌ๊ณ ์ฌ๊ฐ๋ ์ฐจ์์ ํตํด ๋์์์ ์ดํด๊ด๊ณ์๋ ๊ฐ๋ ์ค๋จ์ ์ํฅ์ ๋ฌผ๋ก ๋์ ๋ฐฉ๋ฒ๊ณผ ๊ธด๊ธ์ฑ์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ํ์์ ์ฌ๊ณ ํด๊ฒฐ ๋ฐ ๋ณต๊ตฌ ์ค์ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํ ๋ ์ด ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด์ ์ฌ๊ฑด ์ธ๋ถ ์ ๋ณด ํ์ด์ง์ ์ค๋ฅธ์ชฝ ์ฌ์ด๋๋ฐ์์ ์ฌ๊ฑด์ ์ฌ๊ฐ๋๋ฅผ ํธ์งํ ์ ์์ผ๋ฉฐ ์ฌ๊ฐ๋๊ฐ ์ฌ๊ฑด ๋ชฉ๋ก์ ํ์๋ฉ๋๋ค.
์ปจํ ์ด๋ ๋คํธ์ํฌ ๋ณด์ ๊ท์น ์์ฑ, ํธ์ง ๋ฐ ์ญ์
(๊ถ๊ทน๊ธฐ, ๊ณจ๋)
์ปจํ
์ด๋ ๋คํธ์ํฌ ๋ณด์ ๊ท์น ํธ์ง๊ธฐ์ ํฅ์๋ ๊ธฐ๋ฅ์ ํตํด ์ฌ์ฉ์๋ GitLab ์ฌ์ฉ์ ์ธํฐํ์ด์ค์์ ์ง์ ๊ท์น์ ์ฝ๊ฒ ์์ฑ, ํธ์ง ๋ฐ ์ญ์ ํ ์ ์์ต๋๋ค. ํธ์ง๊ธฐ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค .yaml
์๋ จ๋ ์ฌ์ฉ์๋ฅผ ์ํ ๊ฒ์ด๋ฉฐ ๋คํธ์ํฌ ๊ท์น์ ์ฒ์ ์ ํ๋ ์ฌ์ฉ์๋ฅผ ์ํ ์ง๊ด์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ ๊ท์น ํธ์ง๊ธฐ์
๋๋ค. ์น์
์์ ์๋ก์ด ๊ท์น ๊ด๋ฆฌ ์ต์
์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ณด์ ๋ฐ ๊ท์ ์ค์ > ์ํ ๊ด๋ฆฌ > ๊ท์น (๋ณด์ ๋ฐ ๊ท์ ์ค์ > ์ํ ๊ด๋ฆฌ > ์ ์ฑ
).
Azure Blob ์ ์ฅ์ ์ง์
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฉ์ดํธ, ๋ฌด๋ฃ, ๋ธ๋ก ์ฆ, ์ค๋ฒ, ๊ณจ๋)
์ด์ GitLab๊ณผ GitLab Runner๊ฐ ๋ชจ๋ ์ง์๋ฉ๋๋ค.
GitLab ์ธ์คํด์ค๋ LFS ํ์ผ, CI ์ํฐํฉํธ๋ฅผ ํฌํจํ ๋ชจ๋ ์ ํ์ ๊ฐ์ฒด ์ ์ฅ์์ ๋ํด Azure๋ฅผ ์ง์ํฉ๋๋ค.
GitLab ์์
ํ๋ก์ธ์๋ ์ ์ฅ์ ์ํด Azure๋ ์ง์ํฉ๋๋ค. [runners.cache.azure]
Ubuntu ๋ฐ OpenSUSE์ฉ Omnibus ARM64 ํจํค์ง
(์ฝ์ด, ์คํํฐ, ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ)
64๋นํธ ARM ์ํคํ ์ฒ์์ GitLab์ ์คํํ๊ธฐ ์ํ ์ง์์ ๋ํ ์์๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๊ณต์ ARM64 Ubuntu 20.04 Omnibus ํจํค์ง์ ์ถ์๋ฅผ ๋ฐํํ๊ฒ ๋ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค. ํฐ ๊ณตํ์ ํด์ฃผ์ Zitai Chen๊ณผ Guillaume Gardet์๊ฒ ํฐ ๊ฐ์ฌ๋ฅผ ๋๋ฆฝ๋๋ค. ์ด๋ค์ ๋ณํฉ ์์ฒญ์ด ์ฌ๊ธฐ์ ์ค์ํ ์ญํ ์ ํ์ต๋๋ค!
Ubuntu 20.04์ฉ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ค์นํ๋ ค๋ฉด ๋ค์์ผ๋ก ์ด๋ํ์ธ์. Ubuntu
.
GitLab Helm ์ฐจํธ์ ๋ํ ์ค๋งํธ ์นด๋ ์ธ์ฆ ์ง์
(ํ๋ฆฌ๋ฏธ์, ์ผํฐ๋ฐ)
์ด์ CAC(Common Access Card)์ ๊ฐ์ ์ค๋งํธ ์นด๋๋ฅผ ์ฌ์ฉํ์ฌ Helm ์ฐจํธ๋ฅผ ํตํด ๋ฐฐํฌ๋ GitLab ์ธ์คํด์ค๋ฅผ ์ธ์ฆํ ์ ์์ต๋๋ค. ์ค๋งํธ ์นด๋๋ X.509 ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ์ธ์ฆ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด Helm ์ฐจํธ์ ์ค๋งํธ ์นด๋ ์ง์์ ์ด์ Omnibus ๋ฐฐํฌ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ค๋งํธ ์นด๋ ์ง์๊ณผ ์ผ์นํฉ๋๋ค.
์์ธํ ๋ฆด๋ฆฌ์ค ๋
ธํธ์ ์
๋ฐ์ดํธ/์ค์น ์ง์นจ์ ์๋ณธ ์์ด ๊ฒ์๋ฌผ์์ ์ฝ์ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์์ด ๋ฒ์ญ ์์
์ ํ๊ณ ์์์ต๋๋ค.
์ถ์ฒ : habr.com