소스 제어 및 버전 제어 살펴보기
원본 및 버전 제어의 사용은 기본 DevOps 사례입니다. 또한 지속적인 통합 및 코드로서의 인프라와 같은 사례를 위한 필수 조건이기도 하며, 둘 다 전체 DevOps 잠재력에 도달하는 데 매우 중요합니다. 샘플 시나리오의 조직은 현재 공동 작업 소프트웨어 개발 전략을 검토하고 Git과 같은 분산 버전 제어 모델로 전환해야 하며, 특히 소프트웨어 수명 주기 관리에 GitHub를 사용하려는 계획을 고려해야 합니다. 그러나 이를 위해서는 버전 및 소스 제어 원칙과 이점에 대한 건전한 이해가 필요하며 여기서 다룰 것입니다.
소스 제어 및 버전 제어
소스 제어 및 버전 제어라는 용어는 종종 서로 바꿔서 사용되며, 많은 컨텍스트에서 동일한 개념을 참조합니다. 일반적으로 둘 다 공유 개발 환경에서 코드 변경 내용을 관리하는 방식과 관련이 있습니다. 그러나 그 의미가 약간 다른 더 미묘한 시나리오가 발생할 수 있습니다. 이러한 시나리오에서 소스 제어 는 소스 코드 파일의 변경 내용을 관리하는 시스템을 지정하는 반면 버전 제어 에는 소스 코드만으로 확장되는 모든 파일 형식의 변경 관리가 포함됩니다. 일관성을 위해 버전 제어 라는 용어를 사용하여 GitHub 및 Azure DevOps에서 사용할 수 있는 Git 기반 공동 작업 소프트웨어 리포지토리를 나타낼 예정입니다.
버전 제어의 이점은 무엇인가요?
버전 제어는 관리 범위 내에서 파일의 변경 내용을 추적합니다. 이렇게 하면 다음과 같은 다양한 이점이 제공됩니다.
기록 및 버전 추적: 각 개별 변경이 발생한 시기와 해당 범위가 무엇인지를 확인하는 기능을 포함하여 모든 파일에 대한 변경 기록을 검토할 수 있습니다. 또한 일반적으로 각 변경 내용 집합을 고유 식별자와 연결하여 추적 기능을 제공합니다.
롤백 및 복구: 오류 또는 문제가 있는 경우 변경 내용을 쉽게 되돌려 영향을 받는 파일의 알려진 작업 버전을 복구할 수 있습니다.
분기 및 병합: 다른 기능을 추가하거나 새로 검색된 버그를 수정하여 현재 코드의 기능을 확장해야 하는 경우 기존 코드베이스에 대해 독립적으로 작업할 수 있는 소위 분기를 만들 수 있습니다. 새 분기는 처음에 현재 코드를 호스팅하는 주 분기와 동일합니다. 변경 내용을 완료하면 새 분기를 주 분기와 병합합니다. 이로 인해 여전히 충돌이 발생할 수 있지만(다른 개발자가 다른 분기를 통해 그 동안 동일한 파일 집합을 수정하기로 결정한 경우) 범위가 제한되며 일반적으로 쉽게 식별하고 해결할 수 있습니다.
공동 작업 및 병렬 개발: 분기 및 병합을 통해 보완된 충돌 해결 프로비전은 여러 개발자가 동일한 코드베이스에서 작업할 수 있도록 하여 효율성을 높입니다. Git과 같은 분산 제어 시스템을 사용하면 연결이 끊어진 모드에서 코드를 작성할 수도 있습니다. 협업에는 풀 리퀘스트의 상호 피어 리뷰가 포함되며, 이는 지식 공유와 투명성을 촉진합니다.
자동화: 버전 제어는 연속 통합 및 자동화된 배포의 필수적인 부분입니다. 새 버전의 코드가 버전 제어 리포지토리로 푸시되거나 주 분기와 병합될 때마다 자동화된 빌드 및 테스트가 자동으로 트리거될 수 있습니다. 다양한 버전의 코드를 다른 환경에 배포할 수 있습니다.