Your browser does not support JavaScript!

소프트웨어 개발 프로세스의 기초부터 적용 사례까지

일반 리포트 2025년 03월 27일
goover
  • 소프트웨어 개발 프로세스는 소프트웨어의 설계, 구현, 테스트 및 유지 관리 등의 전 과정에서 체계적이고 효과적인 접근을 필요로 합니다. 본 리포트에서는 소프트웨어 개발의 기본 개념과 주요 단계, 대표적인 방법론까지 폭넓게 다루고 있습니다. 독자는 이 과정을 통해 소프트웨어 개발에서 중요한 요소들을 이해하고 각 단계에서 적용할 수 있는 실질적인 전략을 학습할 수 있습니다. 특히, 소프트웨어는 사용자 요구를 충족시키기 위해 다양한 특성과 기능을 필요로 하며, 이러한 요구에 맞는 소프트웨어 개발의 중요성과 그 과정이 강조됩니다.

  • 핵심적으로, 소프트웨어 개발 프로세스는 요구사항 분석, 설계, 구현, 테스트 및 유지보수라는 주요 단계로 이루어져 있으며, 각 단계의 명확한 이해는 개발 품질을 극대화하는 데 필수적입니다. 특히 애자일 및 DevOps 접근법과 같은 현대적인 개발 방법론은 빠른 변화에 유연하게 대응하고, 고객의 의견을 적극 반영하는 데 중점을 둡니다. 이러한 다각적인 관점을 통해 독자는 각 소프트웨어 프로젝트에 적합한 방법론을 선택하고 적용할 수 있는 지식을 갖추게 될 것입니다.

  • 더불어, 본 리포트는 현업에서의 실제 사례를 통해 이론과 실제 사이의 중요한 연결고리를 제공합니다. 이 사례들은 다양한 환경에서의 소프트웨어 개발이 어떻게 수행되는지를 보여주며, 독자가 이를 바탕으로 현업에서 유사한 상황에 대처할 수 있는 경험을 제공하고자 합니다. 요약하자면, 이 리포트는 소프트웨어 개발 프로세스를 폭넓게 이해하게 하여 독자들이 효과적이고 체계적인 개발 전략을 구상하는 데 필요한 도움을 줄 것입니다.

