Study: DeveloperTools(DevTool)

[DevOps] 기업에 CI/CDκ°€ ν•„μš”ν•œ 10κ°€μ§€ 이유

DrawingProcess 2023. 2. 28. 16:30
λ°˜μ‘ν˜•
πŸ’‘ λ³Έ λ¬Έμ„œλŠ” '기업에 CI/CDκ°€ ν•„μš”ν•œ 10κ°€μ§€ μ΄μœ 'λΌλŠ” κΈ€μ˜ λ‚΄μš©μ΄ μ’‹μ•„ 슀크랩 ν•΄μ˜¨ κΈ€μž…λ‹ˆλ‹€.
ν•΄λ‹Ή λ‚΄μš©μ€ κΈ°μ—…μ—μ„œ CI/CDλ₯Ό μ‚¬μš©ν•˜λŠ” 이유 및 μž₯점에 λŒ€ν•΄ μ •λ¦¬λ˜μ–΄ μžˆμœΌλ‹ˆ μ°Έκ³ ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

μ΄μ œλŠ” 기업이 μ œκ³΅ν•˜λŠ” λͺ¨λ“  μ œν’ˆ, μ„œλΉ„μŠ€μ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 뢄리할 수 μ—†λŠ” μ‹œλŒ€μ΄λ‹€. κ²½μŸμ—…μ²΄μ™€ 고객듀, 투자자 및 직원듀 λͺ¨λ‘ νšŒμ‚¬μ—μ„œ λ§Œλ“  μ œν’ˆμ— μ •κΈ°μ μœΌλ‘œ μ—…λ°μ΄νŠΈλ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μš”κ΅¬ν•˜κ³  μžˆλ‹€.

λ”°λΌμ„œ μ΄λŸ¬ν•œ ν˜„μ‹€(및 데브옡슀(DevOps))을 μ§μ‹œν•˜κ³ , κ°€λŠ₯ν•œ κ°€μž₯ 효율적인 지속적인 톡합 및 제곡 νŒŒμ΄ν”„λΌμΈμ„ λ§Œλ“œλŠ” 데 νˆ¬μžν•΄μ•Ό ν•œλ‹€. μ΄λŸ¬ν•œ μ „λž΅μ„ κ²½μ˜μ§„μ—κ²Œ μ–΄λ–»κ²Œ 섀득해야 ν• κΉŒ? λ¨Όμ € κ²½μŸμ‚¬λ₯Ό μ–ΈκΈ‰ν•˜λŠ” κ²ƒμœΌλ‘œ μ‹œμž‘ν•  수 μžˆλ‹€. κ²½μŸμ‚¬λ“€μ€ 이미 지속적인 톡합 및 지속적인 제곡(CI/CD: Continuous Integration/Continous Delivery)을 ν™œμš©ν•˜κ³  μžˆμ„ κ°€λŠ₯성이 λ†’λ‹€. λ§Œμ•½ κ·Έλž˜λ„ 더 ꡬ체적으둜 섀득할 μ΄μœ κ°€ ν•„μš”ν•˜λ‹€λ©΄, 기업에 CI/CDκ°€ ν•„μš”ν•œ 10κ°€μ§€ 이유λ₯Ό μ œμ‹œν•˜λ©΄ λœλ‹€.

1. CI/CDλŠ” 무엇인가?

