Skip to content

Chapter02

JueunPark edited this page Jan 28, 2023 · 4 revisions
  • 리팩터링 원칙

2.1 리팩터링 정의

  • 동작은 유지하고 내부 구조를 바꾸는 것

  • 목적: 이해하기 쉽고, 수정이 쉽도록 바꾸는 것

  • 코드를 정리하는 것은 모조리 리팩토링인가?

    • 동작이 유지된다는 것이 포인트 -> 심지어 리팩토링 전에 있던 버그도 리팩토링 후에 그대로 남아있어야 한다고 주장
  • 코드 베이스를 정리하거나 구조를 바꾸는 것은 재구성 "restructuring"

    • 리팩토링은 재구성의 한 형태
  • 리팩터링과 성능 최적화는 목적이 다르다.

    • 리팩터링: 코드를 이해하고 수정하기 쉽게 바꾸는것. (성능이 떨어질 수도 있다.)
    • 성능최적화: 속도 개선
  • 기능 추가 모자와 리팩터링 모자 비유

Screen Shot 2023-01-28 at 12 45 39 PM
  • 리팩토링 모자를 쓴 동안에는 테스트도 짜지 않고 오로지 코드 재구성만 한다.

유연성 매커니즘 or 설계 후 코드 작성의 문제점

  • 유연하게 짜면 복잡성이 올라감
  • 미래에 어떻게 달라질지 모르고, 실제로 사용하면서 그 목표를 알게 되는 경우가 많다. 따라서 코드 작성 전에 모두 완벽하게 설계하는 것은 어렵다.
  • 추측하여 대응할 필요x => 현재까지 파악된 것만 구현 => 요구사항이 더 잘 파악되면 그때 고친다

리팩터링 자동화

  • 코드에디터 image