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를 통과해야 한다.
  • 개인 빌드를 실행하라.
  • 깨진 코드는 받지 말아라.

참조 : Continuouse Integration

마침 프로젝트 초기니까.. 도입해야겠군요.