'리팩토링'에 해당되는 글 2건

  1. 2010/03/06 TDD와 단위테스트의 바이블『xUnit 테스트 패턴』출간 (1)
  2. 2008/10/14 개발자들의 계륵 "레거시 코드", 이젠 정복하세요! (11)

TDD와 단위테스트의 바이블『xUnit 테스트 패턴』출간

사용자 삽입 이미지

xUnit 테스트 패턴
68가지 단위 테스트 패턴을 통한 테스트 코드 리팩토링 기법
제라드 메스자로스 지음 | 박일 옮김 |
1,056쪽 | 48,000원 | 2010년 3월 12일 출간 예정
YES24, 교보문고, 강컴, 인터파크, 알라딘

최근 몇 년 들어 소프트웨어 엔지니어링 분야에서 부쩍 각광을 받는 두 분야를 든다면, 애자일테스팅이 아닐까 싶습니다. 저희 책 『소프트웨어 테스팅, 마이크로소프트에선 이렇게 한다』나 『HARD CODE: 나잘난 박사의 IT 정글 서바이벌 가이드』에서도 읽을 수 있듯이 해외 유수 업계에서는 이미 테스팅에 방점을 두고 가치를 부여한 지 오래입니다. 소프트웨어 개발 이후에 테스트를 실시하는 기존 폭포수 개발 방법론에서 벗어나 단위 테스트를 통한 반복과 점증 개발을 적용한 애자일 기법과 테스팅은 불가분의 관계로 상생하고 있는 것 같습니다.

이 책의 원서 xUnit Test Patterns는 이미 해외에서도 테스트 주도 개발(TDD), 단위 테스트의 모든 것이라는 찬사와 함께, "테스팅에 강력한 동기 부여, 필독 레퍼런스, 모든 소프트웨어 개발자의 필독서" 등 많은 아마존 독자에게 별 5개로 이어지는 호평을 받고 있는 책입니다.

xUnit 툴과 철학은 프로그래밍 팀이 적은 리스크로 코드를 대단위로 수정할 수 있게 도와주는 강력한 회귀 테스트 스위트를 작성할 수 있고, 테스트 주도 개발로 설계 과정을 다시 생각해볼 수 있는 굉장한 기회를 제공합니다.

이 책은 새로운 사람들에게 이 쪽 분야에 대한 지식을 제공할 뿐만 아니라 경험 많은 전문가가 자신의 지식을 동료들에게 전달하기 위한 용어와 기초를 제공합니다. 유명한 Gang of Four의 책인 『디자인 패턴(Design Patterns)』은 많은 사람에게 객체지향 설계의 숨어있는 보물상자를 열어줬습니다. 이 책은 xUnit에 있어 그런 역할을 할 것입니다.

마틴 파울러
ThoughtWorks의 수석 과학자이자 마틴 파울러 시리즈 에디터


『xUnit 테스트 패턴』은 가장 인기 있는 단위 테스트 프레임워크인 xUnit으로 자동 테스트를 작성하는 방법을 완벽하게 지도해줍니다. 애자일 코치이자 테스트 자동화 전문가인 제라드 메스자로스(Gerard Meszaros)는 테스트 작성, 이해, 유지 보수를 쉽게 해주는 68개의 입증된 패턴을 소개한다. 또한 어떻게 하면 테스트를 더 견고하고 반복 가능하며, 쉽게 만들 수 있는지도 보여줍니다.

1064쪽에 달하는 방대한 내용을 3부로 나눠 다루는 이 책에서는 우선 1부에서 테스트 전략에서부터 실제 테스트 코딩까지 테스트 자동화에 대한 모든 것을 자세하게 설명합니다. 그리고 2부에서는 자주 만날 수 있는 18가지 ‘테스트 냄새’ 목록을 보여주고, 문제의 근본 원인과 그에 맞는 가장 적당한 패턴을 찾는 데 도움을 주는 해결 방안을 제공합니다. 3부에서는 각 패턴을 자세하게 설명하고, 다양한 프로그래밍 언어로 작성된 예제 코드를 통해 리팩토링하는 방법을 보여줍니다.

[ 이 책에서 다루는 내용 ]

