728x90
리팩터링: 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 ㄱ법
명심
누군가 "리팩터링하다가 코드가 깨져서 며칠이나 고생했다"라고 하면 십중팔구 리팩터링한 것이 아니다.
리팩터링하는 이유
리팩터링하면 소프트웨어 설계가 좋아진다.
아키텍처를 충분히 이해하지 못한 채 단기 목표만을 위해 코드를 수정하다보면 기반이 무너지기 쉽다.
반면 규칙적인 리팩터링은 코드의 구조를 지탱해줄 것이다.
리팩터링하면 소프트웨어를 이해하기 쉬워진다.
몇 달이 지나 누군가가 내 코드를 수정할 수 있다. 다른 프로그래머(혹은 내가)가 내 코드를 제대로 이해했다면 한 시간에 끝낼 수정을 일주일이나 걸릴 수 있다.
리팩터링 하면 버그를 쉽게 찾을 수 있다.
코드를 이해하기 쉽다는 말은 버그를 찾기 쉽다는 말이기도 하다. 리팩터링하면 코드가 하는 일을 깊이 파악하게 되면서 새로 깨달은 것을 곧바로 코드에 반영하게 됩니다.
리팩터링하면 프로그래밍 속도를 높일 수 있다.
리팩터링은 언제 하면 좋을까?
3의 법칙
- 처음에는 그냥 한다.
- 비슷한 일을 두 번째로 하게 되면, 일단 계속 진행한다.
- 비슷한 일을 세 번째 하게 되면 리팩터링한다.
리팩터링, 아키텍처, 애그니
리팩터링이 아키테거에 미치는 실질적인 효과는 요구사항 변화에 자연스럽게 대응하도록 코드 베이스를 잘 설계해준다는데 있다.
코딩 전에 아키텍처를 확정지으려 할 때 소프트웨어의 요구사항을 모두 파악해야한다. 하지만 우리는 이걸 못할 경우가 허다하다.
리팩터링을 활용하다보면 다르게 접근할 수 있다. 현재까지 파악한 요구사항만을 해결하는 소프트웨어를 구출할 수 있다.
728x90