CI/CDλŠ” μžλ™ν™” κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ μ½”λ“œ 개발 및 μ œκ³΅μ„ 획기적으둜 κ°„μ†Œν™”ν•  수 μžˆλŠ” 2λ‹¨κ³„μ˜ ν”„λ‘œμ„ΈμŠ€λ‹€. λ¨Όμ € CIλŠ” μ†ŒμŠ€ μ½”λ“œ 톡합 및 버전 관리 λ“±μ˜ 개발자 μž‘μ—…μ„ 보닀 효율적으둜 μˆ˜ν–‰ν•  수 μžˆλ„λ‘ ν•¨μœΌλ‘œμ¨ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 보닀 μ‹ μ†ν•˜κ²Œ μš΄μ˜ν™˜κ²½μ— λ°°μΉ˜ν•  수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” 사전 단계닀. μ—¬λŸ¬ κ°œλ°œμžκ°€ λ™μ‹œμ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 κ΄€λ ¨ 코딩을 ν•˜λ”λΌλ„, μƒˆλ‘œμš΄ μ½”λ“œ λ³€κ²½ 사항듀이 λΉŒλ“œ(컴파일) 및 ν…ŒμŠ€νŠΈλ˜μ–΄ μ •κΈ°μ μœΌλ‘œ 곡유 리포지토리(정보 μ €μž₯μ†Œ)에 ν†΅ν•©λœλ‹€. λ”°λΌμ„œ λͺ¨λ“  개발이 μ’…λ£Œλœ μ‹œμ λΆ€ν„° μ½”λ“œ ν’ˆμ§ˆ 관리λ₯Ό μ‹œμž‘ν–ˆλ˜ κΈ°μ‘΄ λ°©μ‹μ˜ 단점(ν…ŒμŠ€νŠΈ μ‹œ μ˜ˆμƒμΉ˜ λͺ»ν•œ 좩돌 λ°œμƒ)이 ν•΄μ†Œλœλ‹€.

CI의 λ‹€μŒ μž‘μ—…μœΌλ‘œ CDλŠ” μ†Œν”„νŠΈμ›¨μ–΄ ν…ŒμŠ€νŠΈ 및 배포λ₯Ό μžλ™ν™”ν•œλ‹€. μ—„λ°€νžˆ κ΅¬λΆ„ν•˜λ©΄ 이 CDλŠ” 2κ°€μ§€λ‘œ λ‚˜λ‰œλ‹€. λ¨Όμ € 지속적인 제곡(Continuous Delivery)을 톡해 CIμ—μ„œ μœ νš¨μ„± 검증이 λλ‚œ μ½”λ“œλ“€μ„ μ €μž₯μ†Œμ— μžλ™μœΌλ‘œ 릴리슀 ν•œλ‹€. 이λ₯Ό 톡해 μš΄μ˜νŒ€μ€ λ³€κ²½λœ μ½”λ“œλ“€μ„ μ €μž₯μ†Œμ—μ„œ κ°€μ Έμ™€μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜(ν”„λ‘œλ•μ…˜ ν™˜κ²½)에 μˆ˜λ™μœΌλ‘œ 배포할 수 있게 λœλ‹€. κ°œλ°œνŒ€κ³Ό μš΄μ˜νŒ€ 사이에 μ˜μ‚¬μ†Œν†΅μ΄ μ’€ 더 μ›ν™œν•΄μ§€λŠ” 것이 μž₯점이닀.

μ΅œμ’… λ‹¨κ³„λŠ” 지속적인 배포(Continuous Deployment)λ‹€. 즉, μ†Œν”„νŠΈμ›¨μ–΄μ˜ λ³€κ²½ 사항이 ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜μžλ§ˆμž μžλ™μœΌλ‘œ μ΅œμ’… μ‚¬μš©μžμ—κ²Œ λ°°ν¬λœλ‹€. λ”°λΌμ„œ μ‚¬μš©μžμ˜ ν”Όλ“œλ°±λ„ 즉각 λ°˜μ˜ν•˜κΈ° μ‰¬μ›Œμ§„λ‹€.

ν•˜λ‚˜λ‘œ 이어진 CI/CD νŒŒμ΄ν”„λΌμΈμ„ μƒμƒν•˜λ©΄ 쉽닀. κ°œλ°œμžλ“€μ΄ μ½”λ“œλ₯Ό μ§€μ†μ μœΌλ‘œ λΉŒλ“œ 및 ν…ŒμŠ€νŠΈλ₯Ό ν•˜λ©°, κ²€μ¦λœ μ†ŒμŠ€λŠ” μ¦‰μ‹œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ μ‚¬μš©μžμ—κ²Œ 배포가 λ˜λŠ” 것이닀. 이처럼 CI/CDκ°€ κ²°ν•©λ˜λ©΄, κ°•λ ₯ν•œ μ΅œμ‹  μ†Œν”„νŠΈμ›¨μ–΄ 개발 엔진이 되며, μ΄λŠ” κΈ°μ—…λ“€μ—κ²Œ μ—„μ²­λ‚œ 이점을 μ œκ³΅ν•œλ‹€.

