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


---------------------------------------------------------------------------------------------------
왜 리팩토링을 해야 하는가 ? - 리팩토링은 소프트웨어의 디자인을 개선시킨다.

 나는 리팩토링을 소프트웨어의  모든 문제점에 대한 치료방법이라고 말하고 싶지는 않다. 은탄한(만병통치약)이 아닌것이다. 그러나 리팩토링은 유용한 도구이고, 코드를 잘 잡고 있게 해줄 은집게 정도는 된다. 리팩토링은 여러가지 목적으로 사용될 수 있고, 사용되어야 하는 도구이다.

- 리팩토링은 소프트웨어의 디자인을 개선시킨다.
리팩토링이 없다면, 소프트웨어의 의도된 디자인은 망가져갈 것이다. 사람들이 코드를 수정함에 따라 - 단기적인 목절을 이루기 위해서 또는 코드 전체의 디자인을 제대로 이해하지 못하는 상태에서 코드를 변경할 때 - 코드는 원래의 구조를 잃을 것이다. 코드를 보고 디자인을 파악하는 것은 더욱 어려워질 것이다. 리팩토링은 이런 코드를 정돈 하는 것이다. 정말 적절한 곳에 있지 않은 코드는 제거 한다. 코드의 구조가 망가지는 효과는 누적된다. 코드에서 그 디자인을 파악하기 어려워질수록, 디자인을 유지하기 어려워지고 결국 디자인은 더 빨리 시들어 갈 것이다. 정기적인 리팩토링은 코드가 디자인을 유지하도록 도와준다.

디자인이 좋지 않은 코드는 같은 작업을 할 경우 더 많은 코드를 사용한다. 왜냐하면 같은 작업을 하는 코드가 여러 곳에 중복해서 있을 경우가 많기 대문이다. 따라서 디자인을 개선하는 중요한 측면 가운데 하나가 중복된 코드를 제거하는 것이다. 이것의 중요성은 나중에 코드를 수정할 때 나타난다. 코드의 양을 줄이는 것이 스스템의 속도를 빠르게 하지는 않느데 이는 프로그램이 차지하는 공간이 속도에 미치는 효과가 별로 중요하지 않기 때문이다. 그러나 코드의 양을 줄여 놓으면 코드를 수정할 때 큰 차이가 나타난다. 코드가 많을수록 정확하게 고치기는 러렵다. 이해해야 할 코드가 더 많기 때문이다. 한쪽의 코드를 조금 고친다고 하더라도 시스템이 기대한 대로 작동하지 않는데, 그것은 다른쪽에 잇는 약간 다른 컨텍스트에서 거의 동일하게 작동하는 부분에 대한 코드를 고치지 않았기 때문이다. 중복을 제거함으로써, 각각의 작업에 대한 코드가 오직 한곳에만 있게 할 수 있다. 이것은 좋은 디자인의 필수 조건이다.
---------------------------------------------------------------------------------------------------

타이핑을 칠 무렵 주위의 한 지인이 ... 왜 리팩토링을 해야해 ? 라고 물어 보았는데..
난 거기의 대한 대답을 웃음으로 넘기고 말았다. 리팩토링을 왜 해야 하는거지? 라는 거에 대해서 나도 그대답을 찾지 못하고 있는듯 하다.
왜 해야 하는가 ?
음..... 왜 해야하지?
책에는 좋은 내용들이 구구절절 적혀 있다. 하지만 그게 자기 자신에게 와 닿지 않고 필요치 않으면...
그냥 하얀 종이 위에 찍힌 검정색점 밖으로는 보이지 않을 것이다.
난... 아직 이르지만... 이렇게 생각 하고 싶다.
향기가 구수한 코드를 만들기 위해서... 누구가 봐도 한편의 스토리를 읽는 것 처럼 읽어 내려 갈 수 있는..
재미있는 책과 같은 코드를 만들기 위해 코드에 대해 지켜야 할 자그만한 에티켓이라고 생각한다.

아직은 잘 알수 없지만...
향기가 좋은 코딩책을 작성하는 그날까지.........
Posted by is윤군