품목정보
발행일 | 2020년 04월 01일 |
---|---|
쪽수, 무게, 크기 | 550쪽 | 1050g | 183*235*35mm |
ISBN13 | 9791162242742 |
ISBN10 | 1162242744 |
발행일 | 2020년 04월 01일 |
---|---|
쪽수, 무게, 크기 | 550쪽 | 1050g | 183*235*35mm |
ISBN13 | 9791162242742 |
ISBN10 | 1162242744 |
ETS 토익 정기시험 기출문제집 1000 Vol.3 READING 리딩
16,020원 (10%)
2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 상
13,950원 (10%)
ETS 토익 정기시험 기출문제집 1000 Vol.3 LISTENING 리스닝
16,020원 (10%)
2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 하
13,500원 (10%)
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 악취 제거 기법 |
어느 분야에나 고전이라고 할 수 있는 책들이 있다.
코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기
리팩터링 2판 REFACTORING
(마틴 파울러 지음, 개앞맵시, 남기혁 옮김, 한빛미디어)
저는 한국 사람입니다. 그래서 우리말을 유창하게 잘합니다(?). 의사소통도 그럭저럭 잘하는 편이구요. 그런데 글은 썩 잘 못쓰는 편이라고 생각합니다. 내가 하고 싶은 이야기를 어찌저찌 말로는 표현하겠는데 체계적인 글로 표현하는 것은 참 어렵습니다.
저는 코딩 공부를 좋아합니다. 전문 개발자는 아니구요, 취미로, 재미로 프로그래밍 언어를 공부해보고 있습니다. 책도 따라하고 인터넷을 검색하고 유튜브 영상들도 보면서 만들어보고 싶은 프로그램들을 만들다보면 어려운 점들이 많습니다. 그 중에 하나는 제가 만든 코드는 다른 사람들이 만든 코드처럼 깔끔하고 알아보기 쉽지가 않습니다. 주석은 덕지덕지 달아놓지만 뭔가 정리되지 않은 방 같은 느낌을 받는달까요? 그러다보니 코드가 어찌저찌 결과는 나오는데 버그도 많고 나중에 유지보수도 매우 어렵더라구요. 몇줄 되지 않는 코드인데도 말이지요...
리팩터링?
"리팩터링은 겉으로 드러나는 코드의 기능(겉보기 동작)은 바꾸지 않으면서 내부 구조를 개선하는 방식으로 소프트웨어 시스템을 수정하는 과정이다."
요컨데 리팩터링은 코드를 작성하고 난 뒤에 설계를 개선하는 일이라고 할 수 있습니다. 글을 쓰고나서 탈고를 하는 것처럼 글의 의미는 바꾸지 않은 채 전달하기 효과적인 글로 다듬는 일이라고 할 수 있지 않을 까요?
다루는 내용
이 책은 전문 프로그래머를 대상으로 쓴 리팩터링 지침서입니다(저자의 말). 코드에 버그가 생기지 않게 하면서 구조를 더 체계적으로 바꾸는 식으로 리팩터링을 하는 방법을 설명하고 있습니다.
책의 전반부(1장~4장)에는 리팩터링의 개념은 무엇이며 왜 필요한지, 리팩터링이 필요한 곳을 어떻게 찾는지, 테스트는 어떻게 구축하는 지 등을 다루고 있습니다. 이어 후반부(5장~12장)에서는 리팩터링 카탈로그(목록)이 펼쳐져 있습니다.
이처럼 코드 리팩터링을 위한 기본적인 개념을 6장에서 다루고 7장부터는 보다 다양한 리팩터링 전략들을 소개하고 있습니다.
대상 독자
이 책은 소프트웨어 개발을 직업으로 하는 전문 프로그래머들을 위해 쓰여졌다고 저자는 말합니다. 기본적으로 자바스크립트로 작성된 코드를 가지고 리팩터링을 진행합니다. 자바스크립트 언어를 아시는 분들은 어렵지 않게 책을 읽으실 수 있고 그렇지 않더라도 기본적인 프로그래밍 경험이 있다면 문제 없이 읽으실 수 있습니다. 저자는 사용하는 언어에 상관없이 모든 프로그래머들을 위해 이 책을 썼다고 합니다. 프로그램의 기본은 다 비슷비슷하니까요.
이 책은 프로그래밍 언어를 처음 다루는 분들을 위한 책은 분명 아닙니다. 코드 구조를 더 나은 구조로 만들고 싶은 열망을 가지고 계신분들은 필히 읽어보셔도 좋을 것 같습니다. 이 책을 카탈로그라고 설명합니다. 책장에 꽂아두고 있다가 어떤 단계의 리팩터링이 필요하다면 언제든 꺼내어 참고할 수 있는 책입니다.
소감
개인적으로 이 책을 읽으면서 과장을 조금 더한다면.... "감동받았습니다!" 내가 작성한 코드들이 어떤 문제들이 있고... 아니 사실 문제가 있다기 보다는 이 코드들을 이렇게 바꾸면 훨씬 깔끔한 모습으로 바꿀 수 있을지가 느껴지니 가슴이 두근거렸습니다.
물론 이 책을 한 번 읽었다고 저의 코딩 스타일이 바뀌지는 않겠죠. 하지만 코드를 보는 시각, 수정하는 기술이 무엇인지를 조금은 새롭게 보게 된 것 같습니다. 초보 취미 코더에서 조금 더 수준 높아진 코더, 개발자스러운 개발자로 한 층 성장하기 위해서 반드시 참고할 책이라고 감히 추천합니다.
프로그램의 가치를 높이는 코드 관리 기술이 궁금하다면 펼쳐보세요!
* 이 서평은 한빛미디어 "나는 리뷰어다" 활동으로 작성된 서평입니다.
* 서평단 활동과 관계 없이 저의 관심에 따라 읽고 느낌 점을 솔직하게 적었습니다.
* 이 서평은 저의 개인 블로그 ( https://it4edu.tistory.com/163 )에도 게시되어 있습니다.
컴퓨터 과학 분야 명저 중에 하나로 오랫동안 많은 사람들에게 큰 가르침을 주었던,
이 책의 2판이 출간 되었다는 것은 큰 축복이며 행운이라고 생각합니다.
단순히 일부 내용의 추가/수정이 아니라 거의 모든 내용이 새로 쓰여졌다는 점은 망설임 없이 이 책을 구매해야 할 이유 중 하나이기도 합니다.
리팩토링은 일부 언어나 시스템에 종속되지 않기에, 자바스크립트의 기본 문법만을 사용하여 많은 프로그래머들이 쉽게 볼 수 있도록 변경된 점이 좋았습니다.
1장에서 리팩토링을 해야 하는 이유를 충분히 공감 가도록 설명하고, 예제를 통해 리팩토링 하는 과정을 차근 차근 보여주면서 독자들이 이 후 내용도 흥미롭게 읽을 수 있도록 한 구성도 훌륭하다고 생각했습니다.
사람이 읽기 좋은 코드, 수정이 용이한 코드를 만들기 위한 고민을 항상 하는 한 명의 개발자로써,
모든 개발자 분들에게 이 책을 강력히 추천합니다.