리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (2판)

리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (2판)

$35.00
Description
개발자가 선택한 프로그램 가치를 높이는 최고의 코드 관리 기술
마틴 파울러의 『리팩터링』이 새롭게 돌아왔다.
지난 20년간 전 세계 프로그래머에게 리팩터링의 교본이었던 이 책의 1판은, 기존 코드의 디자인을 개선하고 소프트웨어 유지 관리 능력을 향상시켰으며 기존 코드를 이해하기 쉽게 만드는 데 도움을 주었습니다. 간절히 기다려온 이번 개정판에는 프로그래밍 환경의 중요한 변화가 대거 반영되었습니다.

새로운 리팩터링 카탈로그를 자바스크립트 코드로 제시합니다. 리팩터링 원칙부터 클래스 없이 리팩터링하는 방법과 데이터 조직화, 조건부 로직 간소화 방법을 다룹니다. 또한 언어에 상관없이 리팩터링을 성공적으로 수행하는 실질적인 방법을 알려줍니다.

북 트레일러

  • 출판사의 사정에 따라 서비스가 변경 또는 중지될 수 있습니다.
  • Window7의 경우 사운드 연결이 없을 시, 동영상 재생에 오류가 발생할 수 있습니다. 이어폰, 스피커 등이 연결되어 있는지 확인 하시고 재생하시기 바랍니다.
저자

마틴파울러

저자:마틴파울러MartinFowler
ThoughtWorks수석과학자.엔터프라이즈소프트웨어설계에주력한다.특히좋은설계와설계개선에관심이많다.소프트웨어개발관련다수의책을집필했고,제어역전(InversionofControl)과의존성주입(DependencyInjection)용어를대중화시킨장본인이다.

역자:개앞맵시(이복연)
고려대학교컴퓨터학과를졸업하고삼성소프트웨어멤버십을거쳐,삼성전자에서자바가상머신,바다플랫폼,챗온메신저서비스등을개발했다.주업무외에분산빌드,지속적통합,앱수명주기관리도구,애자일도입등동료개발자들에게실질적인도움을주는일에적극적이었다.그후창업전선에뛰어들어소셜서비스와금융거래프레임워크등을개발하다가,무슨바람이불어서인지책을만들겠다며기획?편집자(자칭WisdomCompiler)로변신했다.한빛미디어에서『밑바닥부터시작하는딥러닝』시리즈와『EffectiveUnitTesting』을번역했고,인사이트에서『이펙티브자바(3판)』과『JUnit인액션(2판)』을번역했다.

역자:남기혁
고려대컴퓨터학과에서학부와석사과정을마친후한국전자통신연구원에서선임연구원으로재직하고있다.한빛미디어에서출간한『Make:센서』,『메이커매뉴얼』,『이펙티브디버깅』,『전문가를위한C++(4판)』,에이콘출판사에서출간한『Go마스터하기』,『자율주행자동차만들기』,『TheHundredPageMachineLearningBook』등을번역했다.

목차

CHAPTER01리팩터링:첫번째예시
1.1자,시작해보자!
1.2예시프로그램을본소감
1.3리팩터링의첫단계
1.4statement()함수쪼개기
1.5중간점검:난무하는중첩함수
1.6계산단계와포맷팅단계분리하기
1.7중간점검:두파일(과두단계)로분리됨
1.8다형성을활용해계산코드재구성하기
1.9상태점검:다형성을활용하여데이터생성하기
1.10마치며

CHAPTER02리팩터링원칙
2.1리팩터링정의
2.2두개의모자
2.3리팩터링하는이유
2.4언제리팩터링해야할까?
2.5리팩터링시고려할문제
2.6리팩터링,아키텍처,애그니(YAGNI)
2.7리팩터링과소프트웨어개발프로세스
2.8리팩터링과성능
2.9리팩터링의유래
2.10리팩터링자동화
2.11더알고싶다면

CHAPTER03코드에서나는악취
3.1기이한이름
3.2중복코드
3.3긴함수
3.4긴매개변수목록
3.5전역데이터
3.6가변데이터
3.7뒤엉킨변경
3.8산탄총수술
3.9기능편애
3.10데이터뭉치
3.11기본형집착
3.12반복되는switch문
3.13반복문
3.14성의없는요소
3.15추측성일반화
3.16임시필드
3.17메시지체인
3.18중개자
3.19내부자거래
3.20거대한클래스
3.21서로다른인터페이스의대안클래스들
3.22데이터클래스
3.23상속포기
3.24주석

CHAPTER04테스트구축하기
4.1자가테스트코드의가치
4.2테스트할샘플코드
4.3첫번째테스트
4.4테스트추가하기
4.5픽스처수정하기
4.6경계조건검사하기
4.7끝나지않은여정

CHAPTER05리팩터링카탈로그보는법
5.1리팩터링설명형식
5.2리팩터링기법선정기준