소프트웨어 개발 프로세스의 이해

  • 소프트웨어 개발이란 무엇인가요?

  • 소프트웨어 개발은 컴퓨터 프로그램이나 애플리케이션을 설계, 구현, 테스트 및 유지 관리하는 과정을 포함합니다. 소프트웨어는 하드웨어와 독립적으로 작동하는 지침의 집합으로, 일반적으로 사용자 요구를 충족시키기 위해 주어진 문제를 해결하기 목표로 합니다. 대부분의 소프트웨어는 시스템 소프트웨어, 프로그래밍 소프트웨어, 애플리케이션 소프트웨어 및 임베디드 소프트웨어의 네 가지 주요 유형으로 분류됩니다. 시스템 소프트웨어는 운영 체제나 하드웨어 관리와 같은 컴퓨터의 기본 기능을 제공합니다. 프로그래밍 소프트웨어는 개발자에게 코드 작성 도구를 제공하며, 애플리케이션 소프트웨어는 특정 사용자 작업을 지원하는 프로그램입니다. 마지막으로 임베디드 소프트웨어는 특정 기능을 수행하는 기계 및 장비를 제어하기 위해 설계됩니다. 이러한 다양한 소프트웨어 유형은 각기 다른 요구를 충족시키기 위해 설계되었으며, 소프트웨어 개발 과정에서 각 유형에 맞는 접근 방식을 취해야 합니다.

  • 소프트웨어 개발 프로세스 모델의 정의

  • 소프트웨어 개발 프로세스 모델은 소프트웨어 개발을 위한 필수 절차와 단계들을 구조화하여 제시하는 체계입니다. 이 모델은 소프트웨어 개발의 전 과정을 세분화하여 관리 가능하도록 하며, 각 단계에서 수행해야 할 작업과 산출물을 명확히 합니다. 주로 사용되는 프로세스 모델에는 폭포수 모델, V 모델, 프로토타입 모델, 나선형 모델, 애자일 모델 등이 있습니다. 1. **폭포수 모델**: 각 단계가 순차적으로 진행되는 전통적인 모델입니다. 각 단계는 이전 단계의 결과물에 기반하여 진행되며, 요구사항이 명확하고 변화가 적은 프로젝트에 적합합니다. 다만, 요구사항이 변경될 경우 대처가 어려운 단점이 있습니다. 2. **V 모델**: 폭포수 모델의 변형이며 테스트 단계에 중점을 두어 각 개발 단계에 대한 검증을 강조합니다. 이를 통해 오류를 사전에 방지할 수 있는 장점이 있습니다. 3. **진화적 프로세스 모델**: 프로토타입 모델과 나선형 모델이 포함됩니다. 이 모델들은 프로세스 중 발생할 수 있는 위험을 최소화하고 변화하는 요구사항에 보다 유연하게 대응하기 위해 점진적인 발전을 도모합니다. 4. **애자일 프로세스 모델**: 고객의 요구 사항에 빠르게 대응하는 데 중점을 두며, 반복적인 개발과 피드백을 통해 기능을 발전시켜 나가는 접근 방식입니다.

  • 소프트웨어 개발 프로세스의 중요성

  • 소프트웨어 개발 프로세스는 고품질의 소프트웨어를 생성하기 위한 체계적이고 합리적인 접근 방식을 제공합니다. 이 프로세스의 효율적 관리와 적용은 프로젝트 성공 가능성을 극대화하고, 개발 비용과 시간을 절감하는데 중요한 역할을 합니다. 첫째, 잘 정의된 개발 프로세스는 요구사항을 명확히 하고, 각 단계에서 필요한 의사소통 및 피드백 절차를 규정하여 팀원 간의 협업을 원활하게 만들어 줍니다. 결과적으로 소프트웨어의 품질이 높아지고 사용자 요구를 충족하는 성공적인 제품이 개발될 수 있습니다. 둘째, 프로세스를 통해 개발자는 개발 진행 상황을 명확히 파악할 수 있으며, 이로 인해 프로젝트 일정, 자원 관리, 위험 요소 관리 등 다양한 측면에서의 최적화를 추구할 수 있습니다. 셋째, 품질 관리와 검증 절차가 체계적으로 구축됨으로써 배포된 소프트웨어의 안정성과 성능이 보장됩니다. 이는 소프트웨어에 대한 사용자 신뢰를 구축하고 장기적인 유지보수 비용을 줄이는 데 기여합니다.

소프트웨어 개발 프로세스의 주요 단계

  • 요구사항 분석

  • 소프트웨어 개발의 첫 번째 단계는 요구사항 분석입니다. 이 단계에서는 사용자가 필요로 하는 기능과 소프트웨어가 수행해야 하는 작업을 명확히 정의합니다. 요구사항 분석은 Stakeholder와의 인터뷰, 기존 문서 검토, 업무 프로세스 이해 등 다양한 방법을 통해 진행되며, 개발 팀은 이를 기반으로 요구사항 명세서를 작성합니다. 이 문서에는 기능적 요구사항, 비기능적 요구사항, 제약 조건 등이 포함되며, 모든 이해관계자의 요구가 충족되도록 하는 것이 중요합니다.

  • 이 단계에서의 핵심은 명확하고 구체적인 요구사항을 문서화하여 개발 과정의 혼란을 최소화하는 것입니다. 예를 들어, UI/UX 요구사항, 성능 요구사항, 보안 요구사항 등이 모두 포함되어야 하며, 이를 통해 개발자와 고객 간의 이해를 공고히 할 수 있습니다.

  • 설계 단계

  • 요구사항 분석이 끝나면, 다음 단계로 설계가 진행됩니다. 이 단계에서는 요구사항을 충족하는 소프트웨어의 구조, 아키텍처 및 인터페이스를 정의합니다. 주요 활동으로는 시스템 아키텍처 설계, 데이터베이스 설계, 사용자 인터페이스 설계 등이 있으며, 이 과정에서 설계 문서도 작성됩니다.

  • 특히, 이 단계에서는 다양한 설계 방법을 사용할 수 있으며, 의사코드(pseudo-code), 다이어그램, 프로토타입 등을 통해 개발자가 구현해야 할 내용을 구체화할 수 있습니다. 이는 개발 과정 중 문제 발생 시 참조가 되는 중요한 문서가 됩니다.

  • 구현 및 테스트

  • 구현 단계에서는 실제 코드를 작성하여 소프트웨어를 개발합니다. 이 단계에서는 설계 문서를 바탕으로 프로그래밍 언어를 사용하여 소프트웨어를 구현하게 됩니다. 수행 시 앞서 설계한 내용이 잘 반영되도록 주의해야 하며, 각 기능이 올바르게 작동하는지 확인하기 위해 단위 테스트(unit testing)를 진행합니다.

  • 테스트 단계에서는 소프트웨어가 요구사항을 충족하는지 확인하기 위해 다양한 테스트를 수행합니다. 여기에는 기능 테스트, 통합 테스트, 성능 테스트, 시스템 테스트 등이 포함됩니다. 특히, 자동화된 테스트 도구를 활용하여 반복적인 테스트를 효율적으로 수행할 수 있습니다.

  • 배포 및 유지보수

  • 모든 개발 및 테스트 단계가 마무리되면 소프트웨어를 실제 환경에 배포하게 됩니다. 배포 후에는 사용자 피드백을 통해 발생하는 문제를 해결하기 위한 유지보수 작업이 필요합니다. 이 단계는 소프트웨어의 수명 주기에서 매우 중요한 부분으로, 사용자 요구 변화에 따라 소프트웨어를 지속적으로 업데이트 해야 합니다.

  • 유지보수는 버그 수정, 기능 개선, 시스템 성능 향상 등을 포함하며, 이를 통해 소프트웨어의 가치를 극대화하고 사용자 만족도를 높이는 것이 중요합니다. 또한, 이 단계는 SDLC(Software Development Life Cycle)의 반복 주기로 간주되며, 소프트웨어가 실제 사용되면서 발생하는 새로운 요구사항을 반영하는 데 필수적입니다.

