BooK Plus2008.01.24 12:33
출처 : 리팩토링 ( 저자 : 마틴 파울러  / 윤성준 . 조재박 옮김)

---------------------------------------------------------------------------------------------------

언제 리팩토링을 해야 하는가 ? - 삼진규칙;

 여기서 Don Roberts가 내게 알려준 가이드라인이 있다. 어떤것을 처음 할 때는, 그냥한다.
두번째로 비슷한 어던 것을 하게 되면, 중복 때문에 주춤하지만 그냥 중복되도록 한다. 세번째로 비슷한 것을 하게 되면, 그때 리팩토링을 한다. [스트라이크 세개면 리팩토링을 한다.]

언제 리팩토링을 해야 하는가 ? - 기능을 추가할 때 리팩토링을 하라.

 리팩토링을 해야 하는 가장 일반적인 시점은 소프트웨어에 새로운 기능을 추가하고 싶을 때이다.이 시점에서 리팩토링을 해야 하는 첫 번째 이유는 종종 수정해야 할 코드에 대한 이 해를 돕기 위해서 이다. 수정하려는 코드는 다른 사람이 작성했을 수도 있고, 내 자신에게 물어본 후 리팩토링을 한다. 부분적으로는 나중에 내가 그 부분을 다시 볼 때를 위해서 하는 것이지만, 주된 이유는 코드를 명확하게 하면 더 많은 것을 이해할 수 있기 때문이다.
 여기서 리팩토링을 하도록 만드는 다른 이유는 기능 추가가 쉽지 않은 디자인디다. 디자인을 보고는 스스로에게 "만약 이런 식으로 디자인을 했더라면 기능 추가각 쉬웠을 텐데" 라고 말한다면, 이런 경우 나는 지난날의 잘못때문에 초조해 하지 않고, 리팩토링으로 그것을 고친다. 이렇게 하는 것은 수정을 쉽게 하기 위해서 이기도 하지만, 더 큰 이유는 이렇게 하는 것이 가장 빠르다는 것을 알기 때문이다. 리팩토링은 빠르지만 매끄러운 프로세스이다. 한번 리팩토링을 해놓으면, 기능을 추가하는 것은 훨씬 더 빠르고 매끄럽다.

---------------------------------------------------------------------------------------------------

리팩토링을 하는건 매우 귀찮은 일이다. 잘 돌아가던 코드를 리팩토링을 하게 되면 다시 테스트를 하여 잘 되었는지 반드시 확인 해주어야 하는 일이 동반 되기 때문이다.
무언가를 할 때 비용이 드는건 사실이다. 일반적으로 프로젝트를 하다보면 경력이 많은 개발자들도 그냥 아무 생각 없이 카피엔 페이스트를 한다. 그렇게 하다 보면 분명히 반드시 중복이 생긴다.
하지만 그냥 잘 돌아가는걸 왜 건들어야 하고, 왜 귀찮은 작업을 하느냐라고 한다. 물론 .. 맞는 말이다.
굳이 비용을 들여 리팩토링을 할 이유가 없기 때문이다. 완전 하나는 알고 둘은 모르는 생각 같다.

한번 작성하고 다시는 수정이 안되는 프로그램이면 모를까 대부분은 거의 한번.. 아니 그이상 수정을 가하게 된다. 추가 요구사항이나 프로세스가 변경되어... 수정 하게 된다.

그때 아무 생각 없는 사람은 변경 되는 원인만 탓하게 되고 ... 자신이 만들어 놓은 코드를 다시 이해 하기 위해 많은 비용을 들인다. 실타래 처럼 꼬여 있는 코드들을 보면서 수정하면서 엄청난 오류들을 보면서 한숨 쉬며 꾸역꾸역 ... 변경을 하게 된다.

만약 ....... 잘 정리 된 코드였으면....... 아니 개발자들은 개발 하고 나가고 .. 남아서 운영하는 사람들에게는..
곤역이 따를 뿐이다.

덩치가 커지는 프로세스 일수록 리팩토링을 하여 코드를 잘 정리 해놓는 다면.. 좋으련만..

하지만 언제나 생각과 실천은......... 좀 동떨어져 있다. 이렇게 글 적는 나도...ㅋ 잘 안되지만.
잘 쓰인 향기로운 코드를 위해서...... 오늘 하루도 화이팅!!
Posted by is윤군

댓글을 달아 주세요