CHAPTER06기본적인리팩터링
6.1함수추출하기
6.2함수인라인하기
6.3변수추출하기
6.4변수인라인하기
6.5함수선언바꾸기
6.6변수캡슐화하기
6.7변수이름바꾸기
6.8매개변수객체만들기
6.9여러함수를클래스로묶기
6.10여러함수를변환함수로묶기
6.11단계쪼개기

CHAPTER07캡슐화
7.1레코드캡슐화하기
7.2컬렉션캡슐화하기
7.3기본형을객체로바꾸기
7.4임시변수를질의함수로바꾸기
7.5클래스추출하기
7.6클래스인라인하기
7.7위임숨기기
7.8중개자제거하기
7.9알고리즘교체하기

CHAPTER08기능이동
8.1함수옮기기
8.2필드옮기기
8.3문장을함수로옮기기
8.4문장을호출한곳으로옮기기
8.5인라인코드를함수호출로바꾸기
8.6문장슬라이드하기
8.7반복문쪼개기
8.8반복문을파이프라인으로바꾸기
8.9죽은코드제거하기

CHAPTER09데이터조직화
9.1변수쪼개기
9.2필드이름바꾸기
9.3파생변수를질의함수로바꾸기
9.4참조를값으로바꾸기
9.5값을참조로바꾸기
9.6매직리터럴바꾸기

CHAPTER10조건부로직간소화
10.1조건문분해하기
10.2조건식통합하기
10.3중첩조건문을보호구문으로바꾸기
10.4조건부로직을다형성으로바꾸기
10.5특이케이스추가하기
10.6어서션추가하기
10.7제어플래그를탈출문으로바꾸기

CHAPTER11API리팩터링
11.1질의함수와변경함수분리하기
11.2함수매개변수화하기
11.3플래그인수제거하기
11.4객체통째로넘기기
11.5매개변수를질의함수로바꾸기
11.6질의함수를매개변수로바꾸기
11.7세터제거하기
11.8생성자를팩터리함수로바꾸기
11.9함수를명령으로바꾸기
11.10명령을함수로바꾸기
11.11수정된값반환하기
11.12오류코드를예외로바꾸기
11.13예외를사전확인으로바꾸기

CHAPTER12상속다루기
12.1메서드올리기
12.2필드올리기
12.3생성자본문올리기
12.4메서드내리기
12.5필드내리기
12.6타입코드를서브클래스로바꾸기
12.7서브클래스제거하기
12.8슈퍼클래스추출하기
12.9계층합치기
12.10서브클래스를위임으로바꾸기
12.11슈퍼클래스를위임으로바꾸기

부록A리팩터링목록
부록B악취제거기법

출판사 서평

20여년만에다시돌아온마틴파울러의리팩터링2판
리팩터링1판은1999년출간되었으며,한국어판은2002년한국에소개되었다.수많은독자에게사랑을받았으며리팩터링이란용어가프로그래밍세계에터를잡는계기가되었다.

1판출간된후18년이흐른지금리팩터링은무엇이바뀌었을까?이번2판은거의모든페이지가새로쓰였지만,리팩터링의핵심은변하지않았고,주요리팩터링기법들도여전히유효하다.2판이리팩터링을효과적으로수행하는법을더많은사람이익힐수있는촉매가되어줄것이다.


리팩터링이란?
리팩터링은겉으로드러나는코드의기능은바꾸지않으면서내부구조를개선하는방식으로소프트웨어시스템을수정하는과정이다.요컨대,리팩터링한다는것은코드를작성하고난뒤에설계를개선하는일이다.

다루는내용
이책은전문프로그래머를대상으로쓴리팩터링지침서다.절제되고효율적인방식으로리팩터링하는법을알려주는것이목표다.코드에버그가생기지않게하면서구조를더체계적으로바꾸는방법을설명한다.

누가읽어야하나
이책은소프트웨어개발을직업으로하는전문프로그래머를위해쓰였다.예시와본문에는읽고이해해야할코드가꽤많다.예시코드는모두자바스크립트로작성했지만,대부분의언어에적용할수있을것이다.이책의내용을쫓아오려면프로그래밍경험이어느정도있으면좋지만고수가아니라도읽을수있다.

코딩스타일이바뀐다
객체지향언어의문법을익혔다고저절로객체지향프로그래밍을할수있는게아니다.리팩터링카탈로그를통해어떤코드를고쳐야하는지,왜고쳐야하는지,고친코드가왜좋은지이해할수있다.이런과정을통해객체지향에어울리는코드디자인을배우게되고,자신의코딩스타일도바뀌게된다.이책을읽기전과후는코드의품질에결정적인차이가생길것이다.


주요내용
● 리팩터링프로세스와일반원칙이해하기
● 프로그램을더쉽게이해하고변경하는유용한리팩터링빠르게적용하기
● 리팩터링가능성이있는코드에서풍기는악취인식하기
● 각리팩터링기법의개념,동기부여,역학및간단한사례살펴보기
● 리팩터링을수행하는견고한테스트구축하기
● 리팩터링의장단점과장애물인식하기