소프트웨어 개발 방법론

  • 전통적 소프트웨어 개발 방법

  • 전통적 소프트웨어 개발 방법론은 과거의 많은 소프트웨어 개발 경험을 바탕으로 하여 정형화된 방식으로 진행되는 방법입니다. 이러한 방법론은 사용자의 요구를 철저히 분석하고 설계 후 개발을 진행하는 구조로, 특히 구조적 소프트웨어 개발 방법이라고도 불립니다. 전통적 방법의 주된 특징은 단계적으로 진행되는 순차적인 접근이어서 각 개발 단계에서의 문서화 및 확인이 명확하다는 점입니다. 이 방법론은 고객의 고유한 요구사항을 파악하고 이를 바탕으로 설계와 구현을 '계획' 단계에서부터 체계적으로 진행합니다.

  • 전통적 방법론은 다음과 같은 주요 단계로 구성됩니다. 첫 번째는 '요구사항 분석' 단계로, 사용자의 요구를 명확하게 이해하고 문서화하는 단계입니다. 두 번째는 '설계 단계'로, 요구사항을 반영한 시스템 설계 및 아키텍처가 결정됩니다. 세 번째는 '구현 단계'로, 실제 코딩이 이루어지고, 마지막으로 '테스트 및 유지보수' 단계에서 시스템의 품질을 보장하고 오류를 수정하는 과정을 거칩니다. 이 전통적인 방법론은 비교적 큰 안정성과 적은 위험이 동반되는 프로젝트에 적합합니다.

  • 애자일 방법론

  • 애자일 방법론은 소프트웨어 개발 방향성을 유연하게 대처하기 위해 고안된 방법으로, 고객의 요구와 시장 변동성에 신속하게 대응할 수 있는 시스템을 만드는 것을 목표로 합니다. 애자일 방법론은 '스프린트'라고 불리는 짧은 개발 주기를 중심으로 하며, 주기적인 회의를 통해 팀원 간의 소통과 협업을 강조합니다. 이 과정에서 팀은 자신들의 진행 상황을 공유하고, 고객의 피드백을 즉각 반영하여 필요한 수정 작업을 수행합니다.

  • 애자일의 기본 원칙 중 하나는 고객과의 협력입니다. 고객의 요구사항과 피드백을 적극적으로 반영하면서 개발을 진행하므로, 최종 결과물이 고객의 기대와 일치할 가능성이 높습니다. 또한, 애자일 방법론은 반복적이고 점진적인 개발 과정을의 권장하여 변화가 필요한 사항을 조기에 발견하고 수정할 수 있는 장점을 가지고 있습니다. 이러한 특성 덕분에 많은 기업들이 애자일 방법론을 채택하여 좀 더 효율적이고 효과적인 소프트웨어 개발을 운영하고 있습니다.

  • DevOps 접근법

  • DevOps는 소프트웨어 개발(Development)과 운영(Operations)을 통합하여 보다 빠르고 안전한 소프트웨어 배포를 목표로 하는 접근법입니다. DevOps는 팀 간의 장벽을 허물고 협력을 강조함으로써, 소프트웨어 개발 수명 주기를 단축시키고 품질을 향상시키는 데 초점을 맞추고 있습니다. 특히 DevOps에서는 자동화 도구와 정책을 사용하여 반복적이고 수동적인 작업을 줄임으로써, 개발자와 운영팀이 더 많은 시간을 사용할 수 있도록 지원합니다.

  • DevOps의 주된 구성 요소 중 하나는 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Deployment, CD)입니다. CI는 팀원들이 작성한 코드를 정기적으로 통합하여 발생할 수 있는 충돌을 조기에 파악하고 해결하도록 돕습니다. CD는 통합된 코드가 자동으로 배포되는 과정을 의미하여, 개발된 제품이 항상 최신 버전으로 고객에게 제공될 수 있는 환경을 조성합니다. 이러한 DevOps의 접근법은 소프트웨어 배포의 빈도와 속도를 크게 향상시켜 기업이 시장의 변화에 즉각적으로 대응할 수 있는 기회를 제공합니다.

