Skip to content

Continuous integration #
Find similar titles

Continuous integration (CI, 지속적인 통합, http://ko.wikipedia.org/wiki/지속적인_통합 )

언제나 최신의 동작가능한 버전을 유지하도록 하는 소프트웨어 공학 원리 - 각각 만들고 나중에 통합하는 것이 아닌 지속적인 통합. Extreme programming의 핵심 프랙티스 가운데 하나이다.

주요 개념들

  • 소스코드 저장소(Git, Subversion)의 이용: 자신의 변경사항을 적용하기 전에 항상 최신 버전을 업데이트 한다. --> 깨끗한 최신 버전 유지
  • 모든 커밋(푸시)는 오류가 없는 깨끗한 버전이어야 한다. --> 테스트 해봐야 함
  • 테스트, 빌드 자동화: 커밋 전 자동 테스트, 자동 빌드 진행
  • 배포(deployment) 자동화
  • 적절한 버전 및 브랜치 관리

이를 위해서는 "테스트 코드"가 중요하다.

  • 무언가 기능을 넣을 때는 그 기능이 잘 도는지 테스트하는 코드가 필요함
  • A기능 구현 --> B기능 구현 --> C기능 구현. 그랬더니 A가 갑자기 아니됨.
  • A기능 구현 (test A) --> B기능 구현 (test A, B) --> C기능 구현 (test A, B, C): http://ko.wikipedia.org/wiki/회귀_테스트
  • 테스트주도개발(TDD) 혹은 테스트추가개발(TLP)

현재 진행상황을 알 수 있어야 한다 (무엇을 개발할지, 어디까지 되는지, 어떤 오류들이 나타났는지 관리)

  • Trac, GitLab을 이용한 개발 계획, 일정 계획, 이슈 관리
  • 이슈별 처리 현황을 소스코드 저장소와 연동함.
  • 장점 - 개발자와 기획(관리) 업무의 분담 가능. 불필요한 문서화 최소화. 개발 스트레스 최소화

Suggested Pages #

0.0.1_20140628_0