세미나를 진행하면서 나왔던 내용들을 생각나는 대로 정리해 봅니다.
리펙토링의 정의
여기서 중요한 점은 동작은 그대로 유지한 채로 라는 문구이다.
리펙토링 과정에서 코드가 깨지는 경우가 빈번한데 리펙토링 동안에는 괜찮겠지...? 라는 생각은 금물!
리펙토링은 언제나 정상적으로 동작이 될 수 있도록 유지한 채로 차근차근 바꿔나가는 것이다.
리펙토링과 최적화의 차이
리펙토링: 사람이 보기 편하도록 내부 구조를 변경하는 것
최적화: 소프트웨어의 속도를 빠르게 만드는 것
리펙토링은 컴퓨터 친화적이 아니라 사람이 보기 편하도록 내부 구조를 변경하는 것이기 때문에 단기적으로는 소프트웨어의 속도가 느려질 수 있으나
사람이 해당 코드를 이해하기 쉽도록 만들어 놓은 것이기 때문에 프로그램의 속도를 빠르게 만드는 최적화 단계에서 수월할 것
또한 리펙토링 기간으로 인해서 개발 속도가 느려보일 수 있으나 유지 보수 단계에서 큰 빛을 발휘할 것이다.
개발자는 두개의 모자를 써야 한다
한 종류의 모자를 썼으면 해당 모자의 역할에 집중하고 그 후에 다른 모자를 쓸 것!
기능을 추가하면서 리펙터링을 했으면 좋겠다고 느껴지는 부분이 있다면 짧은 주석으로 남겨놓은 후 일단은 넘어가는 것이 좋다.
리펙토링 팁