Dev-ops

๐Ÿš€ GitLab ์™„๋ฒฝ ๊ฐ€์ด๋“œ

xeunnie 2025. 3. 28. 01:00
728x90
๋ฐ˜์‘ํ˜•

๐Ÿš€ GitLab ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ๊ฐœ๋…๋ถ€ํ„ฐ ํ™œ์šฉ๊นŒ์ง€!

 

“GitHub๊ณผ ๋‹ค๋ฅธ GitLab, ๋Œ€์ฒด ๋ญ๊ฐ€ ๋‹ค๋ฅธ ๊ฑฐ๊ณ  ์™œ ์จ์•ผ ํ• ๊นŒ? CI/CD๊นŒ์ง€ ๋‹ค๋ฃจ๋ฉด์„œ GitLab์„ ์™„์ „ํžˆ ๋งˆ์Šคํ„ฐํ•ด๋ณด์ž!”

๐Ÿ“Œ ๋ชฉ์ฐจ

 

1๏ธโƒฃ GitLab์ด๋ž€?

2๏ธโƒฃ GitLab์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

3๏ธโƒฃ GitHub๊ณผ GitLab์˜ ์ฐจ์ด์ 

4๏ธโƒฃ GitLab์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

5๏ธโƒฃ GitLab ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

6๏ธโƒฃ GitLab CI/CD ํ™œ์šฉํ•˜๊ธฐ

7๏ธโƒฃ GitLab์˜ ์žฅ์ ๊ณผ ํ•œ๊ณ„

8๏ธโƒฃ ๊ฒฐ๋ก 

1๏ธโƒฃ GitLab์ด๋ž€?

 

GitLab์€ Git์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ฝ”๋“œ ์ €์žฅ์†Œ์ด๋ฉด์„œ CI/CD ๊ธฐ๋Šฅ๊นŒ์ง€ ํฌํ•จ๋œ DevOps ํ”Œ๋žซํผ์ด๋‹ค.

๊ธฐ์—…, ํŒ€, ๊ฐœ์ธ ๊ฐœ๋ฐœ์ž๋“ค์ด ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ, ์ด์Šˆ ํŠธ๋ž˜ํ‚น, ์ฝ”๋“œ ๋ฆฌ๋ทฐ, ๋ฐฐํฌ ์ž๋™ํ™”๊นŒ์ง€ ํ•œ ๊ณณ์—์„œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค.

 

๐Ÿ’ก ์ฃผ์š” ํŠน์ง•

 

โœ” Git ์ €์žฅ์†Œ: Git์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

โœ” CI/CD ๋‚ด์žฅ: GitLab ์ž์ฒด์—์„œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ์ œ๊ณต

โœ” ์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€๋Šฅ: ์˜จํ”„๋ ˆ๋ฏธ์Šค ์„ค์น˜ ๊ฐ€๋Šฅ (GitHub์€ ํด๋ผ์šฐ๋“œ ์œ„์ฃผ)

โœ” ๋ฌด๋ฃŒ/์œ ๋ฃŒ ํ”Œ๋žœ ์ œ๊ณต: ๋ฌด๋ฃŒ ํ”Œ๋žœ์—์„œ๋„ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ ์ œ๊ณต

2๏ธโƒฃ GitLab์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

 

GitLab์€ ์ฝ”๋“œ ์ €์žฅ์†Œ ์—ญํ• ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ DevOps ์ „์ฒด ๊ณผ์ •์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

 

โœ… 1. ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ

 

โœ” Git ๊ธฐ๋ฐ˜ ์ €์žฅ์†Œ ๊ด€๋ฆฌ

โœ” ๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ ๋ฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ

โœ” Merge Request(=GitHub์˜ Pull Request)

 

โœ… 2. CI/CD (Continuous Integration & Deployment)

 

โœ” GitLab CI/CD ๋‚ด์žฅ

โœ” .gitlab-ci.yml ํŒŒ์ผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ

โœ” ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ์ž๋™ํ™” ์ง€์›

 

โœ… 3. ์ด์Šˆ ํŠธ๋ž˜ํ‚น & ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ

 

โœ” Jira ๊ฐ™์€ ์ด์Šˆ ํŠธ๋ž˜์ปค ๋‚ด์žฅ

โœ” ์นธ๋ฐ˜ ๋ณด๋“œ ์ œ๊ณต

โœ” ํƒœ์Šคํฌ ๊ด€๋ฆฌ ๋ฐ ๋งˆ์ผ์Šคํ†ค ์„ค์ •

 

โœ… 4. ๋ณด์•ˆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ

 