2. CI/CDλŠ” λΉ„μ¦ˆλ‹ˆμŠ€μ— μ–΄λ– ν•œ 이점을 μ œκ³΅ν•˜λŠ”κ°€?

CI/CDλŠ” λΉ„μ¦ˆλ‹ˆμŠ€μ— μˆ˜λ§Žμ€ 이점을 μ œκ³΅ν•œλ‹€. CI/CDλ₯Ό 채택해야 ν•˜λŠ” 10κ°€μ§€ μ΄μœ λŠ” λ‹€μŒκ³Ό κ°™λ‹€.

νƒμ›”ν•œ μ½”λ“œ ν’ˆμ§ˆ 보μž₯

κΉƒλž©μ˜ 2021λ…„ κΈ€λ‘œλ²Œ λ°λΈŒμ„Ήμ˜΅μŠ€ 섀문쑰사(Global DevSecOps Survey) μ°Έκ°€μžλ“€μ€ 데브옡슀λ₯Ό μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” κ°€μž₯ 큰 μ΄μœ λŠ” μ½”λ“œ ν’ˆμ§ˆμ„ μœ„ν•œ 것이며, 데브옡슀λ₯Ό μœ„ν•΄ νŒ€μ— κ°€μž₯ ν•„μš”ν•œ ν”„λ‘œμ„ΈμŠ€λŠ” CI/CD라고 μ‘λ‹΅ν–ˆλ‹€. CI/CD νŒŒμ΄ν”„λΌμΈμ€ ν…ŒμŠ€νŠΈ μžλ™ν™”λ₯Ό μ œκ³΅ν•˜κΈ° λ•Œλ¬Έμ— κ°œλ°œμžλ“€μ€ 거의 μ‹€μ‹œκ°„μœΌλ‘œ μ½”λ“œ 문제λ₯Ό νŒŒμ•…ν•  수 μžˆλ‹€. μ΄λŸ¬ν•œ ‘μ‹ μ†ν•œ 였λ₯˜ ν•΄κ²°(Failing Fast)’ κ°œλ…μ„ 톡해 νŒ€μ€ 버그가 μžˆλŠ” μ½”λ“œλ‘œ 인해 μ‹œκ°„μ΄λ‚˜ μžμ›μ„ λ‚­λΉ„ν•˜μ§€ μ•Šμ•„λ„ 되고, κ°œλ°œμžλŠ” λ‹€λ₯Έ ν”„λ‘œμ νŠΈλ₯Ό ꡬ동할 λ•Œ λμ—†λŠ” ‘μˆ˜μ •’ μš”μ²­μ— μ‹œλ‹¬λ¦¬μ§€ μ•Šμ•„λ„ λœλ‹€. μ‹œκ°„κ³Ό λΉ„μš©μ„ μ ˆμ•½ν•  수 있으며, μ˜€λ‘œμ§€ μ½”λ”©μ—λ§Œ 집쀑할 수 μžˆλ‹€.

릴리슀 속도λ₯Ό λ‹¨μΆ•ν•˜μ—¬ 더 μ‹ μ†ν•˜κ²Œ 제곡

