1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

레거시 코드 활용 전략(에이콘 소프트웨어 테스팅 시리즈)
저자 : 마이클C.패더스 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 이정문

2018.09.28 ㅣ 540p ㅣ ISBN-13 : 9791161752075

정가40,000
판매가38,000(5% 할인)
적립금 1,600원 (4%)
배송일정 04월 29일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 시스템공학 > 소프트웨어공학
시스템 내에 오래된 코드를 다루는 방법을 배울 수 있다. 오래된 코드, 즉 레거시 코드는 그 코드에 익숙한 사람도 없고, 테스트 루틴도 없어 관리하기 어렵다. 저자는 다년간의 현장 경험과 실제 코드를 바탕으로 다양한 기법을 소개한다. 여러 언어뿐만 아니라, 현업에서 사용되는 도구에 대해 현실적인 조언을 해준다. 코드 내 의존 관계 해결, 효과적 테스팅 방법 등 24가지 기법을 통해 시스템의 낡은 코드를 변경, 관리하는 데 있어 많은 통찰력을 줄 것이다.
펼쳐보기

[목 차]

1부. 코드 변경의 메커니즘

1장. 소프트웨어 변경
소프트웨어 코드를 변경하는 네 가지 이유
기능 추가와 버그 수정
설계 개선
최적화
네 가지 이유의 종합
위험한 변경

2장. 피드백 활용
단위 테스트란?
상위 수준의 테스트
테스트를 통한 코드 보호
레거시 코드를 변경하는 순서
변경 지점을 식별한다
테스트 루틴을 작성할 위치를 찾는다
의존 관계를 제거한다
테스트 루틴을 작성한다
변경 및 리팩토링을 수행한다
이후의 내용

3장. 감지와 분리
협업 클래스 위장하기
가짜 객체
가짜 객체의 양면성
가짜 객체의 핵심
모조 객체

4장. 봉합 모델
엄청난 양의 테스트
봉합
봉합의 종류
전처리 봉합
링크 봉합
객체 봉합

5장. 도구
리팩토링 자동화 도구
모조 객체
단위 테스트 하네스
JUnit
CppUnitLite
NUnit
기타 xUnit 프레임워크
일반적인 테스트 하네스
FIT
피트니스

2부. 소프트웨어 변경

6장. 고칠 것은 많고 시간은 없고
발아 메소드
장점과 단점
발아 클래스
장점과 단점
포장 메소드
장점과 단점
포장 클래스
요약

7장. 코드 하나 바꾸는 데 왜 이리 오래 걸리지?
코드 이해하기
지연 시간
의존 관계 제거
빌드 의존 관계
요약

8장. 어떻게 기능을 추가할까?
테스트 주도 개발
실패 테스트 케이스 작성
컴파일
테스트 통과시키기
중복 제거
실패 테스트 케이스 작성
컴파일
테스트 통과시키기
중복 제거
테스트 실패 케이스 작성
컴파일
테스트 통과시키기
중복 제거
차이에 의한 프로그래밍
요약

9장. 뚝딱! 테스트 하네스에 클래스 제대로 넣기
성가신 매개변수
숨겨진 의존 관계
복잡한 생성자
까다로운 전역 의존 관계
공포스러운 인클루드 의존 관계
양파껍질 매개변수
별명을 갖는 매개변수

10장. 테스트 하네스에서 이 메소드를 실행할 수 없다
숨어있는 메소드
언어의 편리한 기능
탐지 불가능한 부작용

11장. 코드를 변경해야 한다
영향 추론
전방 추론
영향 전파
영향 추론을 위한 도구
영향 분석을 통한 학습
영향 스케치의 단순화

12장. 클래스 의존 관계, 반드시 없애야 할까?
교차 지점
간단한 경우
상위 수준의 교차 지점
조임 지점을 이용한 설계 판단
조임 지점의 함정

13장. 변경해야 하는데, 어떤 테스트를 작성해야 할지 모르겠다
문서화 테스트
클래스 문서화
정해진 목표가 있는 테스트
문서화 테스트를 작성하기 위한 경험칙

14장. 나를 미치게 하는 라이브러리 의존 관계

15장. 애플리케이션에 API 호출이 너무 많다

16장. 변경이 가능할 만큼 코드를 이해하지 못하는 경우
노트/스케치
표시 나열
책임 분리
메소드 구조의 이해
메소드 추출
변경 영향의 이해
스크래치 리팩토링
미사용 코드 삭제

