본문내용 바로가기

KYOBO 교보문고

[VORA]첫글만 남겨도 VORA가 쏩니다
숨겨진독립자금을찾아서
  • 교보손글쓰기대회 전시
  • 손글씨스타
  • 세이브더칠드런
  • 교보인문학석강
  • 손글씨풍경
자바로 배우는 리팩토링 입문
440쪽 | | 184*236*21mm
ISBN-10 : 1160502854
ISBN-13 : 9791160502855
자바로 배우는 리팩토링 입문 중고
저자 유키 히로시 | 역자 서수환 | 출판사 길벗
정가
32,000원
판매가
28,800원 [10%↓, 3,200원 할인]
배송비
2,500원 (판매자 직접배송)
30,000원 이상 결제 시 무료배송
지금 주문하시면 3일 이내 출고 가능합니다.
더보기
2017년 10월 31일 출간
제품상태
상태 최상 외형 최상 내형 최상
이 상품 최저가
25,000원 다른가격더보기
새 상품
28,800원 [10%↓, 3,200원 할인] 새상품 바로가기
수량추가 수량빼기

중고장터에 등록된 판매상품과 제품의 상태는 개별 판매자들이 등록, 판매하는 것으로 중개시스템만을 제공하는 교보문고는 해당 상품과 내용에 대해 일체 책임을 지지 않습니다. 상단 제품상태와 하단 상품 상세를 꼭 확인하신 후 구입해주시기 바랍니다.

교보문고 결제 시스템을 이용하지 않은 직거래로 인한 피해 발생 시 교보문고는 일체 책임을 지지 않습니다.

중고장터에 등록된 판매 상품과 제품의 상태는 개별 오픈마켓 판매자들이 등록, 판매하는 것으로 중개 시스템만을 제공하는
인터넷 교보문고에서는 해당 상품과 내용에 대해 일체 책임을 지지 않습니다.

교보문고 결제시스템을 이용하지 않은 직거래로 인한 피해 발생시, 교보문고는 일체의 책임을 지지 않습니다.

중고책 추천 (판매자 다른 상품)

더보기

판매자 상품 소개

※ 해당 상품은 교보문고에서 제공하는 정보를 활용하여 안내하는 상품으로제품 상태를 반드시 확인하신 후 구입하여주시기 바랍니다.

판매자 배송 정책

  • 토요일 일요일은 휴무일 입니다 보유 도서는 주문 당일발송(12시 이전 주문건에 한함) 재고부족 도서는 1~2일 더 소요 됩니다 제주 산간지역은 추가 배송비가 별도로 부과 됩니다

더보기

구매후기 목록
NO 구매후기 구매만족도 ID 등록일
102 5점 만점에 5점 shsh9*** 2020.08.29
101 괴짜 탐정의 두번째 사건노트. 3: 명탐정과 봉인된 보물(오랑우탄 클럽 33) 잘 받았어요 5점 만점에 5점 mrk*** 2020.07.23
100 빠른 배송 감사합니다 5점 만점에 5점 ko423*** 2020.05.08
99 빠른 배송 감사합니다 5점 만점에 5점 seo7*** 2020.03.10
98 빠른배송감사드립니다 5점 만점에 5점 wolf*** 2019.10.03

이 책의 시리즈

책 소개

상품구성 목록
상품구성 목록

프로그램은 살아 있다! 프로그램은 계획 없이 수정하거나 제대로 살펴보지 않고 기능을 추가하면 점점 읽기도, 수정하기도, 디버깅하기도 어려운 상태가 된다. 마치 건강을 관리하지 않은 사람처럼 상태가 엉망진창이 된다. 시간을 들여 운동과 식사를 관리해서 체질을 개선하듯이 계속 리팩토링하면 버그를 늘리지 않으면서도 깔끔한 코드로 프로그램 체질을 개선할 수 있다.

이 책은 자바로 된 샘플 코드를 하나씩 실습하며 프로그래머라면 꼭 알아야 할 리팩토링 기법을 쉽게 배울 수 있는 입문서다. 또한 리팩토링 전과 후 프로그램을 비교해서 분석한 내용을 일목요연하게 보여주기 때문에 프로그램이 어떻게 달라졌는지를 누구나 쉽게 이해할 수 있다. 그리고 각 장 뒤에는 중요 포인트를 재확인하고 프로그램이 풍기는 악취를 탐지하는 연습을 할 수 있게 연습문제가 있다.