사례 연구: PLC 기반 안전 시프트 시스템

  • PLC 기반 필수 안전 시스템의 필요성

  • PLC(Programmable Logic Controller)는 안전 크리티컬 시스템에서 매우 중요한 역할을 합니다. 이는 특히 원자력 발전소와 같은 고위험 환경에서 필수적인 안전 시스템으로 간주됩니다. PLC는 고신뢰성 및 고가용성을 보장해야 하며, 이러한 시스템의 소프트웨어는 필수적으로 엄격한 검증 및 검토 과정을 거쳐야 합니다. 이는 소프트웨어의 오류가 사람의 생명이나 재산에 큰 영향을 미칠 수 있기 때문입니다.

  • 최근의 PLC 응용 증가와 함께, 소프트웨어 개발 및 검증(V&V: Verification and Validation) 기술의 필요성이 더욱 두드러지고 있습니다. 기존의 소프트웨어 개발 및 V&V 과정에서는 이해의 차이로 인해 요구사항 분석과 디자인 문서 간의 불일치가 발생할 수 있습니다. 이는 결과적으로 시스템 안전성을 저해할 수 있으며, 이를 해결하기 위해 통합된 개발 환경이 필요합니다.

  • 소프트웨어 개발 및 V&V 통합 환경

  • PLC 기반 안전 시스템을 개발하기 위해서는 통합된 소프트웨어 개발 및 V&V 환경이 필수적입니다. 이러한 환경은 요구사항 분석, 설계, 구현, 검증의 모든 단계에서 요구사항 추적성과 일관성을 보장해야 합니다. 예를 들어, NuFDS(인증된 PLC 소프트웨어 설계) 접근 방식을 적용하면 요구사항이 명확히 정의되고, 이를 기반으로 하여 소프트웨어 아키텍처와 설계를 체계적으로 구성할 수 있습니다.

  • 특히, NuSEE(Nuclear Software Engineering Environment) 툴세트를 사용하면 요구사항 평가, 디자인 분석, 프로젝트 관리 등 여러 기능을 통합하여 소프트웨어 개발과 검증을 효율적으로 수행할 수 있습니다. 이 툴세트는 자연어 문서 평가, 형식 요구사항 사양 및 검증 등 다양한 기능을 갖추고 있어, 소프트웨어 생애 주기 전반에서 필요한 모든 프로세스를 최적화할 수 있습니다.

  • 실제 사례 분석

  • 실제 사례로는 원자력 발전소의 비상 정지 시스템을 들 수 있습니다. 이 시스템은 PLC를 통해 자동으로 비상 정지를 수행해야 하며, 소프트웨어의 정확성과 신뢰성이 매우 중요합니다. 개발 과정에서 NuFDS 접근 방식을 적용해 설계와 구현 단계에서 발생할 수 있는 오류를 사전에 예방하며, 시스템의 안전성을 높이는 데 기여했습니다.

  • 이 사례에서는 사용하는 Equation-Based 모델링과 Fault Tree 분석을 통해 잠재적인 오류를 사전에 도출하고, 이를 바탕으로 설계 검증을 수행했습니다. 또한, 각 모듈 간의 인터페이스 검토를 철저히 진행함으로써, 시스템의 종합적인 안정성을 확보했습니다. 이러한 사례들은 안전 크리티컬 시스템에서 PLC 기반 솔루션의 중요성과 실제 적용 가능성을 잘 보여줍니다.

