내용은 시스템이나 프로세스가 아닌 사람을 바라보고 있습니다.
그렇기에 안타깝게도 정량화할 수 없습니다.
프로그래밍을 하며 아직 리팩터링을 접하지 못했다면 머지않아 만나게 되고, 만나야 할 내용입니다.
읽어가면서 세 가지 상황을 만날 수 있습니다.
첫째, 프로그램을 만들면서 이래야 할 것 같아 사용하는 자신만의 방식을 리팩터링 기법 가운데 만나면 반가울 것입니다. 내 생각이 틀리지 않았다는, 나와 비슷하게 생각하는 사람이 있다는 사실에 마음 한구석에 남아있던 불안을 떨쳐버리고 미소 지을 수 있습니다. 그러고 보면 사람은 소속을 갈구하는 존재인가 봅니다. 자신은 아니라고 부인할지 모르지만 미지의 세계로 걸어 들어갈 때 누군가 앞서간 발자취를, 하다못해 동물이 지나간 흔적이라도 발견하면 안도의 한숨이 저절로 나오니까요.
둘째, 몇몇 기법에서는 눈 앞에 안개가 걷히는 듯한 경험을 할 수 있습니다. '아하~' 하는 깨달음의 순간을 만납니다.
셋째, 읽으면서 이해는 가지만 '왜 굳이 이렇게까지?' 라는 의문을 던지는 기법도 있을 것입니다.
자신에게 잘 맞는 기법도 있을 것이고, 별로 손이 가지 않는 기법도 있을 것입니다.
경험이 쌓이고 시각이 다양해질수록 펼쳐볼 때마다 보이는 내용이 늘어나리라 생각합니다.
내가 성장하는 만큼 새로운 세계를 만나는 것처럼.
1장부터 5장까지는 쭉 읽은 뒤 6장부터 나오는 카탈로그는 취향대로 읽으셔도 될 듯합니다.
코드가 장황해진다고 느껴지면 펼쳐서 도움을 찾을 수도 있고, 쉴 때 머리 식힐 겸 뒤적거리다 한두 개씩 골라 읽어도 괜찮을 듯합니다. 그러려면 늘 곁에 두어야겠죠.
각 기법은 이름, 개요(개념도 + 코드 예시), 배경, 절차, 예시, 다섯 항목으로 구성됩니다. 이름, 개요, 배경만 훑어도 핵심 개념을 잡을 수 있어 좋습니다.
리팩터링을 얘기하며 테스트가 없는 리팩터링은 있을 수 없습니다. 책에서도 한 장을 테스트에 할애합니다. 리팩터링을 잘하고 싶다면 테스트를 쉽게 할 수 있는 환경을 만들어야 한다고 말합니다.
리팩터링을 하려다 테스트, 특히 단위 테스트로 빠져도 나쁘지 않다고 생각합니다. 단위 테스트를 알아가다 보면 자연스럽게 리팩터링을 만나게 되니까요.
마치 새에게 좌우 날개가 있어야 하는 것처럼, 프로그래머에게 좌우 날개는 리팩터링과 단위 테스트가 아닐까요.
읽는 시간이 많아질수록, 정확히는 읽고 생각하는 시간이 쌓일수록 빛을 발할 책이라 생각합니다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.