저자소개

저자 : 유키 히로시
저자 유키 히로시는 C 언어, Perl, Java 분야 책을 1990년부터 집필하였다. 국내에 소개된 책으로는 [Java 언어로 배우는 디자인 패턴 입문]과 [Java 언어로 배우는 디자인 패턴 입문: 멀티쓰레드편]이 있다.

역자 : 서수환
역자 서수환은 일본에서 온라인 쇼핑몰 시스템을 개발하고 운영하는 엔지니어이다. 귀찮은 일이 생기면 대신해 줄 무언가를 찾다가 없으면 만드는 게 취미. 또 뭐하며 놀까 늘 고민 중이다.

목차

이것만은 알고 시작하자, UML

0장 리팩토링이란
0.1 리팩토링이란
0.2 리팩토링과 악취
0.3 리팩토링 카탈로그
0.4 리팩토링 에센스
0.5 리팩토링 Q&A
0.6 연습 문제
0.7 연습 문제 해답

1장 매직 넘버를 기호 상수로 치환 _소스 코드에 100이라고 적힌 경우
1.1 리팩토링
1.1.1 매직 넘버를 기호 상수로 치환

1.2 예제 프로그램
1.2.1 리팩토링 전
1.2.2 리팩토링 실행
1.2.3 리팩토링 후

1.3 한 걸음 더 나아가기
1.3.1 분류 코드를 클래스로 치환하기
1.3.2 enum
1.3.3 기호 상수가 적합하지 않은 경우
1.3.4 바이트 코드에 내장된 상수에 주의하기

1.4 정리
1.5 연습 문제
1.6 연습 문제 해답

2장 제어 플래그 삭제 _제어 플래그 때문에 코드가 읽기 어려운 경우
2.1 리팩토링
2.1.1 제어 플래그 삭제

2.2 예제 프로그램(FindInt)
2.2.1 리팩토링 전
2.2.2 리팩토링 실행(break 사용)
2.2.3 리팩토링 실행(return 사용)

2.3 예제 프로그램(SimpleDatabase)
2.3.1 리팩토링 전
2.3.2 리팩토링 실행

2.4 한 걸음 더 나아가기
2.4.1 break나 return을 쓰면 가독성이 좋아지는 이유
2.4.2 인스턴스 필드로 만든 제어 플래그의 위험성
2.4.3 플래그명
2.4.4 boolean 이외의 플래그
2.4.5 정규 표현식 패키지 사용

2.5 정리
2.6 연습 문제
2.7 연습 문제 해답

3장 어서션 도입 _‘이렇게 될 것이다’라는 주석이 있는 경우
3.1 리팩토링
3.1.1 어서션 도입

3.2 예제 프로그램
3.2.1 리팩토링 전
3.2.2 리팩토링 실행
3.2.3 리팩토링 후
3.2.4 컴파일과 실행

3.3 어서션 동작 확인
3.4 한 걸음 더 나아가기
3.4.1 자바 어서션 문법
3.4.2 어서션은 에러 처리를 대신할 수 없음
3.4.3 자바 어서션은 클래스 라이브러리가 아님
3.4.4 어서션 완전 삭제
3.4.5 다른 언어 환경의 어서션

3.5 정리
3.6 연습 문제
3.7 연습 문제 해답

4장 널 객체 도입 _null 확인이 너무 많은 경우
4.1 리팩토링
4.1.1 널 객체 도입

4.2 예제 프로그램
4.2.1 리팩토링 전
4.2.2 리팩토링 실행
4.2.3 리팩토링 후

4.3 한 걸음 더 나아가기
4.3.1 팩토리 메서드 패턴
4.3.2 싱글톤 패턴
4.3.3 널 객체로 중첩 클래스 사용
4.3.4 null 확인은 나쁜가
4.3.5 패턴 중독에 빠지지 않기
4.3.6 상수와 널 객체
4.3.7 isNull 메서드는 필요한가
4.3.8 기존 클래스를 수정할 수 없다면

4.4 정리
4.5 연습 문제
4.6 연습 문제 해답

5장 메서드 추출 _코드가 너무 길어서 읽기 어려운 경우
5.1 리팩토링
5.1.1 메서드 추출