MISRA 준수와 소프트웨어의 신뢰성

  • MISRA 규정 이해

  • MISRA는 ‘Motor Industry Software Reliability Association’의 약자로, 자동차 산업을 포함한 임베디드 시스템에서 소프트웨어의 신뢰성을 높이기 위해 제정된 표준 규정입니다. MISRA 규정은 코드 품질을 높이고, 유지보수를 용이하게 하며, 안전성 문제를 예방하기 위한 지침들을 포함하고 있습니다. 이 규정은 주로 C와 C++ 언어를 중심으로 설계되었으며, 안전 크리티컬 시스템에서의 결함 가능성을 줄이는 데 중요한 역할을 합니다.

  • MISRA 규정은 크게 필수(Mandatory), 요구(Required), 권고(Advisory) 항목으로 나누어져 있습니다. 필수 항목은 반드시 준수해야 하며, 위반 시 심각한 결함이나 안전 문제를 발생시킬 수 있습니다. 요구 항목은 가능하면 준수해야 하지만, 위반할 경우에는 명확한 이유를 기록하고 설명해야 합니다. 권고 항목은 따르는 것이 바람직하지만, 상황에 따라 유연하게 적용할 수 있습니다. 이러한 규정의 층상 구조는 개발자가 상황에 맞서 조정할 수 있는 여지를 제공합니다.

  • 안전 크리티컬 시스템에서의 적용

  • 안전 크리티컬 시스템은 생명이나 재산에 중대한 영향을 미칠 수 있는 시스템으로, MISRA 준수는 이러한 시스템에서 필수적입니다. 왜냐하면, 소프트웨어의 결함이나 오류가 직접적으로 사용자의 안전을 위협할 수 있기 때문입니다. 이러한 시스템에서는 특히 MISRA 규정에 따른 코드 검토 및 정적 분석이 중요합니다.

  • 안전 크리티컬 시스템을 설계할 때, MISRA 규정의 적용 여부를 확인하는 방법 중 하나는 시스템 전반에 대한 위험 분석을 실시하는 것입니다. 이 위험 분석을 통해 잠재적인 문제를 사전에 파악하고, MISRA 규정을 통해 관리할 수 있는 액션 플랜을 수립할 수 있습니다. 예를 들어, 특정 규정이 적용될 수 없는 상황에서는 반드시 Deviation 처리가 필요하며, 이를 통해 규칙을 위반해야 하는 이유와 안전성을 보장하는 대책을 마련해야 합니다.

  • 신뢰성 측정을 위한 Best Practices

  • 소프트웨어의 신뢰성을 극대화하기 위해서는 몇 가지 Best Practices를 따르는 것이 필수적입니다. 첫째, 체계적인 교육과 교육 자료 제공이 필요합니다. 개발자가 MISRA 규정을 이해하고 이를 소프트웨어 개발에 실질적으로 적용할 수 있도록 하는 것은 매우 중요합니다. 정기적인 워크숍이나 훈련 세션을 통해 팀 전체의 규정 준수 역량을 제고하는 것이 좋습니다.

  • 둘째, 도구 관리와 정적 분석의 활용이 필요합니다. 소프트웨어 개발 과정에서 MISRA 준수를 검증할 수 있는 정적 분석 도구를 활용하여 의도하지 않은 코드 오류나 규칙 위반을 사전에 차단할 수 있습니다. 도구의 설정 및 결과 검토 과정에서는 각 규칙이 적절히 준수되었는지를 검토하고, 발견된 문제를 신속하게 해결하는 메커니즘을 마련해야 합니다.

  • 셋째, 코딩 스타일 가이드와 품질 관리 메트릭스를 설정하여 개발자들 간의 코드 일관성을 유지하는 것이 중요합니다. 팀원들이 동일한 코딩 스타일을 따르도록 유도하면 코드의 가독성과 유지보수성을 높일 수 있으며, 이는 결과적으로 소프트웨어의 전체적인 신뢰성을 향상시킬 수 있습니다.

