이번 글은 간단하게 Refactoring의 정의와 필요한 이유에 대해서 알아 볼까 한다.
Refactoring의 정의
1. Refactoring(명사) - 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조를 변경하는 것.
2. Refactor(동사) - 일련의 리팩토링을 적용하여 겉으로 보이는 동작의변화 없이 소프트웨어의 구조를 바꾸다.
Refactoring 을 해야 하는 이유
1. Refactoring은 소프트웨어의 디자인을 개선시킨다.
- Refactoring은 코드를 정돈 하는 것이다. 그래서 코드의 중복된 부분을 제거 한다. 이렇게 함으로
나중에 코드를 수정하더라도, 필요한 부분만 수정할 수 있을 뿐만 아니라, 각각의 작업데 대한 코드가 오직 한 곳에만 있게 할 수 있다.
2. Refactoring은 소프트웨어를 더 이해하기 쉽게 만든다.
- Refactoring은 코드를 이해하면서 내부 구조를 바꾸는 것이므로, 할 수록 코드가 점점 명확해 짐을 알 수 있다.
3. Refactoring 은 버그를 찾도록 도와준다.
- 코드의 의미를 명확하게 이해하면서, 자동으로 버그를 알게 되는 것. 그래서 더욱 Robust(견고) 한 코드를 작성하게 도와준다.
4. Refactoring은 프로그램을 빨리 작성하도록 도와준다.
- 소프트웨어 개발의 속도를 어느정도로 유지하기 위해서는 좋은 디자인은 필수다. Refactoring은 시스템의 디자인이 나빠지는 것을 멈추게 하여, 소프트웨어를 보다 빨리 개발할 수 있도록 도와준다. 또한 디자인을 향상시키기도 한다.
Refactoring을 해야 할 시기
1. 삼진 규칙
- Don Roberts 에 의하면, 어떤 것을 처음 할 때는, 그냥 한다. 두 번째로 비슷한 어떤 것을 하게 되면, 중복 때문에 주춤하지만 그냥 중복되도록 한다. 세 번째로 비슷한 것을 하게 되면, 그때 Refactoring을 한다. (스트라이크 세개면 Refactoring을 한다.)
2. 기능을 추가할 때
- 보통 기능추가를 할 경우에는 자신의 코드가 아니어서 이해를 하기 힘들경우가 많다. 이럴때는 Refactoring을 하면서 코드를 이해하기 쉽게 된다. 혹은 기능추가가 쉽지 않은 디자인을 갖고 있는 프로그램일 경우이다. 이럴때는 Refactoring을 하면서 디자인이 이해하기 쉬운 형태로 바뀌기 때문에 기능을 추가할 경우, 훨씬 더 빠르고, 매끄럽게 수행 될 수 있다.
3. 버그를 수정해야 할 때 Refactoring을 하라
- 버그 리포트를 받으면, 그것은 Refactoring이 필요하다는 신호인데, 왜냐하면 버그가 있었다는 것을 몰랐을 정도로 코드가 명확하지 않았다는 뜻이기 때문이다.
4. 코드 검토(Code Review)를 할 때 Refactoring을 하라
- Refactoring은 다른 사람의 코드를 검토하는데 도움이 된다. 이렇게 함으로써, 코드가 어떻게 보일지 더욱 명확하게 알 수 있다.
'Programming' 카테고리의 다른 글
Mac IntelliJ 11, 12 설정파일 제거 하기 (0) | 2012.12.26 |
---|---|
좋은 변수 명명법 - '읽기 좋은 코드가 좋은 코드다' 참고 (0) | 2012.10.29 |
Ruby version manager (0) | 2011.11.21 |
추천할 만한 Programming 관련 서적 (0) | 2011.10.18 |
XCode 4 튜토리얼 (0) | 2011.09.19 |