리뷰: 지속적인 통합

twentyeleven

지속적인 통합[1] 의 한국어판을 몇 일전에 화요일에 쉬는 동안 다 읽을 수 있었다. 아주 간단하게 평하자면,

장점

여러가지 CI 단계 — 컴파일, 각 단계의 테스팅, 자동화된 코드 리뷰, 팩키징/전개, … — 에 관해 상세한 설명을 하고 있다. 컴파일을 자동화하기 위해 사용될 수 있는 툴들 — Ant, Nant, Maven … — 에 관한 설명이라거나 유닛 테스트, 컴퍼넌트 테스트, 그리고 시스템 레벨 테스트들에서 쓸 수 있는 툴들에 관해서도 예를 들어가면서 상세한 설명을 한다.

특히나 저런 단계들을 딱 적당한 수준 — 하나 하나마다 책 한 권 나올 정도로 긴 것은 아니지만 적당한 개념을 잡고 “한 번 이렇게 해보면 되겠군” 하고 생각할 정도인 것 같다. 회사에서 CI 빌드 서버를 쓰고, 컴퍼넌트 테스팅까지 돌리고 있는데, 뭘 더하면 좋을지에 관해서 조금 감을 잡을 수 있게 된 것 같다.

단점

CI가 정말로 “무엇을 줄 수 있는가”에 관해서는 마틴 파울러나 스티브 맥코넬의 표현을 인용하는 정도의, 그리고 좀 추상적인 수준에서의 “무엇을 줄 수 있는가”를 설명한다고 생각한다. 물론 와닿지 않을 정도로 추상적인 것은 아닌데 “반드시 해야한다” 정도로 생각하기엔 미흡한 느낌.

그리고 툴 설명에 할애된 페이지 수가 좀 과하다는 점도 — 특히 부록 쯤 되면(…) — 단점.

마지막으로 언어 자체가 Java에 한정되어 있고, .net 프레임웍의 언어도 조금은 다루지만, 내가 작업하는 환경인 C++/Python 에 관해서는 매우 빈약한 설명만 있다는 것도 문제라면 문제.[2]

그렇지만 전반적인 문맥도 적절하게 이어지고, 번역도 깔끔히 된 것 같다.[3] 작년 말 정도에[4] 자동화된 빌드/테스트/전개를 생각했었는데 그 때 이 책이 있었으면 참 좋았을 것 같다. 물론 지금도 나쁘다는건 아니고 :)

실용주의 프로그래머나 Ship It!에서 얻을 점이 있었다고 생각하는 분이라면 읽어보는 것을 추천.

  1. Continuous Integration. 프로그램을 변경하고, 테스트하고, 팩키징하고, 리뷰하는 등의 전과정을 프로그래머의 간섭이 없거나 매우 적은 상태에서 반복적으로 신속하게 수행하고, 프로그래머는 이에 대한 피드백을 금방금방 받을 수 있는 방법론을 가리키는 말이기도 하다. []
  2. 그리고 다루고 있는 프로젝트 자체가 웹을 기반으로 하는 프로젝트에 매우 적당하게 되어 있다는 것도… []
  3. 약간의 오탈자가 있긴하지만 거슬릴 수준은 아니었다 []
  4. 아마 훈련소 갔다온 직 후? []

Published by

rein

나는 ...

8 thoughts on “리뷰: 지속적인 통합”

  1. ㅠㅠ

    소프웨어(…)란 탈자를 포함해서 3갠가 본거 같은데 1개는 부록입니다

    요즘 책들 오탈자율에 비하면 애교죠(…)

  2. 그래도…TI DSP의 열악한 개발환경보단 좋지않습니까 ㅡ _-;
    STL도 없고 iostream도 없는…멋져부려~ 환경입니다 ㅋㅋ TDD는 시도해보기 상당히 힘들다는;;;

    TDD 되는 개발환경되기전까지는…CI는 일단 제껴두고 그냥 자동빌드나 되도록 python이라도 동원해서 해볼 생각이긴합니다만.

    – ship it! 에서 하지말란 짓이지만…어쩌겠습니까 -_-;; –

  3. 제가 작년에 pytho이랑 SVN을 묶어서 post-commit 훅으로 빌드했었죠(…)

    이거 관리하기 귀찮아져서 한단계씩 CI 책에 나온 방향으로 옮겨간 것 같지만 /먼산

Leave a Reply