Wikipedia는 대부분의 용어에 대한 요약을 제공합니다. 여기에 내가 취할 수있는 것들이 있습니다.
빌드 자동화 는 수동으로 컴파일러를 호출하는 대신 소프트웨어 빌드 방식을 자동화합니다. 이는 Make 또는 Ant 와 같은 도구를 통해 수행됩니다 .
배포 자동화는 빌드 된 소프트웨어를 사용하여 테스트 또는 프로덕션 시스템에 배포 또는 설치합니다.
지속적인 통합 이란 개발자가 코드를 체크인 할 때 자동화 된 프로세스가 소프트웨어를 지속적 으로 구축 하고 코드가 여전히 작동하는지 확인하기 위해 단위 테스트를 실행 하는 것을 의미 합니다. 예를 들어 15 ~ 30 분마다 서버가 깨어나 VCS 에서 새 체크인을 검색 한 다음 변경 사항이있을 경우 프로젝트를 업데이트하고 빌드 할 수 있습니다. 컴파일 단계를 수행하는 것 외에도 자동화 된 단위 테스트 및 코드 품질 검사 를 실행할 수있는 좋은 기회 입니다.
지속적인 제공 은 소프트웨어 빌드가 테스트 시스템에 배포되고 선택적으로 테스트가 수행되고 보고서가 생성되는 이전의 모든 개념의 조합입니다.
최소한 빌드 자동화, 즉 일종의 빌드 스크립트가 있어야 합니다. 이를 통해 하나의 버튼을 클릭하거나 하나의 명령을 실행하여 프로젝트를 빌드 할 수 있습니다. 이것의 장점은 수동으로 실행하는 단계에서 발생하는 오류를 줄이는 것입니다. 복잡한 빌드 환경에는 코드 생성 ( 구성에서 DAO 생각 , JAXB 와 같은 인터페이스 코드 생각 ), 코드 컴파일, 코드 패키징, 메타 데이터 사용자 정의 등이 포함됩니다. 빌드 스크립트를 실행하고 도구를 사용하여 실행합니까? 오류를 줄이고 일관성을 제공합니다.
다음은 CI입니다. 이것은 실제로 는 좋지만 반드시 필요한 것은 아닙니다. 빌드 문제를 조기에 식별하는 데 도움이됩니다. 하루 종일 여러 명의 개발자가 코드를 체크인하고 자신의 작업 공간을 지속적으로 동기화하지 않으면 변경 사항이 서로 간섭 할 위험이 있습니다. 버전 제어 충돌이 아닌 정적 코드 오류를 구체적으로 언급하고 있습니다. CI 빌드 서버는이 위험을 완화시킵니다.
마지막으로 배포 단계가 있습니다. 여기서 아이디어는 수동으로 소프트웨어를 배포 할 때 시간을 절약하고 오류를 줄이는 것입니다. 빌드 자동화와 마찬가지로 소프트웨어 배포를 망칠 수있는 100 가지 방법이 있습니다. 나는 내일 현장에 오는 고객들을 위해 기능적인 시스템이 필요할 때 수동 배포 문제를 해결하기 위해 개인적으로 사무실에 늦게 머물 렀습니다. 여러 시스템을 소개합니다 더 많은 위험을 자동화 : 대신 하나 개의 시스템이 가능하게 충돌 또는 이상한 오류를 가지고, 우리가 지금 가지고있는 여러잘못 될 수있는 시스템. 그러나 이러한 위험은 누군가가 체크리스트에서 한 단계를 잃어 버리거나 잘못된 명령을 내리고 배치를 망치는 것보다 훨씬 낮습니다. 운이 좋으면 DB 백업을 복원하고 다시 시작할 수 있습니다. 운이 좋지 않으면 오류로 인해 시스템이 제대로 작동하지 않을 수 있습니다. 소프트웨어 결함입니까? 기술자가 구성을 올바르게 설정하지 않았습니까? 진단하는 데 시간이 걸리고 프로세스를 자동화하는 데 소요될 수있는 시간과 시간이 필요하지 않습니다.