โœ” ๋ธŒ๋žœ์น˜๋ณ„ ์ ‘๊ทผ ์ œ์–ด ๊ฐ€๋Šฅ

โœ” ๋‘ ๋‹จ๊ณ„ ์ธ์ฆ(2FA) ์ง€์›

โœ” ์ฝ”๋“œ ๋ณด์•ˆ ๋ถ„์„

3๏ธโƒฃ GitHub vs GitLab: ๋ญ๊ฐ€ ๋‹ค๋ฅผ๊นŒ?

๊ธฐ๋ŠฅGitHubGitLab

์ฝ”๋“œ ์ €์žฅ์†Œ โœ… ๊ฐ€๋Šฅ โœ… ๊ฐ€๋Šฅ
CI/CD ๋‚ด์žฅ โŒ ๋ณ„๋„ GitHub Actions ์‚ฌ์šฉ โœ… ๊ธฐ๋ณธ ๋‚ด์žฅ
์ž์ฒด ์„œ๋ฒ„ ์šด์˜ โŒ ์ œํ•œ์  โœ… ๊ฐ€๋Šฅ (์˜จํ”„๋ ˆ๋ฏธ์Šค)
์ด์Šˆ ํŠธ๋ž˜ํ‚น โœ… ์ œ๊ณต โœ… ์ œ๊ณต (์นธ๋ฐ˜ ๋ณด๋“œ ํฌํ•จ)
๊ถŒํ•œ ๊ด€๋ฆฌ โœ… ๊ฐ€๋Šฅ (์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ•œ์ •) โœ… ๊ธฐ๋ณธ ์ œ๊ณต

๐Ÿ’ก ๊ฒฐ๋ก :

GitHub: ๊ฐœ๋ฐœ์ž ์ค‘์‹ฌ, ๊นƒํ—ˆ๋ธŒ ์•ก์…˜์„ ํ™œ์šฉํ•œ CI/CD

GitLab: ๊ธฐ์—… & ์กฐ์ง ๋งž์ถคํ˜•, CI/CD๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Œ

4๏ธโƒฃ GitLab์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

 

๐Ÿ“Œ GitLab์˜ ํ•ต์‹ฌ ๊ฐœ๋…

๊ฐœ๋…์„ค๋ช…

ํ”„๋กœ์ ํŠธ (Projects) Git ์ €์žฅ์†Œ, ์ด์Šˆ ํŠธ๋ž˜ํ‚น, CI/CD ๋“ฑ ํฌํ•จ๋œ ๋‹จ์œ„
๋ ˆ์ง€์ŠคํŠธ๋ฆฌ (Registry) Docker ์ปจํ…Œ์ด๋„ˆ ์ €์žฅ์†Œ
Merge Request (MR) GitHub์˜ Pull Request์™€ ๋™์ผํ•œ ๊ฐœ๋…
Runner GitLab CI/CD๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์—”์ง„
Pipeline .gitlab-ci.yml ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰๋˜๋Š” CI/CD ํŒŒ์ดํ”„๋ผ์ธ

5๏ธโƒฃ GitLab ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

 

GitLab์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›น์—์„œ ์ง์ ‘ ๊ฐ€์ž…ํ•˜๊ฑฐ๋‚˜ ์ž์ฒด ์„œ๋ฒ„์— ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿš€ GitLab ํšŒ์›๊ฐ€์ž… ๋ฐ ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ

 

1๏ธโƒฃ GitLab ๊ณต์‹ ์‚ฌ์ดํŠธ ๊ฐ€์ž…

2๏ธโƒฃ ์ƒˆ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

3๏ธโƒฃ ํ”„๋กœ์ ํŠธ๋ฅผ ํผ๋ธ”๋ฆญ/ํ”„๋ผ์ด๋น— ์„ค์ •

4๏ธโƒฃ GitLab์—์„œ ์ œ๊ณตํ•˜๋Š” .gitlab-ci.yml์„ ์ถ”๊ฐ€ํ•˜์—ฌ CI/CD ์‹คํ–‰

6๏ธโƒฃ GitLab CI/CD ํ™œ์šฉํ•˜๊ธฐ

 

GitLab์˜ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๊ฐ€ CI/CD ์ž๋™ํ™”์ด๋‹ค.

 

๐Ÿ“Œ .gitlab-ci.yml: CI/CD ์„ค์ • ํŒŒ์ผ

 

GitLab์˜ CI/CD๋Š” ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— .gitlab-ci.yml ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘๋œ๋‹ค.

 

