서문, 필자가 자신의 경험담을 들려주면서 시작한다. 자신은 컨설턴트였고, 어떤 프로젝트에 참여한다. 필자는 그 프로젝트의 소스코드를 보던 중 소스코드가 너무 지저분하여, 정리할 것은 프로젝트 매니저에게 말했지만, 프로젝트 매니저는 이 말을 듣지 않았다고 한다. 필자는 그 소스 코드에 작업하고 있는 프로그래머에게 문제점을 보여 주었고, 다른 프로그래머들은 소스 코드를 정리하게 되었다고 한다.

소스 코드는 많이 정리하게 되었고, 이 작업에 2틀이나 소요되었지만 소스 코드는 더 깔끔해 졌고, 새로운 기능을 추가하기 편해지게 되었다.

6개월이 흐른 뒤에 이 프로젝트는 실패되었다고 필자는 말해준다. 그 이뉴는 상당 부분은 너무 복잡해서 디버그나 퍼포먼스 튜닝을 할 수 없었기 때문이라고 한다.

이 이야기가 바로 "Refactoring" 이란 책이 나오게된 계기라고 한다.

refactoring 이란 무엇인가?
래팩토링은 내부 구조를 개선하는 것이다. 보통 디자인을 먼저 하고, 코드를 작성하는데, 리팩토링은 작성된 코드를 보기 좋은 디자인으로 변경시키는 것이다. 이 말을 듣고 나는 "이상한 말이네.." 라고 생각했지만, 가끔 내가 하는 "쓸때 없는 행동"이 바로 이 리팩토링이였다는 것을 알게 되었다.

보틍은 생각하고 코드를 짜는데, 가끔 생각없이 코드를 짜면서 생각 할 때가 있다. 뭐 생각하고 짜도 비슷했지만, 다음에 다시 코드를 보면, 나는 코드를 변경시키는 것이다. .. 왜냐하면 보기 너무 지저분하고, 불필요한 살들이 붙어 있는 것이 보이기 때문이다.

너무 많은 변수들은 그 사용처가 불분명해지고, 너무 많은 소스코드는 이해하기 복잡해 지며, 너무 많은 함수들은 그 역활이 각각 중복되게 된다.

이 것을 바로 잡아, 좋은 디자인을 찾고, 개선하는 작업, 이를 리팩토링이라 한다.

무슨 내용이 있는가?
내용은 리팩토링을 하기 위한 가이드이다. 예제는 자바 코드로 되어 있지만, 너무 심려말라고 한다. 개념을 잡기 위한 책이니까 말이다.

누가 이 책을 읽어야 하는가?
소프트웨어 작성을 하는 전문 프로그래머가 대상이다.


총평
책은 산지는 꽤 되었는데, 이제서야 꺼내 본다.


신고

'책 정리 > Refactoring : 리팩토링' 카테고리의 다른 글

Refactoring : 서문  (0) 2009.02.02
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요