CI/CD 이점에 λŒ€ν•΄ 더 κΆκΈˆν•œ μ‚¬λžŒμ΄λΌλ©΄ κΈ€λ‘œλ²Œ κΈˆμœ΅νšŒμ‚¬μΈ κ³¨λ“œλ§Œμ‚­μŠ€(Goldman Sachs)의 성곡사둀λ₯Ό μ‚΄νŽ΄λ³΄λŠ” 것이 μ’‹λ‹€. 이 νšŒμ‚¬μ˜ 기술 λΆ€μ„œλŠ” 2μ£Ό λ§ˆλ‹€ 1개의 μ½”λ“œλ₯Ό λΉŒλ“œν–ˆμ§€λ§Œ, 이후 ν•˜λ£¨ 1,000개 μ΄μƒμœΌλ‘œ λŠ˜μ–΄λ‚¬λ‹€. 톡합 CI/CD νŒŒμ΄ν”„λΌμΈμ€ μ†Œν”„νŠΈμ›¨μ–΄ 릴리슀 속도λ₯Ό λ†’μ΄λŠ” 데 μžˆμ–΄ 터보 엔진과도 κ°™λ‹€. μ½”λ“œλ₯Ό 더 빨리 λ¦΄λ¦¬μŠ€ν•˜κ³ , 더 λ§Žμ€ μƒˆλ‘œμš΄ μ½”λ“œλ₯Ό κ°œλ°œν•  수 있게 됨에 따라 끝없이 λ¦΄λ¦¬μŠ€κ°€ κ°€λŠ₯ν•˜λ‹€. μ„±κ³΅μ μœΌλ‘œ CI/CD νŒŒμ΄ν”„λΌμΈμ΄ μž‘λ™ν•˜λ©΄, κ²°κ΅­ κΈ°μ—… μ°¨μ›μ—μ„œλ„ κ³ λΉ„μš©μ˜ 개발자 λ¦¬μ†ŒμŠ€λ₯Ό μ΅œλŒ€ν•œ ν™œμš©ν•  수 μžˆμ–΄ 이득을 얻을 수 μžˆλ‹€.

CI/CD νŒŒμ΄ν”„λΌμΈ: μžλ™ν™”λ‘œ λΉ„μš© 절감

μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ„ΈμŠ€μ— μ‚¬λžŒμ˜ κ°œμž…μ΄ ν•„μš” μ—†κ²Œ 되면, μ‹œκ°„κ³Ό λΉ„μš©μ„ μ ˆκ°ν•  수 μžˆλ‹€. μ΄λŸ¬ν•œ 이유둜 성곡적인 데브옡슀 μˆ˜ν–‰μ‚¬λ‘€μ˜ ν† λŒ€λŠ” λ°”λ‘œ μžλ™ν™”λ‹€. CI/CDλŠ” ν•Έλ“œμ˜€ν”„(μž‘μ—…μž λ³€κ²½: 개발 ν˜‘μ—… 쀑 μ–΄λ–€ μ‚¬λžŒμ΄ λ‹€λ₯Έ λ™λ£Œμ—κ²Œ λ‹€μ–‘ν•œ 업무 κ΄€λ ¨ 정보 λ˜λŠ” μ±…μž„μ„ μ΄μ „ν•˜λŠ” 것. 예λ₯Ό λ“€μ–΄, 고객이 μ˜μ—… μ‚¬μ›μ—κ²Œ λ‹ˆμ¦ˆλ₯Ό μ •ν™•νžˆ μ–ΈκΈ‰ν•œλ‹€. μ˜μ—… 사원은 이λ₯Ό κ°œλ°œμžμ—κ²Œ, κ°œλ°œμžλŠ” ν…ŒμŠ€ν„°μ—κ²Œ, ν…ŒμŠ€ν„°λŠ” μš΄μ˜νŒ€μ—κ²Œ μ•Œλ¦¬κ²Œ λ˜λŠ” 데 각 λ‹¨κ³„λ§ˆλ‹€ μ›λž˜μ˜ 정보가 μ†μ‹€λœλ‹€.), μ†ŒμŠ€ μ½”λ“œ 관리, λ²„μ „μ œμ–΄ μ‹œμŠ€ν…œ 및 배포 λ©”μ»€λ‹ˆμ¦˜μ€ λ¬Όλ‘ , λ§Žμ€ ν…ŒμŠ€νŠΈ κΈ°λŠ₯을 μžλ™ν™”ν•œλ‹€.

