Victoree's Blog

[What is Refactoring] How to refactor 본문

Pattern/GURU

[What is Refactoring] How to refactor

victoree 2021. 5. 11. 17:36
728x90

이 페이지는 GURU 사이트 [what-is-refactoring] How to refactor의 번역을 담고 있습니다.

리팩토링 하는 방법

리팩토링은 일련의 작은 변경으로 수행되어야 하며, 각 변경으로 기존 코드가 약간 개선되고 프로그램은 여전히 작동중인 상태로 유지되어야 합니다.

올바르게 리팩토링되기 위한 체크리스트

1. 코드가 깨끗해져야 합니다.

  • 리팩터링 후에도 코드가 똑같이 더러운 상태로 남아 있으면... 미안하지만, 당신은 인생의 한 시간을 낭비했습니다. 왜 이렇게 되었는지 알아내려 노력해보세요.
  • 작은 변화들로 리팩터링을 하는 것에서 벗어나 많은 리팩터링을 하나의 큰 변화로 혼합할 때 이런 일이 종종 발생합니다. 이럴 때 정신을 잃기 쉬운데, 특히 시간 제한이 있다면 더욱 그렇습니다.
  • 또 매우 엉성한 코드로 작업할 때에도 발생할 수 있습니다. 무엇을 개선하든 이런 코드는 전체적으로 재앙으로 남습니다.
  • 이 경우 코드의 일부를 완전히 다시 작성하는 것에 대해 생각해 볼 가치가 있습니다. 그 전에 여러분은 많은 시간을 할애해야 하는데, 그렇지 않다면 처음 말한 결과를 얻게될 수 있습니다.

2. 리팩토링 중에는 새로운 기능을 작성하면 안됩니다.

  • 새로운 기능을 구현하는 것과 리팩토링을 혼동하지 마세요. 적어도 개별 커밋의 범위내에서 이런 프로세스를 분리하려고 하셔야 합니다.
  • 기능을 추가할 때는 기능추가 모자를 쓴다음 기존 코드는 절대 건드리지 않고, 기능만 추가하셔야 합니다.
  • 리팩토링할 때는, 리팩토링 모자를 쓴다음 기능 추가는 절대 하지 않고 오로지 코드 재구성에만 전념하셔야 합니다.

3. 기존의 모든 테스트는 리팩토링 후에 통과되어야 합니다.

  • 리팩토링 후 테스트가 중단되는 경우는 두 가지 입니다.
  • 리팩토링하는 동안 오류가 발생했습니다
    • 이 문제는 문제 없습니다. 계속하여 오류를 수정하세요.
  • 테스트가 너무 낮은 수준이었습니다.
    • 이 경우, 테스트가 문제입니다. 검증 자체를 리팩토링하거나 완전히 새로운 상위 수준 검증 집합을 작성할 수 있습니다. 이런 상황을 피하는 가장 좋은 방법은 BDD 방식의 테스트를 작성하는 것입니다.
728x90

'Pattern > GURU' 카테고리의 다른 글

[What is Refactoring] When to Refactor  (0) 2021.05.11
[What is Refactoring] Technical Debt  (0) 2021.05.11
[What is Refactoring] Clean Code  (0) 2021.05.11
Comments