본문 바로가기

추천 검색어

실시간 인기 검색어

리팩터링

코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 | 2 판
마틴 파울러 저자(글) · 개앞맵시 , 남기혁 번역
한빛미디어 · 2020년 04월 01일
가장 최근에 출시된 개정판입니다. 구판보기
9.9
10점 중 9.9점
(63개의 리뷰)
집중돼요 (26%의 구매자)
  • 리팩터링 대표 이미지
    리팩터링 대표 이미지
  • A4
    사이즈 비교
    210x297
    리팩터링 사이즈 비교 183x235
    단위 : mm
01 / 02
MD의 선택 무료배송 이벤트 소득공제 분철서비스
10% 31,500 35,000
적립/혜택
1,750P

기본적립

5% 적립 1,750P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 1,750P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서/외국도서
도서 포함 15,000원 이상 구매 시 무료배송
도서+사은품 또는 도서+사은품+교보Only(교보굿즈)

15,000원 미만 시 2,500원 배송비 부과

교보Only(교보배송)
각각 구매하거나 함께 20,000원 이상 구매 시 무료배송

20,000원 미만 시 2,500원 배송비 부과

해외주문 서양도서/해외주문 일본도서(교보배송)
각각 구매하거나 함께 15,000원 이상 구매 시 무료배송

15,000원 미만 시 2,500원 배송비 부과

업체배송 상품(전집, GIFT, 음반/DVD 등)
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
내일(2/24,월) 도착
기본배송지 기준
배송일자 기준 안내
로그인 : 회원정보에 등록된 기본배송지
로그아웃 : '서울시 종로구 종로1' 주소 기준

분철옵션 선택 시, 예상 출고일보다 3일 추가 기간 소요

분철서비스 안내보기
로그인정확한 배송 안내를 받아보세요!

이달의 꽃과 함께 책을 받아보세요!

1권 구매 시 결제 단계에서 적용 가능합니다.

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

알립니다.

  • 분철도서의 경우 취소/반품은 어렵습니다. 이 점 양해 부탁드립니다.

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

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

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

작가정보

저자(글) 마틴 파울러

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

번역 개앞맵시

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

번역 남기혁

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

목차

  • 초판의 추천사
    들어가며
    한국어판 독자를 위한 안내

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

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

    CHAPTER 03 코드에서 나는 악취
    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 주석

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

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

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

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

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

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

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

    CHAPTER 11 API 리팩터링
    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 예외를 사전확인으로 바꾸기

    CHAPTER 12 상속 다루기
    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판이 리팩터링을 효과적으로 수행하는 법을 더 많은 사람이 익힐 수 있는 촉매가 되어줄 것이다.

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

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

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

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

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

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수을(를) 나타낸 표입니다.
ISBN 9791162242742
발행(출시)일자 2020년 04월 01일
쪽수 550쪽
크기
183 * 235 * 25 mm / 967 g
총권수 1권

Klover 리뷰 (63)

구매 후 리뷰 작성 시, e교환권 200원 적립

10점 중 7.5점
/도움돼요
리펙토링은 워낙 유명한 도서라 할 말이 없지만 개인적으로 1판이 더 좋았다
10점 중 10점
/도움돼요
안좋은 코드에 대한 이야기를 해줍니다. 그리고 예제가 자바스크립트로 되어 있습니다.
10점 중 10점
/집중돼요
역시 명성대로 입니다.. 굿굿!!
10점 중 10점
/최고예요
리팩토링을 하면 누구나 보게 되는 책
10점 중 10점
/도움돼요
개발에 도움될 것 같습니다
10점 중 10점
/집중돼요
도움이 많이 됩니다 굿
10점 중 10점
/도움돼요
최근 코딩 공부를 시작하면서 코딩 방법론에 대해 궁금해서 알아보던 중 유튜브를 통해서 추천 받아 구매하게 되었습니다. 참고하면서 효율적인 코딩 습관을 가져보려 합니다.
10점 중 10점
/추천해요
리팩터링 하는 과정을 상세히 설명.
여러 기법을 사용하는 것을 배울 수 있다.
10점 중 10점
/추천해요
좋아요. 추천합니다
10점 중 10점
/추천해요
리팩토링의 정석이죠
추천합니다!!

문장수집 (13)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

리팩토링하면 코드 개발 속도를 높일 수 있다.
리팩터링
리팩터링의 시작
리팩터링

교환/반품/품절 안내

  • 반품/교환방법

    마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환 신청, [1:1 상담 > 반품/교환/환불] 또는 고객센터 (1544-1900)
    * 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900)
  • 반품/교환가능 기간

    변심반품의 경우 수령 후 7일 이내,
    상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
  • 반품/교환비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 반품/교환 불가 사유

    1) 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
    2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
    3) 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
    5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
    6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
    9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등
  • 상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
  • 소비자 피해보상 환불 지연에 따른 배상

    1) 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

TOP