리팩토링은 조금씩 조금씩 단계적으로 수정을 하고, 수정을 했으면 항상 신뢰도 높은 각종 테스트를 해야 한다.
그리고 각종 테스트는 반드시 자체 테스트가 되게 만들어서 테스트를 해서 시간을 단축하는게 좋다.
리팩토링이란?
1) (명사) 겉으로 드러나는 기능은 그대로 둔 채, 알아보기 쉽고 수정하기 간편하게 소프트웨어 내부를 수정하는 작업.
2) (동사) 리팩토링 기법을 연달아 적용해서 겉으로 드러나는 기능은 그대로 둔 채 소프트웨어 구조를 변경.
리팩토링과 최적화는 다른 작업이다.
리팩토링은 소프트웨어의 유지보수를 조금 더 쉽게할 수 있게 하고, 코드 가독성을 올리며 기능 추가를 더 쉽게 할 수 있게 하여 오히려 성능이 더 떨어질 수도 있다.
하지만 최적화 작업은 성능은 올라가더라도 코드의 가독성이 더 떨어질 때가 많다.
리팩토링에 대한 명언
리팩토링을 적용할 때에는 버그도 그대로 있어야 한다.
리팩토링을 하는 이유
1) 소프트웨어의 설계 개선. (중복 코드 제거)
2) 소프트웨어를 이해하기가 더 쉬워진다. (유지보수)
3) 버그를 찾기 쉬워진다.
4) 프로그래밍 속도가 빨라진다.
리팩토링을 하는 시기
한달에 하루 이런식으로 날잡고 하는게 아니라 개발과정에서 틈틈이 작업을 해야한다.
1) 같은 작업의 3진 아웃 때
어떤 작업을 처음 할땐 그냥하고, 두 번째 작업할 땐 조금 찝찝하더라도 그냥 하고, 세 번째 하게 되면 그때 리펙토링을 실시하는 것이다.
2) 기능을 추가할 때
(1) 코드를 이해하기 쉽게 만들기 위해서 기능을 추가할 때 리팩토링을 해야한다.
(2) 설계가 지저분해서 어떤 기능을 추가하기 힘들 때에는 망설이지 말고 리팩토링을 진행해야 한다.
3) 버그를 수정할 때
코드의 기능을 파악하려다 이해하기 힘들다면 이해하기 쉽게 만들기 위해 리팩토링을 진행해야 한다.
리팩토링을 하고 나면 버그를 찾기 쉬워질 것이다.
버그 리포트가 입수되었을 때에도 리팩토링을 진행해야 한다. 왜냐하면 버그 리포트를 받을 때까지 버그가 있는 줄도 모를 정도면 그 코드가 엄청 지저분하다는 반증이기 때문이다.
4) 코드를 검수할 때
자신의 코드는 자기가 볼 땐 쉬울지 몰라도 다른 팀원이 볼 때에는 알아보기 힘들 수도 있다.
리팩토링을 진행하면 다른 사람이 개발한 코드를 검수하기도 쉬워진다.
'Basic Programming > Refactoring' 카테고리의 다른 글
Refactoring - 리팩토링을 해야 할 때 (0) | 2017.09.14 |
---|---|
Refactoring - 리팩토링 관련 문제들 (0) | 2017.09.14 |