17장. 내 애플리케이션은 뼈대가 약하다
시스템의 스토리텔링
네이키드 CRC
대화 음미

18장. 테스트 코드가 방해를 한다
클래스 명명 규칙
테스트 코드의 배치

19장. 내 프로젝트는 객체 지향이 아니다
간단한 경우
어려운 경우
새로운 동작의 추가
객체 지향의 장점 이용
모든 것이 객체 지향적이다

20장. 이 클래스는 너무 비대해서 더 이상 확장하고 싶지 않다
책임 파악
그 밖의 기법들
더 나아가기
전략
전술
클래스 추출을 마친 후

21장. 반복되는 동일한 수정, 그만할 수는 없을까?
첫 번째 단계

22장. ‘괴물 메소드’를 변경해야 하는데 테스트 코드를 작성하지 못하겠다
괴물 메소드의 다양한 종류
불릿 메소드
혼잡 메소드
리팩토링 자동화 도구를 사용해 괴물 메소드 공략하기
수동 리팩토링에 도전
감지 변수 도입
아는 부분 추출하기
의존 관계 이삭줍기
메소드 객체 추출
전략
뼈대 메소드
처리 시퀀스 발견
우선 현재 클래스 내에서 추출
작은 조각 추출
추출을 다시 할 각오

23장. 기존 동작을 건드리지 않았음을 어떻게 확인할 수 있을까?
초집중 모드에서 편집하기
단일 목적 편집
서명 유지
컴파일러 의존
짝 프로그래밍

24장. 어찌해야 할지 모르겠다. 나아질 것 같지 않아
3부 의존 관계 제거 기법
25장 의존 관계 제거 기법
매개변수 적응
메소드 객체 추출
정의 완성
전역 참조 캡슐화
정적 메소드 드러내기
호출 추출과 재정의
팩토리 메소드 추출과 재정의
get 메소드 추출과 재정의
구현체 추출
더 복잡한 예제
인터페이스 추출
인스턴스 위임 도입
정적 set 메소드 도입
연결 대체
생성자 매개변수화
메소드 매개변수화
매개변수 원시화
특징 끌어올리기
의존 관계 밀어 내리기
함수를 함수 포인터로 대체
전역 참조를 get 메소드로 대체
서브클래스화와 메소드 재정의
인스턴스 변수 대체
템플릿 재정의
텍스트 재정의

부록. 리팩토링 펼처보기
펼쳐보기
- 기능 추가, 버그 수정, 설계 개선, 성능 최적화 등의 소프트웨어 변경 기법
- 레거시 코드를 테스트 하네스 안에 넣는 방법
- 새로운 문제 발생으로부터 시스템을 보호해주는 테스트 루틴 작성법
- 자바, C++, C, C# 언어로 작성된 예제를 통해 소개하는 어떤 언어나 플랫폼에도 사용 가능한 기법
- 코드에서 수정해야 할 부분을 정확히 찾아내는 방법
- 객체 지향적으로 작성되지 않은 레거시 시스템을 다루는 기법
- 구조가 모호한 애플리케이션을 다루는 방법
펼쳐보기
마이클 C. 페더스 Michael C. Feathers
멘토링, 능력 개발, 지식 전달, 소프트웨어 개발 관리 등 서비스 제공 분야의 글로벌 리더 업체인 오브젝트 멘토에 근무하고 있다. 테스트 주도 개발, 리팩토링, 객체 지향 설계, 자바, C#, C++, 익스트림 프로그래밍에 대한 트레이닝과 멘토링 등의 컨설팅을 다수 수행했으며, JUnit 테스트 프레임워크의 C++ 버전인 CppUnit과 통합 테스트 프레임워크 FIT의 C++ 버전인 FitCpp의 개발자이기도 하다. ACM과 IEEE 회원이다. OOPSLA 콘퍼런스(객체 지향 기법에 관한 국제 콘퍼런스)에서 코드 페스티벌 의장을 세 차례 맡았다.


옮긴이 이정문
컴퓨터공학을 전공했으며 다수의 원서를 번역했다. 번역서로는 에이콘출판사에서 펴낸 『비기닝 ANSI C++』(2008), 『데이터 과학으로 접근하는 정보보안』(2016), 『파이썬 플레이그라운드』(2016) 등이 있다.
펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자
교환/반품 방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
교환/반품 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
교환/반품 비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
교환/반품 불가사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기