ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리팩토링이란 무엇인가?
    dev/etc 2010. 2. 9. 11:35
    리팩토링은 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법으로, 소프트웨어 시스템을 변경하는 프로세스이다. 이것은 버그가 끼어 들 가능성을 최소화하면서 코드를 정리하는 정형화된 방법이다. 본질적으로 우리가 리팩토링을 할 때, 우리는 코드가 작성된 후에 코드의 디자인을 개선하는 것이다.
    "코드가 작성된 후에 디자인을 개선한다." 이상한 말이다. 현재 우리가 알고 있는 소프트웨어 개발에서 우리는 다지인을 한 다음 코딩을 하는 것이라고 믿고 있다. 좋은 디자인이 먼저이고, 그 다음이 코딩이다. 그러나 시간이 지나면 코드는 수정될 것이고, 시스템 본래의 모습과 디자인을 따른 구조는 점점 사라질 것이다. 코드는 천천히 엔지니어링에서 해킹 수준으로 떨어질 것이다.
    리팩토링은 이런 관례와 반대이다. 리팩토링을 쓰면 서투른 디자인을 취해 재작업하여 잘 디자인된 코드로 만들 수 있다. 각각의 단계는 아주 간단하다. 필드 하나를 다른 클래스로 옮기고, 메소드에서 코드의 한 부분을 따로 다른 메소드로 뽑아내고, 코드의 일부를 수퍼클래스나 서브클래스로 옮긴다. 그러나 이런 작은 변화가 쌓여서 근본적으로 디자인을 개선하게 된다. 보통의 소프트웨어 쇠퇴 개념과는 정확하게 반대이다.
    리팩토링을 사용하면 작업의 밸런스가 바뀐다. 모든 것을 미리 생각하기보다는 개발을 하면서 지속적으로 좋은 디자인을 찾는다. 시스템을 구축하면서 어떻게 디자인을 개선할지에 대해 배운다. 이런 작업은 개발이 계속되어도 프로그램의 디자인이 계속 좋은 상태로 남아있게 한다.

    출처 - 리팩토링, 마틴 파울러.

Designed by Tistory.