โœ… ์˜ˆ์ œ: ๊ฐ„๋‹จํ•œ GitLab CI/CD ํŒŒ์ดํ”„๋ผ์ธ

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "๋นŒ๋“œ ์‹คํ–‰ ์ค‘..."
    - npm install

test_job:
  stage: test
  script:
    - echo "ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์ค‘..."
    - npm test

deploy_job:
  stage: deploy
  script:
    - echo "๋ฐฐํฌ ์‹คํ–‰ ์ค‘..."

๐Ÿ’ก ๋‹จ๊ณ„๋ณ„ ์„ค๋ช…

1๏ธโƒฃ build: ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

2๏ธโƒฃ test: ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ ์‹คํ–‰

3๏ธโƒฃ deploy: ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

๐Ÿ›  GitLab Runner๋ž€?

 

GitLab CI/CD๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์„ Runner๋ผ๊ณ  ํ•œ๋‹ค.

โœ” ๋กœ์ปฌ ๋จธ์‹ ์— ์„ค์น˜ ๊ฐ€๋Šฅ

โœ” Docker, Kubernetes์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ

 

๐Ÿ“Œ Runner ์„ค์น˜ (๋กœ์ปฌ)

sudo gitlab-runner register

๐Ÿ’ก Runner๋ฅผ ์„ค์ •ํ•˜๋ฉด, GitLab์ด ์ง์ ‘ CI/CD๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

7๏ธโƒฃ GitLab์˜ ์žฅ์ ๊ณผ ํ•œ๊ณ„

 

๐ŸŽฏ GitLab์˜ ์žฅ์ 

 

โœ… CI/CD ๋‚ด์žฅ: ๋ณ„๋„ ์„ค์ • ์—†์ด ๋ฐ”๋กœ CI/CD ์‚ฌ์šฉ ๊ฐ€๋Šฅ

โœ… ์ž์ฒด ์„œ๋ฒ„ ์šด์˜ ๊ฐ€๋Šฅ: ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์—์„œ ์šด์˜ ๊ฐ€๋Šฅ

โœ… ๊ฐ•๋ ฅํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ: ๊ถŒํ•œ ๊ด€๋ฆฌ, ์ฝ”๋“œ ๋ณด์•ˆ ๋ถ„์„ ์ œ๊ณต

โœ… ํ†ตํ•ฉ DevOps ํ”Œ๋žซํผ: ์ฝ”๋“œ ์ €์žฅ์†Œ + ๋ฐฐํฌ + ์ด์Šˆ ํŠธ๋ž˜ํ‚น๊นŒ์ง€ ๊ฐ€๋Šฅ

 

โš ๏ธ GitLab์˜ ๋‹จ์ 

 

โŒ GitHub๋ณด๋‹ค ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ž‘์Œ

โŒ GitHub์— ๋น„ํ•ด UI๊ฐ€ ๋‹ค์†Œ ๋ฌด๊ฑฐ์›€

โŒ ์ž์ฒด ํ˜ธ์ŠคํŒ…ํ•  ๊ฒฝ์šฐ ๊ด€๋ฆฌ ๋ถ€๋‹ด ์ฆ๊ฐ€

8๏ธโƒฃ ๊ฒฐ๋ก : GitLab์„ ์–ธ์ œ ์จ์•ผ ํ• ๊นŒ?

 

โœ… CI/CD๊ฐ€ ์ค‘์š”ํ•œ ํ”„๋กœ์ ํŠธ: CI/CD๊ฐ€ ๋‚ด์žฅ๋œ GitLab์ด ํ›จ์”ฌ ํšจ์œจ์ 

โœ… ์ž์ฒด ์„œ๋ฒ„์—์„œ Git ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ: GitLab์€ ์˜จํ”„๋ ˆ๋ฏธ์Šค ์„ค์น˜ ๊ฐ€๋Šฅ

โœ… ๊ธฐ์—…/ํŒ€ ๋‹จ์œ„์˜ ํ˜‘์—…: ๋ณด์•ˆ ๊ธฐ๋Šฅ๊ณผ ๊ถŒํ•œ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ ํ•ฉ

 

๐Ÿš€ “GitHub์ด๋ƒ, GitLab์ด๋ƒ?”

๐Ÿ‘‰ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ผ๋ฉด GitHub์ด ๋” ์‰ฝ๋‹ค!

๐Ÿ‘‰ CI/CD + Git ํ†ตํ•ฉ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด GitLab์ด ๊ฐ•๋ ฅํ•œ ์„ ํƒ!

 

๐ŸŒท ์ „์„ค์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ด…์‹œ๋‹น! ๐ŸŒท

728x90
๋ฐ˜์‘ํ˜•