티스토리 뷰
강력 추천 도서인 리팩토링 2판 이야기다.
내가 추천하는 3대 책
- 클린 코드
- 리팩토링
- 정규식
정규식은 내 개인 성향으로 추천하는 도서이고, 클린 코드와 리팩토링은 아마 대부분의 개발자들이 추천하는 권장 도서일 것이다.
리팩토링 1판은 설명 코드를 자바로 표현했지만, 리팩토링 2판은 설명 코드가 자바스크립트로 되어 있다.
책의 내용
책의 제목만 보면 리팩토링만 담고 있을 거라 생각된다. 하지만 책의 내용은 반은 맞고 반은 틀리다. 리팩토링의 내용을 설명하면서 자연스럽게 하지 말아야 할 코드 작성법, 악취 나는 코드의 특징 등을 배우면서 클린 코드도 자연스럽게 습득하게 된다.
요즘같이 SI 프로젝트가 많은 환경에서는 유지보수보다는 단시간에 기능만 구현하다 보면 이런 악취 나는 코드를 생성하게 되며, 개발자 본인에게도 그리고 다음 개발자에게도 서로에게 좋지 않은 영향을 끼치게 된다.
왜 자바스크립트로 바뀌었나
저자 마틴 파울러가 밝힌 이유는 이렇다. 리팩토링은 특정 언어에 종속된 개념이 아닌데, 자바로 예제를 쓰면 클래스와 타입 시스템에 가려 본질이 흐려진다는 것이다. 자바스크립트는 문법이 가볍고 대부분의 개발자가 읽을 수 있어서 기법 자체에 집중하기 좋다.
실제로 자바스크립트를 주력으로 쓰지 않아도 예제를 읽는 데 무리가 없다. 함수와 객체만 이해하면 따라갈 수 있다.
책의 구조
구성이 독특하다. 앞부분은 읽는 책이고, 뒷부분은 찾아보는 책이다.
- 1장 — 하나의 예제를 처음부터 끝까지 리팩토링한다. 이 장만 제대로 따라 해도 값어치를 한다
- 2~4장 — 리팩토링의 원칙, 코드에서 나는 악취, 테스트
- 5장 이후 — 리팩토링 기법 카탈로그. 각 기법마다 배경·절차·예시가 정리돼 있다
뒷부분은 처음부터 순서대로 읽기보다, 실제 코드를 고치다가 "이 상황에 맞는 기법이 뭐지?" 할 때 찾아보는 방식이 낫다. 그래서 완독보다 옆에 두고 오래 쓰는 책에 가깝다.
가장 중요한 것: 테스트
3장에서 테스트를 다루는 데는 이유가 있다. 테스트 없는 리팩토링은 리팩토링이 아니다. 동작이 그대로라는 걸 증명할 수단이 없으면 그건 그냥 코드를 고치는 것이다.
책이 반복해서 강조하는 리듬이 있다.
- 테스트가 통과하는 상태에서 시작한다
- 아주 작은 단위로 바꾼다
- 바꿀 때마다 테스트를 돌린다
- 커밋한다
한 번에 크게 뜯어고치고 나서 테스트를 돌리면, 깨졌을 때 어디가 원인인지 찾을 수 없다. 이 리듬을 몸에 익히는 게 기법 목록을 외우는 것보다 중요하다.
클린 코드와 어떻게 다른가
둘 다 좋은 코드를 다루지만 접근이 다르다.
- 클린 코드 — 처음부터 좋은 코드를 쓰는 법. 네이밍, 함수 크기, 주석에 대한 원칙
- 리팩토링 — 이미 있는 코드를 안전하게 좋게 만드는 법. 절차와 기법 중심
현실에서는 후자를 쓸 일이 훨씬 많다. 우리가 만나는 코드는 대부분 이미 존재하는 코드이기 때문이다.
기대
새삼 자바스크립트의 위엄을 한 번 더 느낀다. 나는 1판이 있음에도 2판을 구매했다. 자스로 다시 보면 무슨 느낌일까 기대된다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
'IT 이야기 > IT 도서' 카테고리의 다른 글
| React 책 추천 (2) | 2020.02.19 |
|---|---|
| 꼼꼼한 재은씨의 스위프트 실전편, 다른 개발 경험이 있는 사람에게 맞는 iOS 책 (0) | 2019.02.26 |
| 자바스크립트 책 추천, 완벽 가이드와 핵심 가이드 그리고 러닝 자바스크립트 (2) | 2018.08.27 |