5.2 예제 프로그램
5.2.1 리팩토링 전
5.2.2 리팩토링 실행
5.2.3 리팩토링 후

5.3 한 걸음 더 나아가기
5.3.1 역 리팩토링
5.3.2 메서드 추출은 당연한가?
5.3.3 메서드가 길어지는 경우

5.4 정리
5.5 연습 문제
5.6 연습 문제 해답

6장 클래스 추출 _클래스의 책임이 너무 많은 경우
6.1 리팩토링
6.1.1 클래스 추출

6.2 예제 프로그램
6.2.1 리팩토링 전
6.2.2 리팩토링 실행
6.2.3 리팩토링 후

6.3 한 걸음 더 나아가기
6.3.1 양방향 링크는 피한다
6.3.2 기능 추가와 리팩토링
6.3.3 불변 인터페이스
6.3.4 역 리팩토링: 클래스 인라인화

6.4 정리
6.5 연습 문제
6.6 연습 문제 해답

7장 분류 코드를 클래스로 치환 _int로 객체를 구분하는 경우
7.1 리팩토링
7.1.1 분류 코드를 클래스로 치환

7.2 예제 프로그램
7.2.1 리팩토링 전
7.2.2 기본 타입을 사용한 분류 코드의 문제점
7.2.3 리팩토링 실행
7.2.4 리팩토링 후

7.3 한 걸음 더 나아가기
7.3.1 기본 타입을 사용한 분류 코드의 문제점
7.3.2 enum

7.4 정리
7.5 연습 문제
7.6 연습 문제 해답

8장 분류 코드를 하위 클래스로 치환 _분류 코드마다 동작이 다른 경우(1)
8.1 리팩토링
8.1.1 분류 코드를 하위 클래스로 치환
8.1.2 구조와 동작

8.2 예제 프로그램
8.2.1 리팩토링 전
8.2.2 리팩토링 실행
8.2.3 리팩토링 후

8.3 한 걸음 더 나아가기
8.3.1 switch 문과 instanceof 연산자가 풍기는 악취
8.3.2 객체 생성 switch 문 삭제
8.3.3 팩토리 메서드 여러 개 준비하기
8.3.4 어디까지 리팩토링해야 하나

8.4 정리
8.5 연습 문제
8.6 연습 문제 해답

9장 분류 코드를 상태/전략 패턴으로 치환 _ 분류 코드마다 동작이 다른 경우(2)
9.1 리팩토링
9.1.1 분류 코드를 상태/전략 패턴으로 치환

9.2 예제 프로그램
9.2.1 리팩토링 전
9.2.2 리팩토링 실행
9.2.3 리팩토링 후

9.3 코드 추가 수정
9.3.1 enum 사용
9.3.2 상태 의존 코드를 상태 객체로 이동
9.3.3 코드 추가 수정

9.4 한 걸음 더 나아가기
9.4.1 분류 코드를 치환하는 세 가지 방법 비교
9.4.2 상태 패턴과 전략 패턴의 차이
9.4.3 다형적 해결로 default 제거

9.5 정리
9.6 연습 문제
9.7 연습 문제 해답

10장 에러 코드를 예외로 치환 _에러 처리가 흩어져 있는 경우
10.1 리팩토링
10.1.1 에러 코드를 예외로 치환

10.2 예제 프로그램
10.2.1 리팩토링 전
10.2.2 리팩토링 실행
10.2.3 리팩토링 후

10.3 코드 추가 수정
10.3.1 분류 코드를 상태/전략 패턴으로 치환

10.4 한 걸음 더 나아가기
10.4.1 검사 예외와 비검사 예외
10.4.2 예외 계층
10.4.3 java.io.EOFException에 대해
10.4.4 비검사 예외와 사전 확인용 메서드

10.4.5 실패 원자성
10.5 정리
10.6 연습 문제
10.7 연습 문제 해답

11장 생성자를 팩토리 메서드로 치환 _클래스 이름이 new로 하드 코딩된 경우
11.1 리팩토링
11.1.1 생성자를 팩토리 메서드로 치환

11.2 예제 프로그램
11.2.1 리팩토링 전
11.2.2 리팩토링 실행
11.2.3 리팩토링 후
11.2.4 분류 코드를 하위 클래스로 치환 리팩토링 실행
11.2.5 리팩토링 후

