노무현 대통령 배너
이 기사는 마틴파울러의 Continuous Integration을 번역한 기사임을 미리 밝혀둡니다.

모든 사람이 무슨일이 일어나고 있는지 알게하라.

지속적 통합은 모든게 커뮤니케이션을 위한 것이다. 그렇기 때문에 모든 사람이 쉽게 시스템의 상태를 볼수있으며 이를 바꿀수 있게 해줘야 한다.

커뮤니케이션에서 가장 중요한 것중의 하나가 메인라인 빌드의 상태이다. 만일 크루즈 컨트롤을 사용하고 있다면 거기에는 빌드가 어떻게 진행되고 있는지 보여주고 마지막 메인라인 빌드 상태를 보여주는 웹사이트가 들어있다.

많은 팀은 빌드 시스템의 상태를 좀 더 보기 쉽게 하기 위해서 녹색이면 빌드가 잘 되고 있는거고 빨간색이면 빌드가 안되고 있다고 빌드시스템 상태 표시하는 화면을 계속 켜놓기도 한다. 특히 좋은 것은 빨간색과 녹색의 lava lamps 인데 단순히 빌드 상태만을 나타내는게 아니라 얼마나 오래 지속되고 있는가도 나타낸다. 빨간색 램프의 거품은 빌드가 깨진 상태로 오랫도안 지속되고 있다는걸 나타낸다. 각 팀은 이러한 빌드 센서를 선택해야 하는데 재밌는걸 선택하는게 좋다.(최근에 어떤 팀은 춤추는 토기를 이용하는것도 본적이 있다.)

만일 수동으로 CI 프로세스를 처리한다 하더라도, 빌드 상태를 보여주는건 여전히 중요하다. 물리적 빌드 서버 모니터는 메인라인 빌드 상태를 보여준다. 때로는 누구든지 현재 빌드를 할수 있도록 책상위에 빌드 토큰을 놔둘수도 있다.(좀 어리석을지 몰라도 고무로 된 닭도 훌룡한 선택이다.) 가끔 사람들은 빌드가 성공했음을 벨소리같은 간단한 소리로 알리기도 한다.

CI 서버의 웹 페이지는 사실 이보다 더 많은정보를 전해준다. 크루즈 컨트롤은 누가 빌드를 했는지 무엇이 변경됐는지 알수있는 정보를 제공한다. 또한 변경 이력을 제공하여 팀 구성원들이 최근에 프로젝트 변경사항에 대해 알수 있게 해준다. 이를 이용하는 팀은 누가 무엇을 했는지 시스템이 변경되었는지를 알수 있다.

웹 사이트를 이용하는 또 다른 이점은 프로젝트의 상태를 알기 위해 같은 장소에 있지 않아도 된다는 것이다. 일반적으로 모든사람들은 같이 앉아서 활발하게 프로젝트를 진행하는게 좋지만 가끔은 떨어져 일하는 사람들을 지켜봐야 하기도 하다. 여러 프로젝트의 빌드 정보를 그룹으로 묶는것도 유용할때가 있는데 다른 프로젝트의 자동화 상태를 제공한다.

좋은 정보를 컴퓨터 화면에만 나타내지 않는다. 내가 즐겨 나타내는것은 프로젝트에서 CI에 관한것 들이다.  안정화된 빌드가 되기까지는 오랜 시간이 필요하다. 벽에 하루가 사각형으로 되어있는 일년이 모두 표시되는 큰 달력을 걸어놓는다. 매일 QA 그룹은 커밋 테스트가 통과한 안정화된 빌드가 있는날에는 녹색 스티커를 붙이고 그렇지 않으면 빨간 스티커를 붙인다. 시간이 흐를수록 달력에는 빌드 상태가 어떻게 진행되는지 나타나는데 점점 녹색이 늘어나게 되면 달력을 치워도 된다. 목표가 달성된 것이다.

크리에이티브 커먼즈 라이선스
Creative Commons License
TAG