2023. 4. 21. 03:20ㆍ부트캠프/DevOps (TIL)
지속적 통합 리뷰
소프트웨어 개발 분야의 설계 및 개발 방법론에 있어서 저명한 마틴 파울러는 지속적 통합에 대해 다음과 같이 정의합니다.
팀 구성원이 각자의 작업을 자주 통합하는 소프트웨어 개발 방식 - Martin Fowler
이 방법을 도입함으로써 얻을 수 있는 장점에 대해서는 앞서 다음과 같이 설명했습니다.
지속적 통합이 있기 전에는 어떻게 릴리스를 만들었을까요?
지속적 통합이 없던 시절에는, 개발자들은 코드 변경 사항을 수동으로 통합하고, 코드 품질 및 기능 적합성을 검사한 다음, 릴리스를 생성하였습니다. 이 과정에서 발생하는 문제점은 수작업으로 인한 인간 에러가 발생할 수 있고, 코드 통합과 검사에 소요되는 시간이 상당히 길다는 점입니다.
지속적 통합을 도입함으로써 기존의 개발 방식의 어떠한 문제를 해결해 주었을까요?
첫째, 코드 통합 오류를 최소화할 수 있습니다. 지속적 통합에서는 코드 변경 사항이 자동으로 통합되고 테스트되기 때문에, 수동으로 통합하는 경우보다 통합 오류가 발생할 확률이 낮아집니다.
둘째, 더 빠른 피드백을 얻을 수 있습니다. 지속적 통합에서는 코드 변경 사항이 빠르게 통합되고 테스트되기 때문에, 빠른 시간 내에 문제를 감지하고 수정할 수 있습니다.
셋째, 개발자들이 시간을 절약할 수 있습니다. 지속적 통합에서는 코드 통합과 테스트가 자동화되어 있기 때문에, 개발자들은 통합과 테스트에 더 이상 많은 시간을 투자하지 않아도 됩니다.
지속적 통합을 통해 어떻게 버그를 일찍 발견할 수 있는 걸까요?
첫째, 지속적 통합에서는 코드 변경 사항이 자주 통합되고 빌드되기 때문에, 버그가 발생했을 때 언제 어디서 발생했는지를 더 쉽게 파악할 수 있습니다.
둘째, 지속적 통합에서는 자동화된 테스트를 수행하기 때문에, 버그를 빠르게 감지하고 수정할 수 있습니다. 자동화된 테스트는 수작업으로 수행하는 테스트보다 빠르고 정확하게 수행되기 때문에, 버그를 더 빠르게 찾아낼 수 있습니다.
셋째, 지속적 통합에서는 버그가 발생한 경우, 해당 버그가 발생한 코드 변경 사항을 더 쉽게 추적할 수 있습니다. 이를 통해 개발자들은 버그가 발생한 코드 변경 사항을 빠르게 수정할 수 있습니다.
지속적 통합 과정에서 반드시 자동화가 이뤄져야 하는 부분은 어떤 부분인가요?
첫째, 코드 통합 과정입니다. 코드 통합은 자동화된 빌드 시스템을 통해 수행되어야 하며, 코드 통합 오류를 최소화하고 빠른 피드백을 제공합니다.
둘째, 자동화된 테스트 과정입니다. 테스트는 수동으로 수행할 경우 시간과 노력이 많이 필요하며, 인간 에러의 가능성이 높습니다. 따라서 자동화된 테스트를 수행해야 빠르고 정확한 결과를 얻을 수 있습니다.
셋째, 릴리스 자동화 과정입니다. 릴리스를 자동화하는 것은 릴리스 프로세스를 더 빠르고 안정적으로 수행할 수 있으며, 인간 에러를 줄일 수 있습니다.
26_Study(환경 변수) (0) | 2023.04.21 |
---|---|
25_Study(지속적 통합의 원칙) (0) | 2023.04.21 |
25_Study(빌드와 언어별 빌드 도구) (0) | 2023.04.21 |
25_Study(유용한 CI 도구들) (2) | 2023.04.20 |
25_Study(지속적 통합 - CI/CD 리뷰) (0) | 2023.04.20 |