Skip to content

Latest commit

 

History

History
51 lines (28 loc) · 2.14 KB

[마틴 파울러] 리팩토링의 중요성 feat.테스트 코드를 짜는 이유 정리.md

File metadata and controls

51 lines (28 loc) · 2.14 KB

[마틴 파울러] 리팩토링의 중요성 feat.테스트 코드를 짜는 이유 정리

1. 리팩토링의 절차

리팩토링이 필요한 순간을 예시로 들때 보통 TDD Cycle을 통해 예시를 듭니다.

TDD에서는 새로운 기능을 추가하려고했을때

  1. 첫번째로 애플리케이션이 새로운 기능에 동작하도록 기능을 만듭니다.

  2. 두번째로 기능이 정상동작하면 Refactor단계에서 리팩토링을 진행합니다.

여기서 말하는 리팩토링은 무엇일까요?

2. 두개의 모자

리팩토링을 설명하기전 소프트웨어를 개발할 때 목적이 기능추가인지 리팩터링인지를 명확히 구분해 작업을 해야합니다.

자신이 어떤 상태(기능, 리팩토링)인지 인지해야된다.

기능 모드

새로운 기능을 개발하는 모드이다.

리팩토링 모드

💡 소프트웨어를 개발하기 위해 리팩토링을 사용할 때, 두 가지 구별된 작업(기능 추가와 리팩토링)을 위해 시간을 나누어야 한다.

리팩토링 모드에서는 개발자가 새로운 기능을 만드는게 아니라 기능이 이전과 동일하게 동작하면서 개발을 진행하는 것이라고 설명합니다.

리팩토링 모드에서는 버그가 발생해도 버그를 수정해서는 안됩니다.

왜냐하면 소프웨어의 기능을 변경하는 것이기 때문입니다.

3. 리팩토링이 필요한 이유

리팩토링은 경제성 때문에 해야하는 것 입니다.

리팩토링이 된 Clean Code는 더 빠른 기능을 개발할 수 있습니다.

4. 개인적인 생각

1+1을 암산으로 계산을 해봤을때 2라고 바로 생각이 될 것 입니다.

하지만 1+1+11+22+2+5+61과 같이 복잡한 계산을 암산으로 한다면, 바로 정답이 생각되지 않고, 다들 자기가 계산한 답이 정답이라고 생각할 것 입니다.

이와 같이 테스트 코드가 필요한 이유는 자신이 작성한 기능(계산한 식)에 대한 검증(체점)이 꼭 필요하다고 생각합니다.