■ 테스트를 더 빠르게, 잘 작성하는 방법
■ 자동 테스트의 4단계: 픽스처 설치, 테스트 대상 시스템 실행, 결과 검증, 픽스처 해체
■ 테스트 스텁(Test Stub)과 모의 객체(Mock Object)로 소프트웨어를 환경으로부터 격리시켜 테스트 커버리지를 향상시키는 방법
■ 테스트하기 좋게 소프트웨어를 설계하는 방법
■ (코드 냄새, 동작 냄새, 프로젝트 냄새를 포함한) 테스트 ‘냄새’로 문제를 파악하고, 이런 냄새를 언제 어떻게 제거할 수 있는지 알아내는 방법
■ 테스트를 리팩토링해 더 단순하고 견고하며 빠르게 실행될 수 있게 만드는 방법

<한눈에 살펴보는 『xUnit 테스트 패턴』의 구성>

사용자 삽입 이미지
사용자 삽입 이미지

<이 책에서 다루는 xUnit 기본 패턴과 68가지 단위 테스트 패턴>
사용자 삽입 이미지

사실 앞에서 잠시 애자일 이야기를 꺼냈지만, 사실 이 책은 애자일 개발환경인지 전통적인 폭포수기법 개발환경인지는 중요하지 않습니다. 테스트 주도개발을 하는지 사후 테스트를 작성하는지도 중요하지 않습니다. 이 책에 나온 패턴과 냄새는 모든 xUnit 계열에 적용할 수 있으므로, 소프트웨어 관련 업계에 종사하는 모든 개발자와 테스터, 관리자가 꼭 읽어야 할 책일 것입니다.

박피디의 게임 아키텍트 블로그로 유명한 박일님이 훌륭히 번역해주신 이 책은, "‘ 1~2년만 더 빨리 읽었더라면 삽질을 덜 했을 텐데’ 하는 생각에 아쉬움도 들더군요. ‘우리 프로젝트에서는 어떻게 적용해볼 수 있을까’를 생각하면서 읽으면 더 재미있게 보실 수 있습니다."라고 역자서문에서도 밝혔듯이 지금 테스트와 리팩토링, 아니 난해한 코드로 골머리를 앓고있는 모든 개발자와 테스터께 훌륭한 교본이 되리라 생각합니다.

난해한 여러 냄새와 패턴 이름을 우리말에 적절히 번역하느라 정말 고생 많으셨던 역자 박일님과 막강 조언을 서슴지 않으셨던 여러 베타리더분들께 진심으로 감사의 말씀을 전합니다.

『xUnit 테스트 패턴』은 YES24, 교보문고, 강컴, 인터파크, 알라딘에서 예약판매중이며, 다음 주 금요일 3월 12일에 독자 여러분을 찾아갑니다. ^^
크리에이티브 커먼즈 라이센스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
2010/03/06 11:32 2010/03/06 11:32
트랙백 2 : 댓글 1

트랙백 주소 :: http://www.acornpub.co.kr/blog/trackback/354

  1. TDD와 단위테스트의 바이블『xUnit 테스트 패턴』출간

    Tracked from 박피디의 게임 아키텍트 블로그 2010/03/06 14:27 DELETE

    에이콘 출판사 블로그에 책 소개가 올라왔네요. TDD와 단위테스트의 바이블『xUnit 테스트 패턴』출간 저 책을 처음 번역 시작한 게 작년 4월 1일이었는데, 여러 작업 끝에 지금에서야 나옵니

  2. snaiper의 생각

    Tracked from snaiper's me2DAY 2010/03/06 16:24 DELETE

    RT jrogue님 RT julymon님: RT bliss99님: 트위터에도 이 책 관심 있는 분이 많으실까요? 에이콘에서 곧 출간되는『xUnit 테스트 패턴』 http://www.acornpub.co.kr/blog/354

  1. 외발자전거

    2010/03/07 16:57 Modify/Delete Reply

    원서를 읽기에는 두께의 부담(원서의 두께를 직접 봐서... ^_^)으로 인해 번역되었으면 좋겠다라는 생각을 했는데...
    수고하셨습니다... 어서 예약해야겠습니다.

댓글 쓰기


개발자들의 계륵 "레거시 코드", 이젠 정복하세요!