이 μ€‘μ—μ„œλ„ ν…ŒμŠ€νŠΈκ°€ κ°€μž₯ μ€‘μš”ν•˜λ‹€. 2021λ…„ κΉƒλž© 섀문쑰사에 λ”°λ₯΄λ©΄, ν…ŒμŠ€νŠΈκ°€ 릴리슀 μ§€μ—°μ˜ κ°€μž₯ 큰 μ›μΈμœΌλ‘œ ν™•μΈλ˜μ—ˆλ‹€. μ§€μ—°λœ λ¦΄λ¦¬μŠ€λŠ” λΉ„μš©κ³Ό λΈŒλžœλ”©, 홍보 및 ν‰νŒ λ“±μ˜ μΈ‘λ©΄μ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€μ— 영ν–₯을 λ―ΈμΉ  뿐만 μ•„λ‹ˆλΌ μ‹ μ†ν•œ μ‹œμž₯ μΆœμ‹œμ— μ˜μ‘΄ν•˜λŠ” κΈ°μ—…μ—κ²ŒλŠ” 치λͺ…적이닀. μ „ν†΅μ μœΌλ‘œ μ†Œν”„νŠΈμ›¨μ–΄ ν…ŒμŠ€νŠΈλŠ” μˆ˜λ™μœΌλ‘œ μ§„ν–‰λ˜μ—ˆκ³ , μ—„μ²­λ‚˜κ²Œ λ§Žμ€ μ‹œκ°„μ΄ μ†Œμš”λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 기업듀은 1년에 ν•œλ‘ 번 μ •λ„λ§Œ μƒˆλ‘œμš΄ μ½”λ“œλ₯Ό 릴리슀 ν•˜λŠ” κ²½μš°κ°€ λ§Žμ•˜λ‹€. 반면 μ˜€λŠ˜λ‚  기업듀은 μƒμ‹œ λ¦΄λ¦¬μŠ€κ°€ κ°€λŠ₯ν•΄μ•Ό ν•˜λ©°, 이λ₯Ό μœ„ν•΄μ„œλŠ” μžλ™ν™”λœ μ†Œν”„νŠΈμ›¨μ–΄ ν…ŒμŠ€νŠΈκ°€ 맀우 μ€‘μš”ν•˜λ‹€.

였λ₯˜ 격리

μ†Œν”„νŠΈμ›¨μ–΄ 개발 λΆ„μ•Όμ—μ„œ 데브옡슀 및 CI/CDκ°€ μ£Όλͺ©λ°›κΈ° μ „μ—λŠ”, κ°œλ°œνŒ€μ΄ μ½”λ“œμ— λ¬Έμ œκ°€ μžˆλ‹€λŠ” 것을 μ•Œμ•„λ„ λ¬Έμ œκ°€ λ°œμƒν•œ μ •ν™•ν•œ μœ„μΉ˜λ₯Ό νŒŒμ•…ν•˜λŠ” λ°λŠ” 어렀움을 κ²ͺμ—ˆλ‹€. 그런데 CI/CD와 μžλ™ν™”λœ ν…ŒμŠ€νŠΈλ‘œ 인해 상황이 λ‹¬λΌμ‘Œλ‹€. κ°œλ°œμžλŠ” μ½”λ“œ 였λ₯˜λ₯Ό μ‰½κ²Œ μ‹λ³„ν•œ λ‹€μŒ, 이λ₯Ό κ²©λ¦¬ν•¨μœΌλ‘œμ¨ 생산성을 크게 ν–₯μƒμ‹œν‚¬ 수 있게 λ˜μ—ˆλ‹€.

κ°„μ†Œν™”λœ λ‘€λ°±(이전 버전 되돌리기)

κ°œλ°œμžλŠ” CI/CD νŒŒμ΄ν”„λΌμΈμ„ 톡해 였λ₯˜λ₯Ό μ‹ μ†ν•˜κ²Œ ν•΄κ²°ν•˜κ³ , 훨씬 더 λΉ λ₯΄κ²Œ 볡ꡬ할 수 μžˆλ‹€. μ΄λŠ” μ½”λ“œλ₯Ό μš΄μ˜ν™˜κ²½μœΌλ‘œ μ „ν™˜ν•˜κ³ , λ¬Έμ œκ°€ 있으면 λ‘€λ°±ν•˜λ©΄ λ˜λŠ” κ°„λ‹¨ν•œ ν”„λ‘œμ„ΈμŠ€μ΄λ‹€. μ½”λ“œλ₯Ό μ‰½κ²Œ λ‘€λ°±ν•  수 μžˆλŠ” κΈ°λŠ₯은 νŒ€μ˜ μ‹œκ°„κ³Ό μ—λ„ˆμ§€, λ¦¬μ†ŒμŠ€λ₯Ό μ ˆμ•½ν•˜κ³ , λ¬Έμ œκ°€ μžˆλŠ” μ½”λ“œλ₯Ό 보닀 μ‹ μ†ν•˜κ²Œ μˆ˜μ •ν•  수 μžˆλ„λ‘ ν•΄μ€€λ‹€.

