리뷰: 지속적인 통합

[genie 9788992939133]

지속적인 통합 ((Continuous Integration. 프로그램을 변경하고, 테스트하고, 팩키징하고, 리뷰하는 등의 전과정을 프로그래머의 간섭이 없거나 매우 적은 상태에서 반복적으로 신속하게 수행하고, 프로그래머는 이에 대한 피드백을 금방금방 받을 수 있는 방법론을 가리키는 말이기도 하다.)) 의 한국어판을 몇 일전에 화요일에 쉬는 동안 다 읽을 수 있었다. 아주 간단하게 평하자면,

장점

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

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

단점

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

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

마지막으로 언어 자체가 Java에 한정되어 있고, .net 프레임웍의 언어도 조금은 다루지만, 내가 작업하는 환경인 C++/Python 에 관해서는 매우 빈약한 설명만 있다는 것도 문제라면 문제. ((그리고 다루고 있는 프로젝트 자체가 웹을 기반으로 하는 프로젝트에 매우 적당하게 되어 있다는 것도…))

그렇지만 전반적인 문맥도 적절하게 이어지고, 번역도 깔끔히 된 것 같다. ((약간의 오탈자가 있긴하지만 거슬릴 수준은 아니었다)) 작년 말 정도에 ((아마 훈련소 갔다온 직 후?)) 자동화된 빌드/테스트/전개를 생각했었는데 그 때 이 책이 있었으면 참 좋았을 것 같다. 물론 지금도 나쁘다는건 아니고 :)

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

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

8 Comments

  1. ㅠㅠ

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

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

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

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

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

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

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

  4. 별 것 아닌 일로 만드는 방법…

    지속적인 통합 – 폴 M. 듀발 외 지음, 최재훈 옮김/위키북스 얼마전 올린 ‘사람을 위한 자동화’ 이야기와 연결되는 책입니다. 2008/04/15 – [인사이드Dev] – 사람을 위한 자동화 그때 정리된 내용을…

Leave a Reply