Post
KO

리팩토링의 원리

 리팩토링과 디자인

 리팩토링은 디자인을 보완하는 특별한 역할을 한다.프로그래밍을 하기 전에 미리 디자인에 대해 생각해보는 것이

비용이 많이 드는 재작업을 피하도록 하는데 도움이 된다는 것을 알게 되었다.

곧 미리 디자인에 대해 생각하는 (upfront design)스타일을 더욱 좋아하게 되었다.

많은 사람들이 디자인이 핵심이고, 프로그래밍은 단순한 절차라 생각한다.

하지만 먼저 개발 후 리팩토링을 거쳐 최적화를 할 수도 있다.

-> 시스템이 어떻게 돌아가는지 정확하게 알고 있다 하더라도, 추측만 하지 말고 실제로 퍼포먼스를 측정해보라. 무엇인가 배울 것이고, 십중팔구는 추측이 틀렸을 것 이다.

리팩토링과 퍼포먼스**

​ 리팩토링에 대한 공통 관심사는 리팩토링이 프로그램의 퍼포먼스에 미치는 영향이다. 소프트웨어를 좀 더 이해하기 쉽게 만들기 위해 수정을 하는데, 이것이 종종 프로그램을 더 느리게 작동하도록 하는 원인이 될 수도 있다. 이것은 중요한 문제이다.

리팩토링은 확실히 소프트웨어를 더 느리게 할 것이지만, 반면에 소프트웨어에 대한 퍼포먼스 튜닝을 더 쉽게 할 수 있도록 만든다. 엄밀한 시실시간 환경을 제외한 모든 영역에서, 빠른 소프트웨어를 만드는 비결은 먼저 튜닝할 수 있는 소프트웨어를 만들고, 그 다음에 충분한 속도를 얻을 수 있도록 튜닝하는 것이다.

  1. 디자인을 분해함에 따라 각 컴포넌트에 리소스(시간과 footprint)를 배분한다.

  2. 퍼포먼스에 지속적으로 관심을 갖는다.

  3. 프로그램을 모니터하여 이 프로그램이 어디서 시간을 보내고 공간을 얼마나 차지하는지 알려주는 프로파일러 프로그램을 실행한다.

리팩토링을 하는 동안 단기적으로는 소프트웨어를 느리게 하지만, 최적화 단계에서는 소프트웨어를 튜닝하는 것을 더 쉽게 한다.

결국엔 이익이 된다.

This article is licensed under CC BY 4.0 by the author.