지속적인 ν”Όλ“œλ°±

데브옡슀 ν”Œλž«νΌμ˜ μΌλΆ€λ‘œ λ™μž‘ν•˜λŠ” 톡합 CI/CD ν”„λ‘œμ„ΈμŠ€λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ μ΄ν•΄κ΄€κ³„μžλ“€μ„ λΉ„λ‘―ν•΄ νŒ€μ˜ λͺ¨λ“  μ‚¬λžŒλ“€μ΄ 무슨 일이 μΌμ–΄λ‚˜κ³ , μ–΄λ””μ—μ„œ μΌμ–΄λ‚˜λŠ”μ§€, 그리고 무엇이 잘λͺ»λ˜μ—ˆλŠ”μ§€ 확인할 수 μžˆλŠ” 방법을 μ œκ³΅ν•œλ‹€. 이것은 λ‹¨μˆœν•œ κ²ƒμ²˜λŸΌ 듀릴 수 μžˆμ§€λ§Œ, μ‹€μ œλ‘œ μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œμ˜ μ‹±κΈ€ μœˆλ„μš°(ν˜„ν™©μ„ ν•œ κ³³μ—μ„œ νŒŒμ•…ν•˜λŠ” 방식)λŠ” 거의 ν˜μ‹ μ μ΄λΌ ν•  수 μžˆλ‹€.

κ³Όκ±°μ—λŠ” μ‚¬μš©ν•˜λŠ” 툴이 λ„ˆλ¬΄ λ§Žμ•˜κΈ° λ•Œλ¬Έμ— ν”„λ‘œμ νŠΈ κ΄€λ¦¬μžκ°€ μ—¬λŸ¬ 뢀뢄듀을 μ‚΄νŽ΄λ΄μ•Ό ν–ˆκ³ , μ—¬λŸ¬ μ‚¬λžŒλ“€μ—κ²Œ μƒνƒœ μ—…λ°μ΄νŠΈλ₯Ό μš”μ²­ν•΄μ•Ό ν–ˆλ‹€. μ΄λŸ¬ν•œ μƒν™©μ—μ„œ κ°œλ°œμžμ™€ 운영 전문가듀은 더 λ‚˜μ€ κ²°κ³Όλ₯Ό μ–»μ§€ λͺ»ν–ˆκ³ , 특히 λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄, μ΄λŠ” μ‹œκ°„κ³Ό λ¦¬μ†ŒμŠ€ λ‚­λΉ„λ₯Ό μ΄ˆλž˜ν–ˆλ‹€.

졜적의 투λͺ…μ„±κ³Ό μ±…μž„μ„±

CI/CD νŒŒμ΄ν”„λΌμΈμ€ 지속적인 ν”Όλ“œλ°±μ„ 톡해 전체 μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ„ΈμŠ€λ₯Ό λΉ„μ¦ˆλ‹ˆμŠ€ μΈ‘λ©΄μ—μ„œ μ™„μ „νžˆ 투λͺ…ν•˜κ²Œ μ²˜λ¦¬ν•œλ‹€. μ œν’ˆ κ΄€λ¦¬μžλŠ” ν”„λ‘œμ νŠΈ μƒνƒœλ₯Ό ν•œ λˆˆμ— ν™•μΈν•˜κ³ , ν•„μš”μ— 따라 μ±…μž„ μ†Œμž¬λ₯Ό 좔적할 수 μžˆλ‹€.