마무리

  • 소프트웨어 개발 프로세스의 이해는 복잡한 작업임에도 불구하고, 명확한 방법론과 단계의 체계적인 적용을 통해 프로젝트 성공 가능성을 크게 높일 수 있습니다. 본 리포트에서는 소프트웨어 개발의 필수적인 단계인 요구사항 분석, 설계, 구현 및 테스트에 대해 각 단계에서의 중요성 및 접근 방식을 살펴보았으며, 이론 및 실제 사례를 통해 각 단계의 연관성을 잘 설명하고 있습니다. 특히, 안전 크리티컬 시스템 분야와 같이 높은 신뢰성이 요구되는 소프트웨어 개발에서는 준수 규정의 중요성이 강조됩니다.

  • 이와 같은 준수 규정들은 소프트웨어 개발의 품질을 보장하고, 사용자 신뢰를 구축하기 위한 필수적인 요소로 작용합니다. MISRA 규정과 같은 표준은 소프트웨어의 안전성과 신뢰성을 높이기 위해 반드시 준수해야 하며, 이는 개발자들이 해당 규정을 충분히 이해하고 이를 기반으로 신뢰성 있는 소프트웨어를 개발하도록 하는 데 기여합니다.

  • 결론적으로, 소프트웨어 개발 프로세스에 대한 체계적인 접근은 단순히 소프트웨어를 구현하는 것을 넘어, 소프트웨어의 품질과 신뢰성을 확보하여 사용자에게 최상의 가치를 제공하는 데 중점을 두어야 합니다. 본 리포트에서 다룬 내용들은 이러한 목표를 달성하기 위한 기초와 방향성을 제시합니다. 따라서 독자들은 본 리포트의 내용을 바탕으로 지속적인 연구와 실천을 통해 더욱 전문적이고 효과적인 소프트웨어 개발 전략을 마련할 수 있을 것으로 기대됩니다.

용어집

  • 소프트웨어 개발 프로세스 [개념]: 소프트웨어의 설계, 구현, 테스트 및 유지 관리 등을 체계적으로 수행하는 일련의 과정.
  • 요구사항 분석 [단계]: 소프트웨어 개발의 첫 단계로, 사용자가 필요로 하는 기능과 목적을 정의하는 과정.
  • 설계 단계 [단계]: 요구사항을 바탕으로 소프트웨어의 구조와 아키텍처를 정의하는 단계.
  • 구현 단계 [단계]: 소프트웨어의 실제 코드를 작성하고 개발하는 과정.
  • 테스트 단계 [단계]: 소프트웨어가 요구사항을 충족하는지 확인하기 위해 다양한 테스트를 수행하는 과정.
  • 배포 [단계]: 개발된 소프트웨어를 실제 환경에推出하는 과정.
  • 유지보수 [단계]: 소프트웨어 배포 후 사용자 피드백에 따라 지속적으로 수정하고 개선하는 과정.
  • 애자일 방법론 [방법론]: 고객의 요구에 유연하게 대응하며 반복적인 개발을 강조하는 소프트웨어 개발 접근법.
  • DevOps [방법론]: 소프트웨어 개발(Development)과 운영(Operations)을 통합하여 빠르고 안전한 소프트웨어 배포를 목표로 하는 접근법.
  • MISRA [규정]: 자동차 산업을 포함한 임베디드 시스템의 소프트웨어 신뢰성을 높이기 위한 표준 규정.
  • PLC(Programmable Logic Controller) [기술]: 자동화된 시스템을 제어하기 위해 설계된 프로그래머블 로직 컨트롤러.
  • 정적 분석 [기법]: 소스 코드의 규칙 준수 여부를 자동으로 검사하여 오류를 찾아내는 기법.
  • 지속적 통합(Continuous Integration, CI) [개념]: 개발자들이 작성한 코드를 정기적으로 통합하여 문제를 조기에 발견하고 해결하도록 돕는 절차.
  • 지속적 배포(Continuous Deployment, CD) [개념]: 통합된 코드가 자동으로 배포되는 프로세스로, 항상 최신 버전을 사용자에게 제공.

출처 문서