|
프로그래머라면 "리팩토링"이란 말을 한 두 번쯤 들어봤을 겁니다. 못 들어봤다고 프로그래머가 아니란 말은 아니니 겁먹을 필요는 없습니다. 단어를 아는 사람은 원제"리팩토링:루비 에디션"가 더 눈에 들어올 것이며, 경험이 없거나 못 들어본 사람들은 "버그 없이 프로그램을 개선시키는 최고의 방법"라는 부제가 더 눈에 들어올 것입니다.
책의 내용에 비해 예스24 판매지수는 조금 아쉽네요. 많이 팔리지 않았다는 것인데요. ^^;; 원조 겪인 "리팩토링" 번역서 때문인지는 잘 모르겠네요. 아마 부제가 없었으면 더 안팔렸을 것 같네요 ^^;;
본 서의 제목에 "루비"라는 것이 있다고 해서 "난 루비 모르니 나하곤 상관없어"라고 생각할 필요는 없습니다. 저자도 그렇고 출판사가 책 표지에 써 놓은 것처럼 "모든 개발자"들에게 충분히 통할 내용이며, 편집도 그렇게 되어 있습니다.
당장 자신의, 우리 회사의 프로그램을 개선시킬 수 있는 실무 지침서로 이만한 책은 많지 않을 거란 생각이 듭니다.
저자는 예제 위주로 자신들의 이론을 설명하고 있습니다. 개선해야 할 내용을 먼저 간략하게 설명한 뒤, 코드를 통해 이를 증명하는 방식입니다. 마치 요리책처럼 말이죠. 그래서 깊지도, 얕지도 않습니다.
묘하게 재밌는 것은 이 책의 기술적 수준입니다. 개인적인 생각이지만 초,중,고급 모두에게 아주 적절하게 영향을 주도록 되어 있는 것이죠.
초급자들은 글과 예제를 정독하며 봐야 합니다. 그래야 주옥 같은 개선 방법을 놓치지 않고 습득할 수 있습니다. 내용을 처음부터 끝까지 한 번에 읽기 보다는 한 챕터가 끝날 때마다 자신의 코드를 리뷰해가면서 연습하는 습관을 들일 것을 권장합니다.
중급자들은 가볍게 설명을 읽고, 예제도 가볍게 훑어봐도 될 것 같습니다. 중급자라는 개념이 조금 모호하지만, 그래도 준 선수급이라면 저 정도는 되야 하지요. 자신의 코드가 거의 머리 속에 있을 것이므로 '맞아 저 곳에 이 방법을 적용하면 좋겠군'하는 생각이 들것입니다.
고급자들은 예제만 봐도 어느 정도 내용을 파악할 수 있습니다. 필요한 경우에만 설명을 읽는 방식이지요. 리팩토링에 대해 자기 자신을 환기시키고, 혹시 머리 속에 있고 있었던 부분도 떠올릴 수 있을 것 같습니다. 더 나아가 자신의 경험과 비교해 가며 더 현실에 맞는 좋은 방법을 찾을 수도 있을 것입니다.
초중급을 떠나서 절대 놓치면 안되는 것은 "굵은 글씨"로 된 부분들입니다. 저자는 핵심 내용들에 대해서 "볼드"체로 분명히 짚어주는 친절을 베풀고 있습니다. 이 내용들만 따라 읽어도 꽤 도움이 될 듯 합니다.
추천하는 것은 본 서를 읽기 위해 약간의 UML 지식 정도는 훑어보는 것입니다. 클래스 다이어그램을 UML방식으로 표현하기 때문이죠. 깊은 수준의 UML 지식도 아니니 블로그 한 두 개 정도 읽어보시면 좋겠습니다. |
|
리팩토링의 중요성에 대해서는 더 말해서 무얼하랴. 리팩토링 원판의 리뷰를 참고하실길.. 리팩토링의 루비 버전은 어떨까 하고 기대속에 읽은 느낌은 루비판 요약 버전같은 느낌 이었다. 좋았던 점은 요즘 관심을 가지고 있던 루비로 설명했다는점, 루비에서 리팩토링시 유용한 몇가지 사항들이 추가 되었다는 점이다. 아쉬운 점은 난 원판을 그리 꼼꼼히 읽은건 아니라 괜찮았지만 원판을 자세히 읽은 사람은 별다른게 없어서 아쉬울 수도 있을것 같다. 원판의 요약본이라는 느낌이 들었는데 혹 원판을 구할 수 있다면 같이 놓고 보면 더 좋을것 같다. |
|
기존 [리팩토링] 도서를 읽은 적도 없으며 루비 언어에 대한 경험도 없는 상태에서 [리팩토링:루비 에디션]을 보았습니다. 풍부한 경험을 쌓은 대선배의 조언은 쉽게 얻을 수 있는 내용이 아닙니다. 하나하나 조금씩 천천히 생각하며 연구하고 적용해 봐야 할 것입니다. 이러한 방법을 필요로하고 실천되는 좋은 개발 환경으로 개선 되기를 바랍니다. |
|
refactoring을 공부하면서 ruby를 더 잘 이해할수 있음. 뿐만 아니라, 다른 언어에도 응용가능한 방법들이다.
ruby를 공부하면 좋은점.
구현이 빠름. 구현이 빠르기 때문에 더 빨리 다양한것들을 테스트해볼수 있음. 기업에서 프로그램관련 업무시 발생하는 여러 상황에서 요긴하게 사용가능하다. 기업업무시 발생하는 데이타정리, 추출등의 상화이 자주 생기는데..
이럴때 아주 요긴하다.
|
|
자바를 어느정도 공부를 한 후에 많은 사람들이 추천해주는 공부거리가 디자인패턴과 리팩토링이 아닐까 생각된다. 마틴 파울러의 리팩토링 책은 많은 사람들의 찬사가 쏟아지고, 개발자라면 한번쯤 꼭 읽어봐야 하는 그런 책으로 통하는것 같다. 많은 사람들이 말한데로 마틴 파울러의 리팩토링은 큰 가치를 주는 책이다. 단순히 리팩토링하는 기법을 소개하는 책의 역할만 하는게 아니라 보다 보면 근원적인 물음으로 어떻게 프로그램을 잘 설계해서 개발해야 할 것인가에 대한 생각을 하게 만드는것 같다. 리팩토링 책이 왜 좋은지에 대한 말은 이정도로 하고, 리팩토링 : 루비 에디션을 선택한 이유를 말하자면, 리팩토링 개정판이 나와서 선택을 하였다. 결론을 말하자면 자바 언어로 쓰여진 리팩토링 원판과 크게 다르지 않다. 다른 점은 루비 언어에 맞게 리팩토링이 쓰여졌다는 것이다. 책이 루비로 쓰여져 있다고 해서 읽기 어려운건 아니다. 루비 자체가 간단한 언어이기도 하지만 루비 홈페이지에서 20분 튜토리얼만 슥 봐도 어느정도 코드를 읽는데 불편함이 없다. 하지만 자바를 주로 사용하는 개발자라면 리팩토링 원판을 사는게 더 도움이 될것 같다. 원판 리팩토링 책을 제일 처음 봤을때 처음부터 끝까지 읽어 내려갔다. 그러다 보니 책은 점점 지루해지고 책을 읽고 생각해서 개발에 적용해야 되는데, 머릿속으로 책을 읽는게 아니라 눈으로 글자만 읽어내려갔다. 대부분의 리팩토링을 읽은 나같은 초보 개발자들의 생각일것 같다. 두번째 읽을때는 책읽는 방법을 달리해 3장 코드속 나쁜 냄새를 읽으며 하이퍼링크를 따라가듯이 리팩토링의 세부 구현부분을 읽어 나갔다. 순서대로 이 책을 읽는건 사전을 순서대로 읽는것 처럼 힘들고 지루했지만 3장을 읽으면서 링크를 따라가며 읽으니 책이 어떤 걸 말하는지 이해할 수 있었다. 나는 리팩토링에서 3장이 가장 핵심이라고 생각한다. 그래서 리팩토링 : 루비 에디션도 3장을 중심으로 읽었다. 리팩토링 원판은 간간히 이해가 쉽게 잘 안되는 문장이 있었는데(제일 중요하다고 생각하는 3장에서도..), 루비 에디션은 쉽게 이해할 수 있도록 번역이 훨씬 매끄럽다. 루비 언어에 특화된 리팩토링 부분도 있지만 기본적으로 자바 리팩토링 책과 내용이 동일해 쉽게 읽을 수 있다. 다만 아쉬운 점은 리팩토링 원판에는 3장에 리팩토링 기법마다 책의 페이지 번호가 쓰여져 있어 쉽게 해당 페이지를 넘겨가며 읽을 수 있었는데, 루비 에디션은 페이지 번호가 사라졌다. 이점이 가장 아쉬운 점이다. 리팩토링 개정판이란 말에 망설임 없이 선택하였지만 자바 개발자라면 개정판이란 말에 꼭 이책을 선택하기 보다 자바로 된 원판을 선택하는게 더 도움이 될 것같다. 이 책을 보면서 얻은점은 원판보다 좀 더 세련된 번역과 루비 언어로 되어 있다보니 요즘 자주 사용하는 파이썬으로도 적용해 보면 재미있겠다란 생각이다. 물론 루비를 잘 알고 사용하는 개발자라면 이 책을 꼭 읽어야 할것 같다. 제일 좋은건 원판과 개정판을 둘 다 사서 번갈아 보면서 읽는 것이다.
|
|
자주 듣기는 하나 정확하게 뭔지는 알지 못하는 내용 두가지...
책의 초반부분을 볼때까지는 루비에 대한 걱정은 별로 안해도 되는것 같습니다.
코딩을 하면서 어떻게 하면 좋은 구조의 소스가 될 수 있게 할까라는 생각이 들때... 이책이 아닌 또 다른 유명한 리팩토링책을 아직 보지 못해서 어떤지는 잘 모르겠지만, 그 책을 좀 더 쉽게 풀어쓴 내용일거라는 생각이 들었습니다. |