MTTR(Mean Time to Resolution, 평균 ν•΄κ²° μ‹œκ°„) κ°œμ„ 

CI/CD νŒŒμ΄ν”„λΌμΈμ΄ μ œκ³΅ν•˜λŠ” κ°€μ‹œμ„± 덕뢄에 데브옡슀 νŒ€μ€ 문제λ₯Ό μ‹ μ†ν•˜κ²Œ νŒŒμ•…ν•˜κ³ , λΉ λ₯΄κ²Œ ν•΄κ²°ν•  수 μžˆλ‹€. 문제λ₯Ό μ‹ μ†ν•˜κ²Œ ν•΄κ²°ν•˜λŠ” λŠ₯λ ₯은 핡심 개발 μ§€ν‘œμΈ MTTR(Mean Time to Resolution)의 μ£Όμš” μš”μ†Œμ΄λ‹€. MTTR이 μ’‹μ„μˆ˜λ‘ 데브옡슀 νŒ€μ€ λ”μš± 효율적으둜 μž‘μ—…ν•˜κ³ , 더 빨리 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μΆœμ‹œν•  수 있으며, μ΄λŸ¬ν•œ MTTR은 λΉ„μ¦ˆλ‹ˆμŠ€ μˆ˜μ΅μ— 직접적인 영ν–₯을 λ―ΈμΉœλ‹€.

Metrics(μ§€ν‘œ) 데이터 λͺ¨λ‹ˆν„°λ§

νŒ€κ³Ό λΉ„μ¦ˆλ‹ˆμŠ€ μΈ‘λ©΄μ—μ„œλŠ” μ½”λ“œκ°€ μ‹€μ œ ν™˜κ²½μ—μ„œ μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”μ§€ μ•Œμ•„μ•Ό ν•˜μ§€λ§Œ, κΈ°μ‘΄ μ†Œν”„νŠΈμ›¨μ–΄ 개발 μˆ˜ν–‰μ‚¬λ‘€μ—μ„œλŠ” 이λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  λ§Œν•œ 톡계 μ§€ν‘œκ°€ μ—†λŠ” κ²½μš°κ°€ λ§Žμ•˜λ‹€.(예λ₯Ό λ“€μ–΄ 데브옡슀 ν˜„ν™©μ„ νŒŒμ•…ν•˜λŠ” 데 도움을 μ£ΌλŠ” μ§€ν‘œμ—λŠ” λ¦¬λ“œ νƒ€μž„, 배포 λΉˆλ„, λ³€κ²½ μ‹€νŒ¨μœ¨, 평균 볡ꡬ μ‹œκ°„ 등이 μžˆλ‹€.) 이상적인 ν™˜κ²½μ΄λΌλ©΄ νŒ€μ΄ λ¨Όμ € μ½”λ“œ 문제λ₯Ό νŒŒμ•…ν•˜κ³ , μ΅œμ’… μ‚¬μš©μžκ°€ 이λ₯Ό μΈμ‹ν•˜κΈ° 훨씬 전에 λ‘€λ°±ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€. CI/CD νŒŒμ΄ν”„λΌμΈμ€ λ‹€μ–‘ν•œ μ§€ν‘œμ— λŒ€ν•œ 지속적인 ν”Όλ“œλ°±μ„ μ œκ³΅ν•˜μ—¬ 이상적인 ν™˜κ²½μ„ μ‹€ν˜„ν•  수 μžˆλ‹€. μ œλŒ€λ‘œ λ™μž‘ν•˜μ§€ μ•ŠλŠ” 버그가 λ§Žμ€ μ½”λ“œ 및 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ›ν•˜λŠ” 기업은 μ—†κΈ° λ•Œλ¬Έμ— μ΄λŸ¬ν•œ μ§€ν‘œ 데이터에 λŒ€ν•œ μ•‘μ„ΈμŠ€λŠ” λ‹¨μˆœνžˆ μ‹œκ°„λ§Œ μ ˆμ•½ν•˜λŠ”λ° κ·ΈμΉ˜μ§€ μ•ŠλŠ”λ‹€.

