Five Lines of Code - 1. 리팩토링 리팩토링하기

주제: 리팩토링의 구성요소, 리팩토링의 도입과 안전의 필요성

🔖 1.0 리팩토링의 구성요소

책의 내용

소프트웨어 개발에서 문제는 스킬, 문화, 도구가 충분하지 않거나 이들의 조합이 부족함을 나타냅니다. 따라서 리팩토링은 각 구성요소가 모두 필요합니다.

  1. 스킬 - 어떤 코드가 잘못됐으며 리팩토링이 필요한지 파악하는 스킬이 필요합니다.

  2. 문화 - 리팩토링에 시간을 들이는 것을 권장하는 문화와 절차가 필요합니다.

  3. 도구 - 우리가 하는 작업이 안전하다는 것을 보장할 무언가가 필요합니다.

나의 생각

지금이야 거의 혼자 프로젝트를 하기에, 리팩토링이란 단순히 더 나은 코드를 쓰기 위한 과정이라고 생각했다. 하지만 책에서 설명한 구성요소 하나하나를 살펴보니 맞는 말 같다. 특히 현업에 가면 '문화' 부분도 굉장히 중요할 것 같다. 만약 기능 구현을 해서 데드라인에 맞추는 것만이 중요해 리팩토링이라는 과정은 거의 하지 않는 조직이라면, 깊은 고민이 담긴 코딩을 하기 어려울 것 같다.

개인적으로 문서화를 할 때 남들이 보는 시선을 고려하는 것을 중요시 여기고, 이를 디벨롭 시키는 것을 즐긴다. 그래서 개발에서의 리팩토링이라는 과정도 즐기고, 긍정적인 피드백이 돌아왔을 때 굉장한 성취감을 느낀다. 앞으로 이 책에서 더 체계적인 리팩토링 방법을 배울 수 있을 것 같아 기대가 된다.

🔖 1.1 리팩토링이란 무엇인가?

책의 내용

리팩토링은 기능을 변경하지 않고, 코드를 변경하는 것을 의미한다. 그리고 리팩토링을 해야 하는 이유는 여러가지가 있습니다.

  • 코드를 더 빠르게 만들기 위해

  • 더 작은 코드를 만들기 위해

  • 코드를 더 일반적이거나 재사용 가능하게 하기 위해

  • 코드의 가독성을 높이고 유지보수를 용이하게 하기 위해

따라서 좋은 코드의 정의는 '사람이 읽기 쉽고, 유지보수가 용이하며, 의도한대로 잘 동작하는 코드' 입니다.

나의 생각

이 책의 핵심이 담긴 문장인듯 하다. 그런데 위의 네 가지 조건을 모두 충족해야 할까? 네 가지 조건 중에 한 가지만 충족해도 (나름..) 좋은 코드라고 할 수 있지 않을까? 혹은 하나를 충족하면 자연스럽게 다른 하나 또한 충족이 될 수도 있을 것 같다. 예를 들어, 재사용 가능한 코드는 유지보수를 용이하게 만드니까.

🔖 1.3 리팩토링은 언제 할까?

책의 내용

'우선 변경하기 쉽게 만든 후 변경하라' - 켄트 백 새로운 것을 구현할 때마다 새 코드를 쉽게 추가할 수 있게 리팩토링을 먼저 합니다. 이것은 요리를 시작하기 전에 필요한 재료를 준비하는 것과 유사합니다.

나의 생각

보통 코드를 짜다보면 처음에는 app.tsx 같은 곳에 다 박아두고, 그 다음에 관심사 분리를 위해 컴포넌트를 더 작은 단위로 분리하곤 한다. 그래서 이 말에 공감했다. 리팩토링을 할 때 어떻게 분리할지에 대해 고민을 많이 하는 이유가, 어떻게하면 새로운 코드를 추가하기 좋을까? 라는 장기적인 관점에서 고민하기 때문이다. 사실 나중에 일 두 번 하기 귀찮아서인 이유도 있다..

Last updated