사용자 삽입 이미지
레거시 코드 활용 전략
손대기 두려운 낡은 코드, 안전한 변경과 테스트 기법
마이클 페더스 지음 | 이우영 고재한 옮김 |
516쪽 | 36,000원 | 2008년 10월 22일 출간예정
legacy
n. (pl. -cies)
1 [法] (유언에 의한 동산의) 유증(遺贈); 유산.
2  (조상이나 선인의) 유산, 유물; 과거의 유산.
출처: NEWACE(금성판 뉴에이스)사전

레거시 코드.
버리자니 아깝고, 손대자니 두려운 코드.

뭔가를 만들어 그 기능성이 떨어지지 않도록 유지보수하는 일은 어떤 산업 분야에서건 매우 중요한 일입니다. 게다가 소프트웨어에서 생명줄과도 같은 코드를 유지보수하는 일은 꽤나 중요한 일입니다만, 대부분 레거시 코드는 개발자들에게는 계륵(鷄肋)과도 같은 존재를 넘어 두려움의 대상이기도 합니다.

처음 시스템을 구축할 때의 업무환경을 그대로 유지하기란 사실 불가능한 일입니다. 결국 그럭저럭 돌아가고 있는 소프트웨어에 불가피하게 손을 대야만 하는 일이 필연적으로 생기게 마련이죠. 이때 소스코드도 없고 디컴파일도 불가능해 유지보수는커녕 정체파악도 불가능한 블랙박스가 되어버렸다면 이건 그야말로 진퇴양난 & 초난감 사태가 아닐 수 없습니다. 그런데 다행히 소스코드가 있으면 좀 나을까요? 기능 추가나 리팩토링을 하기 위해서는 테스트가 필수입니다. 그런데 테스트 가능성까지 제로인 경우에는 도대체 어디서부터 어떻게 손을 대야 할까요?

저자는 다년간 오브젝트 멘토 사에서 활동하면서 수많은 고객의 레거시 시스템을 보완하고 유지보수하고 테스트하고 제어하면서 쌓아온 다양한 경험에 기초해 이 책을 집필했습니다. 자바, C, C++로 저자가 직접 작성한 실제 사례 코드는 개발자들의 이해도를 높이는 데 큰 도움이 됩니다.

백문이 불여일견. 이 책에서 다루는 내용은 목차를 한번 훑어보면 가장 이해가 빠르실 듯합니다. 이 책 또한 3부로 나뉘어 1부에서는 소프트웨어 변경 전에 코드 변경 원리를 이해하는 워밍업 단계를 거칩니다. 2부에서는 이 책의 핵심 부분으로서 개발자들이 가장 많이 접하는 실제 코드 수정 사례를 보여주고, 3부에서는 레거시 코드 재활용을 하게 되면 필연적으로 발생하는 골치아픈 문제인 코드간의 얽히고 설킨 의존관계를 깨는 24가지 기법을 상세하게 설명합니다.

1부. 워밍업: 코드 변경 원리를 이해하라
1장. 소프트웨어 변경
2장. 효과적인 피드백 활용
3장. 감지와 분리
4장. 봉합 모델
5장. 레거시 코드를 위한 도구

2부. 본격적인 소프트웨어 변경: 코드 이렇게 고치자

6장. 고칠 건 많고 시간은 없고...
7장. 코드 하나 바꾸는 데 왜 이리 오래 걸리지?
8장. 특징, 어떻게 추가할까?
9장. 뚝딱! 테스트 하니스에 클래스 제대로 넣기
10장. 테스트 하니스에서 실행할 수 없는 메소드
11장. 코드 변경 과정에서 꼭 테스트해야 할 메소드
12장. 클래스 의존관계, 반드시 없애야 할까?
13장. 변경에 필요한 테스트는 뭐가 있을까?
14장. 우릴 미치게 하는 라이브러리 의존관계
15장. 응용프로그램이 모두 API 호출로 이뤄졌다면?
16장. 코드를 잘 고치기엔 내가 모르는 2%
17장. 뼈대가 약한 내 응용프로그램
18장. 발목 잡는 테스트 코드
19장. 객체지향이 아니라서 위험하다고? 그럼 이렇게 고쳐 봐!
20장. 내 프로젝트 군살 빼기
21장. 동일 코드의 반복 수정, 그만할 수는 없을까?
22장. '괴물 메소드'와의 혈투, 승부수는 적절한 테스트 루틴
23장. 위반사항을 점검하는 몇 가지 기법
24장. 무너진 코드의 하늘, 솟아날 구멍이 있을까?