백둜그의 μ€‘μš”ν•˜μ§€ μ•Šμ€ 결함 κ°μ†Œ

CI/CDλŠ” μ‹œκ°„κ³Ό λΉ„μš©μ„ μ ˆκ°μ‹œμΌœμ€€λ‹€. 이에 κ°œλ°œμžλŠ” μ‹œκ°„μ΄ λΆ€μ‘±ν•˜μ—¬ κ·Έλ™μ•ˆ μˆ˜μ •ν•  수 μ—†μ—ˆλ˜ 였래된 μ½”λ“œλ“€μ„ 더 λͺ…ν™•ν•˜κ³  효율적으둜 λ§Œλ“œλŠ” μž‘μ—…μ΄ κ°€λŠ₯ν•˜κ²Œ 됐닀. 즉 κ°œλ°œμžλ“€μ΄ 기쑴에 μ²˜λ¦¬ν•˜κΈ° κ³€λž€ν–ˆλ˜ 백둜그(κ²°κ΅­ λˆ„κ°€ μ‹œκ°„μ„ λ”°λ‘œ λ‚Ό 수 μžˆλŠ” κ°€μ˜ 이유둜 백둜그라고 λΆ€λ₯Έλ‹€.) 및 μ‚¬μ†Œν•œ 결함에 λŒ€ν•΄μ„œλ„ μž‘μ—…ν•  수 μžˆλ‹€λŠ” μ•„μ΄λ””μ–΄λŠ” λ°λΈŒμ˜΅μŠ€μ™€ CI/CDκ°€ νŒ€μ— κ°€μ Έμ˜¨ κ²Œμž„ 체인저이닀.

IT κΈ°μ—… κ³ κ°μ‚¬μ˜ κ²½μ˜μ§„λ“€μ΄ λ§Žμ΄λ“€ κΆκΈˆν•΄ν•˜λŠ” λΆ€λΆ„ 쀑 ν•˜λ‚˜κ°€ λ°”λ‘œ CI/CD의 μ€‘μš”μ„±μ΄λ‹€. CI/CDλ₯Ό λ„μž…ν•˜κ²Œ 되면 κ°œλ°œλΆ€ν„° μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ°°ν¬κΉŒμ§€μ˜ 과정이 μ‹ μ†ν•˜λ‹€. μ½”λ“œ λΉŒλ“œμ˜ νšŸμˆ˜λ„ λ§Žμ€ 데 λ™μ‹œμ— λ³΄μ•ˆ ν…ŒμŠ€νŒ…κ³Ό μ‚¬μš©μžμ˜ ν”Όλ“œλ°±κΉŒμ§€ λ°˜μ˜λœλ‹€.

λ˜λ‹€λ₯Έ μž₯점도 μ†Œκ°œν•˜λ©° 이 글을 마치고자 ν•œλ‹€. 졜근 java의 λΉˆν‹ˆμ„ λ…Έλ €μ„œ Log4jλΌλŠ” 컴퓨터 역사상 μ΅œμ•…μ˜ 취약점 곡격이 λ°œμƒν•œ 적이 μžˆλ‹€. CI/CD νŒŒμ΄ν”„λΌμΈμ΄ μ—†λŠ” 기업듀은 ‘μ–΄λŠ 지점’이 곡격 λ‹Ήν–ˆλŠ” μ§€ νŒŒμ•…ν•˜κΈ°λ„ 쉽지 μ•Šμ•˜λ˜ λ°˜λ©΄μ—, 미리 κ΅¬μΆ•ν–ˆλ˜ κΈ°μ—…λ“€μ˜ 경우 μ‹ μ†ν•˜κ²Œ νŒŒμ•… ν›„, 쒅속성(Dependency) ν•­λͺ©μ˜ 취약점에 λΉ λ₯΄κ²Œ λŒ€μ‘μ΄ κ°€λŠ₯ν–ˆλ‹€. 정상적인 개발 사이클이 ν•­μ‹œ μœ μ§€κ°€ κ°€λŠ₯ν•˜λ‹€.

μ°Έκ³ 

λ°˜μ‘ν˜•