bookseek.
◎ 한국어 ⌄

BOOKSEEK READING GUIDE

리팩터링 책 추천: 동작을 지키는 변경 절차와 반복 훈련

동작을 지키며 코드 구조를 개선하는 리팩터링 책 두 권을 비교합니다. 작은 변경의 절차와 기법을 찾는 원칙서, 구체적인 규칙으로 수정을 반복하는 훈련서를 구분하고, 현재 코드의 변경 목적과 확인할 조건을 정하도록 돕습니다.

동작을 지키는 변경 절차와 반복 훈련

코드를 다시 쓰면 깔끔해질 것 같지만 동작이 달라질까 걱정될 때 필요한 공부가 리팩터링입니다. 무엇을 바꾸고 무엇을 유지할지 정하는 원칙서와, 구체적인 제한을 두고 수정을 반복하는 훈련서는 쓰임이 다릅니다. 『리팩터링 2판』과 『파이브 라인스 오브 코드』를 비교해 현재 유지보수 문제에 맞는 출발점을 살펴봅니다.

책을 고르기 전에 이해할 핵심

구조를 바꾸기 전에 유지할 동작을 정하면 수정의 목적과 검증할 범위가 분명해집니다. 기법의 이름보다 변경의 순서를 살펴보세요.

유지할 동작을 먼저 정하기

새 기능 추가와 구조 개선을 한꺼번에 진행하면 결과가 달라진 이유를 구분하기 어렵습니다. 변경 전 관찰할 수 있는 동작과 수정하려는 구조를 각각 적어 보세요. 테스트가 무엇을 확인하고 무엇을 확인하지 못하는지도 알아야 합니다.

작은 변경 단위

하나의 큰 수정은 되돌릴 지점과 문제의 원인을 찾기 어렵게 할 수 있습니다. 함수 추출이나 이름 변경처럼 한 단계의 의미가 분명한 단위로 나누는 공부가 필요합니다. 단계마다 기존 결과를 비교하는 과정까지 연습의 일부입니다.

규칙을 적용한 대가

함수를 나누거나 패턴을 도입하면 연결과 이름이 늘어날 수 있습니다. 더 작은 코드가 된 것만으로 충분하지 않습니다. 실제로 어떤 변경이 쉬워졌으며 흐름을 읽는 부담은 어떻게 달라졌는지 살펴봐야 합니다.

원칙과 변환 기법을 함께 찾는 책

『리팩터링 2판』은 이미 동작하는 프로그램의 구조를 바꿀 때 무엇을 보존하고 어떤 순서로 수정할지 배우는 책입니다. 마틴 파울러는 변경의 필요성을 알아차리는 기준과 작은 수정 기법, 그 수정을 뒷받침할 테스트를 함께 다룹니다. 새 기능을 빨리 붙이는 요령보다 기존 코드를 안전하게 이해하고 고치는 방법을 찾는 개발자에게 맞습니다.

이 책은 구조 변경의 절차와 기법을 체계적으로 찾아보고 싶은 개발자에게 선정했습니다. 첫 예시로 작은 수정이 이어지는 흐름을 익힌 뒤, 자신의 문제에 맞는 카탈로그로 이동할 수 있습니다. 같은 기법에도 적용 동기와 확인할 조건이 있음을 함께 살펴보세요.

2020년 한국어 2판의 예제는 자바스크립트입니다. 최신 프레임워크의 구성법이 아니라 함수·데이터·조건을 변경하는 원칙을 배우는 목적으로 권합니다.

명확한 제한으로 수정 연습을 시작하는 책

『파이브 라인스 오브 코드』는 어디부터 코드를 개선할지 판단하기 어려운 개발자에게 구체적인 연습 규칙을 제시합니다. 메서드를 다섯 줄 이하로 줄이는 접근을 포함해 추출과 패턴 적용을 반복하며 구조를 바꾸는 책입니다. 코드가 좋지 않다는 느낌만 있고 실제 수정으로 옮기지 못했던 독자에게 공부의 출발점을 제공합니다.

이 책은 코드가 불편하다는 느낌은 있지만 수정의 첫 행동을 정하기 어려운 독자에게 적합합니다. 다섯 줄 제한을 학습 조건으로 활용하되, 함수를 나눈 뒤 이름과 책임이 분명해졌는지 평가하세요. 줄 수만 맞추고 연결이 더 복잡해졌다면 그 이유도 좋은 학습 질문이 됩니다.

타입스크립트 코드를 읽는 준비가 필요합니다. 규칙이 구체적이라는 이유로 모든 팀과 프로젝트에서 그대로 강제하지 말고, 작은 예제에서 변화의 이점과 비용을 먼저 확인하는 편이 좋습니다.

어떤 책부터 펼칠까요?

현재 코드의 문제를 진단하고 필요한 기법을 찾으려면 『리팩터링 2판』을, 반복해서 손을 움직일 훈련 기준이 필요하면 『파이브 라인스 오브 코드』를 선택하세요. 두 책의 접근은 다르지만 변경을 설명할 수 있어야 한다는 독서 목표는 함께 세울 수 있습니다.

읽은 뒤에는 “이 단계에서 바뀐 구조는 무엇이며 유지된 동작은 어떻게 확인했는가”를 적어 보세요. 코드 전체를 한 번에 고치기보다 한 함수의 작은 변경 기록을 남기는 편이 학습 결과를 확인하기 쉽습니다.