3부. 반드시 넘어야 할 산: 코드 변경의 난맥, 의존관계를 극복하라

25장. 의존관계를 깨는 기법
부록. 리팩토링

왠지 뭔가 한줄 한줄 헤드카피 같은 목차를 보시면 느끼셨겠지만, 저자 스스로 다양한 이론을 만들어 노하우를 공개한 책 답게 새롭게 등장하는 용어도 참 많습니다. 그만큼 용어 선정부터 번역, 편집까지 정말(!) 쉽지 않은 책이었습니다. 얼마 전 만난 역자분과도 오랜만의 회포(?)를 풀었을 만큼 긴 시간을 들인 이 책을 번역하느라 고생하신 이우영님과 고재한님 정말 고생 많으셨습니다. 이 책에 엮인(!) 분들이 한둘이 아닙니다. 허모님, 정모님, 황우님. 기타 등등. 그간 마음 고생 참 많으셨죠? ^^; 책 나오면 그 순간이 끝이 아니라 저희들은 독자분의 반응을 살피기까지 계속 마음을 졸여야 하는데요. 책이 끝나고 좋은 평 받게 되면 우리끼리라도 맥주 한잔씩으로 회포를 풀어야 하지 않을까 싶습니다. -0- 아함~

참, 마지막으로 이 책과 함께 읽으면 정말 좋은 책 두 권을 소개드려요.

바로 『켄트 벡의 구현 패턴: 읽기 쉬운 코드를 작성하는 77가지 자바 코딩 비법』과 『엔터프라이즈급 애자일 방법론: 프로젝트 규모 확장에 따른 애자일 기법과 사례』입니다. 저자는 읽기 쉽고 이해하기 쉬운 코드 명명법 등과, 테스트 주도 개발 등 실용적인 애자일 방법론에 대해서도 설파를 합니다. 이 책들의 많은 내용이 서로 연관성을 지니고 있습니다. 이 책 세 권으로 이제 레거시 코드가 더는 두려운 존재가 아닌, 진귀한 보화가 가득한 보물창고로 거듭나길 바라겠습니다. 오늘도 에이콘은 독자 여러분의 삽질과 시간 낭비를 최전선에서 온몸으로 막아드리겠습니다. 열공하세요. ^^/

+ 추가
자고 일어나니 세상이 바뀌어있더라는 말처럼, 밤샘하다가 쓴 글인데 잠깐 눈붙이고 나왔더니 이렇게 여러 분들이 댓글과 트랙백으로 뜨겁게 성원해주셨네요. 우와~ 정말 정말 감사합니다. 저희는 지금 모처에서 마무리 잘 하고 있습니다. 일주일만 기다려주세요. :)

마지막으로 독자분들의 편의를 위해 친절한 링크 알려드려야죠. ^^
이 책은 지금 YES24, 강컴, 교보문고, 알라딘, 인터파크 등에서 예약판매중입니다.
여러분의 사랑이 각 서점까지 쭈우우욱 이어지길 기대해보며!

크리에이티브 커먼즈 라이센스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
2008/10/14 04:15 2008/10/14 04:15
트랙백 5 : 댓글 11

