리팩토링 - 실용적이고, 현실적이며 실천적이었다.

Posted by 엘키의 주절 주절 on September 17, 2007

리팩토링이란 좋지 않은 구조의 코드를 좋은 구조로 바꾸는 작업을 말합니다.   돌아가기만 하면 되지 구조가 뭐가 중요하냐고 생각하시는 분들은 아마 유지보수의 악몽을 경험해보시지 않은 분들일 것입니다.   실용주의 프로그래머란 책을 읽어보면 깨진 창문 법칙이란 얘기가 나옵니다.   창문이 하나 깨지고 나면 다른 창문이 깨지는걸 대수롭지 않게 여기게 되어, 결국 모든 창문은 깨지게 된단 이야기입니다.   프로그램 코드도 마찬가지입니다. 지금 당장은 이렇게 하는게 문제 해결에 빨라. 우선 이렇게 해놓고 보자. 돌아가니까 내버려두자라고 생각해 대충 처리한 것들은 언제고 문제를 일으키기 마련입니다.   책서 언급한 리팩토링이 필요한 코드의 법칙에는 우리가 개발과정에서 느껴온 실수의 여지를 줄이는 방법이 있습니다.   우리의 머리는 대용량 컴퓨터가 아닙니다. 기억은 지워지기 쉽고, 직관적이지 않은 코드는 실수하기 쉽습니다.

메모의 기술이란 책에서는 이렇게 말합니다.   기억하기 위해 메모하는 것이 아니라, 잊기 위해 메모하는 것이다   사람의 기억은 믿을게 못됩니다. 리팩토링을 통해 직관적으로 바뀐 코드의 세세한 동작은 잊어버리셔도 됩니다. 코드를 메모처럼 잊읍시다.   꺼림직한 코드를 작성했을때에 늘 후회하는 상황이 발생했습니다. 언제고 다시 리팩토링 해야 했기 때문이죠. 늘 작성한 코드를 리팩토링 대상으로 놓고 검토하고 수정한다면 유지보수의 악몽에서 벗어날 수 있을거라고 확신합니다.   리팩토링은 실천의 미학이기 때문이죠.