16장. 지속적인 검증
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
지속적 검증은 소프트웨어의 사전 실험 분야로, 시스템 동작을 검증하는 도구로 구현됩니다.
케이시 로젠탈
복잡한 시스템으로 인한 과제는 지속적 통합에서 지속적 배포, 지속적 검증으로 자연스럽게 진화하도록 유도했습니다. 이 장의 주제는 후자이며, 초기 분야와 기회의 여지를 설명하고 넷플릭스에서 제작 중인 시스템 중 하나인 ChAP의 실제 사례를 통해 후속 조치를 취합니다. 업계에서 지속적 검증을 도입하기로 결정한 분야는 광범위하게 열려 있지만, 이 장의 마지막에서 향후 개발을 위한 일반적인 중점 분야를 검토합니다.
이력서의 출처
두 명 이상의 엔지니어가 개별적으로 코드를 작성하는 사이에 기대치의 차이가 존재하면 해당 코드의 상호 작용으로 인해 예기치 않은 바람직하지 않은 결과가 발생할 수 있습니다. 이를 빨리 발견할 수 있을수록 다음에 작성되는 코드에는 격차가 줄어들 가능성이 높아집니다. 반대로, 이러한 간극을 조기에 발견하지 못하면 다음에 작성되는 코드가 더 많이 달라져 바람직하지 않은 결과가 발생할 가능성이 높아집니다.
이러한 기대치 차이를 발견하는 가장 효율적인 방법 중 하나는 코드를 통합하여 실행하는 것입니다. 지속적인 통합(CI)은 이를 달성하기 위한 방법으로 XP 방법론의 일부 로서 크게 장려되었습니다. CI는 이제 일반적인 업계 표준이 되었습니다. CI 파이프라인은 개별 개발자나 팀이 작성한 코드의 결합된 기능의 기능을 구체적으로 테스트하는 통합 테스트의 개발을 장려합니다.
공통 리포지토리에 코드를 수정할 때마다 CI 파이프라인이 새로운 통합을 컴파일하고 통합 테스트 스위트를 실행하여 중요한 변경 사항이 없는지 확인합니다. 이 피드백 루프는 소프트웨어의 가역성, 즉 코드를 신속하게 홍보하고, 마음을 바꾸고, 변경 사항을 되돌릴 수 있는 기능을 촉진합니다. 가역성1 은 복잡한 소프트웨어 시스템을 탐색하는 데 유리한 최적화 기능입니다.
지속적 배포( ) 관행은 코드를 준비하고 환경에 배포하는 단계를 자동화함으로써 CI의 성공을 기반으로 합니다. 엔지니어는 CD 도구를 사용하여 CI 단계를 통과한 빌드를 선택하고 파이프라인을 통해 프로덕션에서 실행되도록 홍보할 수 있습니다. 이를 통해 개발자는 추가적인 피드백 루프(프로덕션에서 실행되는 새 코드)를 얻을 수 있고 배포를 자주 할 수 있습니다. 배포를 자주 하면 예상치 못한 문제를 발견할 가능성이 높아지기 때문에 중단될 가능성이 줄어듭니다.
CI/CD가 확립한 이점을 기반으로 하는 새로운 관행이 등장하고 있습니다. 지속적 검증(CV)은 시스템 동작을 검증하는 도구로 구현된 사전 예방적 실험의 한 분야입니다. 이는 소프트웨어 품질 보증의 기존 일반적인 관행인 사후 대응 테스트를 선호하는 것과는 대조적입니다,2 방법론으로 구현된 3 방법론으로 구현되었습니다. 그렇다고 해서 이전의 일반적인 관행이 유효하지 않거나 더 이상 사용되지 ...