CS๊ณต๋ถ€

SDLC, CI/CD, Docker ๋œป ํ•œ ์ค„ ์ •๋ฆฌ

Rabet 2025. 3. 9. 10:43

 

๐Ÿค SDLC

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ƒ๋ช… ์ฃผ๊ธฐ๋กœ, [๊ณ„ํš, ์ •์˜, ๋””์ž์ธ, ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ]๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š”๊ฒƒ!

 

๐Ÿค CI/CD

์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋ก ํŠธ, ๋ฐฑ์•ค๋“œ์—๊ฒŒ ์ง€์†์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ CI/CD ๋ชฉํ‘œ์ด๋‹ค.

CI : Continuous Integration | ๊ฐœ๋ฐœ์ž๋“ค์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์€ ๋‹จ์œ„๋“ค๋กœ ์ง€์†์ ์ธ ํ†ตํ•ฉ(merge)

CD : Continous Delivery or Deployment | ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ๊นŒ์ง€ ์ž๋™์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ 

 

๐Ÿค CI/CD ๋Œ€ํ‘œ ๋„๊ตฌ 2๊ฐ€์ง€

1. Jenkins

Java Runtime ์œ„์— ๋™์ž‘ํ•˜๋Š” ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ์„ ์ž๋™ํ™”ํ•˜๋Š” ์„œ๋ฒ„๋กœ ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ๊ณต

Groovy๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง„์ž… ์žฅ๋ฒฝ์ด ๋†’์Œ

 

2. GitLab CI/CD

GitLab์€ .gitlab-ci.yml ํŒŒ์ผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ์ •์˜ํ•จ

 

3. Jenkins, GitLab CI/CD ์ฐจ์ด

  GitLab CI/CD Jenkins
์„ค์น˜ GitLab์„ ์„ค์น˜ํ•˜๋ฉด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์„ค์น˜๊ฐ€ ๋ณต์žกํ•˜๊ณ  ํ•„์š”ํ•œ ํ”„๋Ÿฌ๊ทธ์ธ์„ ์ฐพ๋Š”๋ฐ ์˜ค๋ž˜๊ฑธ๋ฆฌ
UI/UX Yaml๊ณผ GitLab CI/CD๋ฌธ๋ฒ• ๊ฐ„๋‹จํ•œ ํŒŒ์ดํ”„๋ผ์ธ GUI ์‚ฌ์šฉ ๊ฐ€๋Šฅ, Groovy, Jenkins ๋ฌธ๋ฒ•์ด ์–ด๋ ค์›€
ํ™•์žฅ์„ฑ Docker ๋Ÿฌ๋„ˆ๋กœ ๊ธฐ๋Šฅ๋“ค ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฐฉ๋Œ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ, ๋„๊ตฌ์™€ ํ†ตํ•ฉ ๊ฐ€๋Šฅ

 

 

๐Ÿค ์ปจํ…Œ์ด๋„ˆ

์„œ๋ฒ„(์†Œํ”„ํŠธ์›จ์–ด+ํ•˜๋“œ์›จ์–ด)๋ฅผ VM๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ

 

- VM๊ณผ ์ปจํ…Œ์ด๋„ˆ์˜ ์ฐจ์ด

ํŠน์„ฑ VM ์ปจํ…Œ์ด๋„ˆ
๊ตฌ์„ฑ์š”์†Œ Hypervisor, VM ๋‚ด ์šด์˜์ฒด์ œ(GuesetOS) docker, kubernetes, ํ˜ธ์ŠคํŠธ ์šด์˜์ฒด์ œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
์šด์˜์ฒด์ œ Linux, Windows ๋“ฑ ์—ฌ๋Ÿฌ ์šด์˜์ฒด์ œ ์‹คํ–‰ ๊ฐ€๋Šฅ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ณต์œ , ๋ณดํ†ต OpenJDK ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ
์žฅ์  ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์šด์˜์ฒด ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ฑฑ์ •์—†์ด ๋ฐฐํฌ ๊ฐ€๋Šฅ

 

๐Ÿค ๋„์ปค

์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

 

๐Ÿค ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ์— ์žˆ๋Š” ๋„์ปค๋“ค์—๊ฒŒ ์ง€์‹œํ•˜๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