CI 도입하기
CI의 가치
- Risk를 줄여줌.
- 손수 처리해야 하는 반복작업 줄여줌.
- 언제 어디서나 배포가능한 소프트웨어 만들어줌.
- 프로젝트 가시성을 높여줌.
- 프로젝트 팀원들의 소프트웨어 제품에 대한 자신감 상승.
CI를 사용하는데 방해가 되는 요인
- CI 시스템 관리 때문에 부가된 오버헤드.
- 할 일이 많아보이지만, 사실 빌드, SCM, Test 들은 CI와 상관없이 존재해야만 하는 것들이다.
- 너무 많은 변화를 요구함.
- 점진적으로 도입하는 방법 선택가능.
- 맨날 빌드 실패해.
- 개발자가 private build를 실행해보지도 않았거나, 테스트 하지 않은 소스를 올려서 그렇다.
- 하드웨어/소프트웨어 비용
- CI에 필요한 별도의 서버나 소프트웨어 비용이 나중에 버그 발견하고 고치는 비용에 비하면 싼거다.
- 개발자에게 추가 작업이 요구된다.
- 인정. 그래도 자동화 도구가 있으니까..
지속적으로Continuous 통합하려면 어떻게 해야하나? I Build So Consistently (IBSC 외우기 좋으라고 만든 말)
- Indentify
- Build
- Share
- Continuous
CI를 언제 어떻게 도입해야 하는가?
- 프로젝트 초기에하는게 좋다.
- 프로젝트 후반에 도입한다면 점진적으로 해야한다. 변화를 싫어하기 때문에..
Integration의 진화
- 역사는 지겨워서 pass
CI가 다른 개발 방법들과 어떤 충분관계를 가지는가?
- 개발자 테스트
- 코딩 표준 정착
- 리팩터링
- 작은 배포
- Collective Ownership
CI를 설치하는데 걸리는 시간은?
- 프로젝트 시작할 때 하면 몇 시간이면 되지만, 프로젝트 도중에 하려면 몇 일이 걸릴 수도 있다.
CI와 당신
- 자주 커밋하라.
- 깨진 코드는 커밋하지 말아라.
- 깨진 빌드는 그 즉시 고쳐라.
- 자동화된 개발자 테스트를 작성하라.
- 모든 테스트와 조사Inspection를 통과해야 한다.
- 개인 빌드를 실행하라.
- 깨진 코드는 받지 말아라.
마침 프로젝트 초기니까.. 도입해야겠군요.