11.3 한 걸음 더 나아가기
11.3.1 프로바이더
11.3.2 매개변수 문제
11.3.3 팩토리 메서드와 생성 메서드

11.4 정리
11.5 연습 문제
11.6 연습 문제 해답

12장 관측 데이터 복제 _모델과 뷰가 뒤섞여 있는 경우
12.1 리팩토링
12.1.1 관측 데이터 복제

12.2 예제 프로그램
12.2.1 리팩토링 전
12.2.2 리팩토링 실행
12.2.3 리팩토링 후

12.3 한 걸음 더 나아가기
12.3.1 이벤트에 포함된 정보
12.3.2 무엇을 이벤트 리스너로 할 것인가
12.3.3 무한 반복에 주의
12.3.4 다른 이벤트 리스너 추가하기

12.4 정리
12.5 연습 문제
12.6 연습 문제 해답

13장 상속을 위임으로 치환 _IS-A 관계가 아닌데 상속하고 있는 경우
13.1 상속과 위임
13.1.1 상속
13.1.2 위임
13.1.3 상속과 위임 비교

13.2 리팩토링
13.2.1 상속을 위임으로 치환

13.3 예제 프로그램
13.3.1 리팩토링 전
13.3.2 새로운 의문
13.3.3 리팩토링 실행
13.3.4 리팩토링 후

13.4 생성자 연쇄
13.5 한 걸음 더 나아가기
13.5.1 상속은 최후의 무기
13.5.2 리스코프 치환 원칙
13.5.3 IS-A 관계와 HAS-A 관계

13.6 정리
13.7 연습 문제
13.8 연습 문제 해답

14장 대리자 은폐 _위임 대상까지 노출되어 있는 경우
14.1 리팩토링
14.1.1 대리자 은폐

14.2 예제 프로그램
14.2.1 리팩토링 전
14.2.2 1회째 리팩토링 실행
14.2.3 1회째 리팩토링 후
14.2.4 2회째 리팩토링 실행
14.2.5 2회째 리팩토링 후

14.3 한 걸음 더 나아가기
14.3.1 ‘숨기기’의 중요성
14.3.2 다양한 은폐
14.3.3 중개자 제거
14.3.4 클래스 인라인화

14.4 정리
14.5 연습 문제
14.6 연습 문제 해답

15장 상속 구조 정리 _상속이 엉켜 있는 경우
15.1 리팩토링
15.1.1 상속 구조 정리

15.2 예제 프로그램
15.2.1 리팩토링 전
15.2.2 의문점
15.2.3 리팩토링 실행
15.2.4 리팩토링 후

15.3 한 걸음 더 나아가기
15.3.1 직교성
15.3.2 상속과 @Override

15.4 정리
15.5 연습 문제
15.6 연습 문제 해답

부록
부록 A 리팩토링 목록
부록 B JUnit
부록 C 참고 문헌과 웹 사이트

책 속으로

출판사 서평

책 속 한 문장

회원리뷰

교환/반품안내

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

교환/반품안내
반품/교환방법

[판매자 페이지>취소/반품관리>반품요청] 접수
또는 [1:1상담>반품/교환/환불], 고객센터 (1544-1900)

※ 중고도서의 경우 재고가 한정되어 있으므로 교환이 불가할 수 있으며, 해당 상품의 경우 상품에 대한 책임은 판매자에게 있으며 교환/반품 접수 전에 반드시 판매자와 사전 협의를 하여주시기 바랍니다.

반품/교환가능 기간

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

※ 중고도서의 경우 판매자와 사전의 협의하여주신 후 교환/반품 접수가 가능합니다.

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

소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우(단지 확인을 위한 포장 훼손은 제외)

소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 화장품, 식품, 가전제품 등

복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)

디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우

시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품이므로 단순 변심 및 착오로 인한 취소/교환/반품 시 해외주문 반품/취소 수수료 고객 부담 (해외주문 반품/취소 수수료는 판매정가의 20%를 적용

2) 중고도서 : 반품/교환접수없이 반송하거나 우편으로 접수되어 상품 확인이 어려운 경우

소비자 피해보상
환불지연에 따른 배상

- 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

- 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

판매자
송설북
판매등급
특급셀러
판매자구분
사업자
구매만족도
5점 만점에 5점
평균 출고일 안내
3일 이내
품절 통보율 안내
48%

이 책의 e| 오디오

바로가기