CI(Continuous Integration)라는 개념을 나는 늦게 알게 되었는데 이 책은 2006년도에 이미 발간되었다.
9년이나 지나서 그 사이이에 CVS는 서브버전을 넘어 Git이나 Mercurial 같은 분산저장소관리시스템에 자리를 이미 넘겨둔지 오래되었다. 하지만 이 책이 아직 유용한 이유는 단순히 CI를 하기 위한 테크닉만을 다루지 않기 때문이다. '왜 그런지'에 초점을 다루고 있기 때문에 시간을 넘어서 가치가 계속 되기 때문이다. 테크닉은 세월이 지나면 바뀌게 마련이지만 본질은 잘 바뀌지 않는 가치이다.
이 책을 읽게 된 계기는 이직을 하려는 회사가 애자일을 주도적으로 사용을 하고 있기 때문에 미리 책으로 나마 알고 적응을 하는데 도움을 받기 위해서 였다. 아직 몇일 읽지 않았기 때문에 자세한 것은 완료하고 다시 정리를 해보아야겠다.
p.44 지속적인 통합 실천 방법
실천 방법 |
설명 |
코드를 자주 커밋하세요 |
적어도 하루에 한 번은 버전 관리 저장소에 코드를 커밋하세요 |
깨진 코드를 커밋해선 안 됩니다 |
다른 코드와 함께 컴파일되지 않거나 테스트를 깨먹는 코드를 커밋하지 마세요 |
빌드가 깨지면 즉시 고치세요 |
팀의 책임일지라도, 최근에 코드를 커밋한 개발자가 깨진 빌드를 고치는 일에 관여해야 합니다. |
자동화된 개발자 테스트를 작성하세요 |
소프트웨어가 작동하는지 자동화된 개발자 테스트를 사용해 검증하세요. 자동화된 빌드와 함께 개발자 테스트를 돌리고, 지속적인 통합을 이용해 개발자 테스트를 돌리세요. |
테스트와 검사는 모두 통과해야 합니다 |
버전 관리 저장소에 코드를 커밋하기에 앞서 90%나 95%가 아닌 모든 테스트가 통과해야 합니다. |
개인 빌드를 돌리세요 |
통합 빌드가 실패하지 않도록, 저장소에서 가장 최근의 변경 사항을 가져오고, 로컬에서 개인 시스템 빌드라 알려진 완전한 통합 빌드를 돌리세요. |
깨진 코드는 가져오지 마세요 |
빌드가 실패했는데, 저장소에서 코드를 가져오면 시간을 낭비하게 될 겁니다. 코드가 바뀌길 기다리거나, 개발자가 빌드 실패를 고치는 일을 돕고 나서 최신 코드를 가져오세요. |
[책 안에서]
p.3 먼저, 기초부터 통달하라 - 래리 버드(Larry Bird, 미국 프로 농구 선수)
"'매일 사과 하나를 먹어라' 라고 말하는 것과 실제로 사과를 먹는 것 사이엔 커다란 차이가 있다." - Javaranch.com의 설립자 케이시 시에라(Kathy Sierra)
"테스트해봐야 효율적이지 않아" 라든가 "코드 검토는 시간 낭비야" 라든가 "잦은 소프트웨어 빌드는 따르기엔 좋지 않은 실천 방법"이라고 말하는 사람은 드뭅니다. 하지만 겉보기엔 기초적인 것 같은 이런 실천 방법도 설교보다는 실천하는 데 중점을 둬야 합니다. 이런 실천 방법이 프로젝트에 적용되는 빈도가 비참할 정도로 낮기 때문입니다.
p.23 억측은 일을 망치는 근원이다 - 웨던의 '판단 보류의 법칙'
p.47 품질이란 누가 보지 않을 때에도 제대로 돌아가는 걸 뜻한다 - 헨리 포드
p.65 이 빌어먹을 우주는 조각조각 내서 다시 구축해야 한다 - 헨리 밀러, 미국의 작가이자 화가(1891-1980)
p.107 인생은 변하지 않는다. 단지 우리가 변할 뿐이다. - 헨리 데이비드 소로우
p.129 연습이 완벽을 낳는다. - 영국 속담
신뢰할 만한 (re-li-a-ble) a. 연이어 시도해도 같은 결과가 나온다.
p.161 다른 이의 머리를 이용해 자기 일을 해내는 사람이야말로 위대한 사람이다 - 돈 피아트
p.189 제대로 하려면 직접 하라 - 영국 속담
p.203 일반적으로 살아가는 데 있어 가장 성공적인 사람은 최고의 정보를 가진 사람이다 - 벤자민 디즈렐리(18004-1881)
p.245 기술을 갈고 닦고자 하는 장인이라면 우선 도구부터 갈아야 한다 - 중국속담
[읽기 기록]
1. 3/9 ~p.46
2. 3/10 ~p.94
3. 3/11 ~p.104
4. 3/12 ~p.162
5. 3.13 ~p.204
6. 3/14 ~p.290 (完)
'Book' 카테고리의 다른 글
[책] 리팩토링 데이터베이스 - 스캇 W. 앰블러, 프라모드 J. 세달리지 (0) | 2015.05.07 |
---|---|
[책] 스크럼 - 켄 슈와버/마이크 비들 (0) | 2015.05.02 |
[책] 레거시 코드 활용 전략 - 마이클 페더스 (1) | 2014.05.14 |
[책] JUnit in Action (0) | 2014.03.14 |
[책] 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (0) | 2014.03.14 |