트랙백 주소 :: http://www.acornpub.co.kr/blog/trackback/271

  1. 사진찍는프로그래머의 생각

    Tracked from eslife's me2DAY 2008/10/14 07:58 DELETE

    개발자들의 계륵 '레거시 코드', 이젠 정복하세요! 리팩토링 외에는 별다른 비법이 없는 줄 알았는데 이런 책도 있네요.. 레거시 때문에 매일 폭탄 맞는 기분인데. 이 책도 사야겠군요

  2. 어떤 의미로 무서운 IT서적 출판사, 에이콘

    Tracked from 여름으로 가는 문 2008/10/14 09:34 DELETE

    관심있게 보고 있는 IT 서적 출판사가 세 군데 있는데, 에이콘, 한빛, 위키북스 이다. 그런데 개인적으로 생각하기에 그 중 근래에 들어 특히 '앞서간다!'라는 느낌을 주는 출판사는 에이콘이 ..

  3. 용우의 생각

    Tracked from mixed's me2DAY 2008/10/14 10:15 DELETE

    와우! 드디어 나왔다. 빨리 보고 싶당~~

  4. 멋진 책이 나왔다. 이름하야 레거시 코드 활용전략

    Tracked from 대한민국 대표 개발자 [짱가™] 2ed 2008/10/14 11:46 DELETE

    광남형에게서 번역중이라는 말은 들었었고 리뷰에도 조금이나마 힘을 보탠 적이 있는 이 책이 기다림의 끝에 등장했다. 올해와 내년의 개인적인 주제/화두를 패턴,리팩토링,테스트 로 잡고 ..

  5. 진독의 생각

    Tracked from jindog's me2DAY 2008/10/14 19:26 DELETE

    이 책 읽으면 우리 코드도 테스팅 가능해질까?

  1. 레몬에이드

    2008/10/14 09:21 Modify/Delete Reply

    와 코드 변경에 이런 지침도 있군요 ㅎ
    리스트는 늘어만 가고 ㅎ

    조만간 대량으로 에이콘 책들 서평을 올릴꺼 같아요
    그동안 받기만 하고 돌려드리지 못해 죄송했던 마음 모두 담아서
    열심히 작성하고 있으니 기대 쪼꿈만 해주세요 ^^

  2. 짱가

    2008/10/14 10:42 Modify/Delete Reply

    아... 드디어 나왔군요...

  3. 버드

    2008/10/14 10:50 Modify/Delete Reply

    이 책이 번역서로 나오다니.. 오..
    정말 기대됩니다..^^

  4. kenu

    2008/10/14 12:46 Modify/Delete Reply

    제대로 못 도와드려서 많이 미안한 걸요. 정말 산고가 크셨습니다.
    아, 제가 발견한 레거시코드 건강검진 요령이 하나 있습니다.
    http://findbugs.sf.net 로 일단 진단해보시는 것도 좋습니다.

  5. 에이콘

    2008/10/14 18:16 Modify/Delete Reply

    레몬에이드님, 기대 "쪼꿈 많이" 하겠습니다. -0- 애자일 책부터 시작해주시죠. ^^/

    짱가님, 좋은 글 써주셔서 정말 감사합니다. ^^

    버드님, 기대해주시는 만큼 어깨도 살짝 무거워지네요. :)

    kenu님, 전 그날 새벽 3시 뜬금없는 문자 메시지의 기억을 아직도 지울 수 없다는.ㅎㅎ 대신 많이 많이 홍보해주세요. ^^ 닥.집. 화이팅!!! ㅋㅋㅋ

  6. 짱가

    2008/10/16 17:03 Modify/Delete Reply

    닥.집. ㅋㅎㅎㅎㅎ

  7. nnextia

    2008/10/20 08:28 Modify/Delete Reply

    기대되는 책입니다....정말 많은 도움이 되겠네요.

    • 에이콘 2008/10/20 21:50 Modify/Delete

      안녕하세요. nnextia님. 번역하신 애자일 책에는 댓글 안 남기시더니! :) 애자일 책 번역해보신 만큼 이 책도 아마 재미있게 읽으실 거에요.

  8. eclipse4j

    2008/11/01 01:01 Modify/Delete Reply

    강컴 서평에 제기된 문제로 인해서 고민중 이었는데, 흘. 주문 걸었습니다.

    광남이 형이 열심히 읽는 모습 보고, 함 보고 싶기는 했는데요.

  9. 번역구려?

    2009/06/02 21:06 Modify/Delete Reply

    번역이 이상하게됬다던데....

    디폴트 구조는 뭐죠?

    • 에이콘 2009/06/03 11:18 Modify/Delete

      안녕하세요. 독자님
      말씀하신 155페이지의 오탈자는 정오표에 올렸습니다. http://www.acornpub.co.kr/book/legacy의 정오표에서 다른 오탈자도 확인하시기 바랍니다. 궁금한 점이나 지적하실 사항이 있으실 땐 책 이미지 오른쪽의 오탈자 신고란을 이용해주세요.

댓글 쓰기