본문 바로가기

Development Note

RTP : Refactoring To Patterns (패턴을 활용한 리팩터링)

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
 Agile Java Network (이하, AJN) 에서 처음으로 시작하는 브랜드 Refactoring To Patterns(이하, RTP) 에 대해서 공부하기 시작한다. 먼저 책을 준비하는데에는 그렇게 큰 어려움이 있지 않았다.

하지만 책을 이해하는데 필요한 기본 지식들이 많이 요구 되었다. 일단 부족한 자바 실력이 그 첫번째가 되겠고 두번째는 패턴에 관한 지식이 '제로' 라는 점.. 평소에 Agile Java 라는 책을 공부하면서 그때그때 나오는 디자인 패턴에 대해서는 주먹구구식으로 학습을 해갔지만 몇몇 패턴 이외에는 문외한이다.

리팩토링에 관해서는 그다지 할말이 없다. 다만 리팩토링을 한다는 것 자체가 대단하다는 것만은 알고 있다. 코드를 작성한다는것은 어찌 보면 쉽지만 그걸 유도리 있게 도친다는 것은 굉장히 어렵다는 생각이 든다. 개발이 전무한 나에게는 코딩을 할 기회도 없었을 뿐 더러, 리팩토링은 코딩 이후에나 가능한 이야기이기 때문에 먼 이야기처럼 느껴 졌다.

책을 조금 읽고나서 나는 흥분이 되었다. 나는 소설이나 문학작품을 읽는 것을 굉장히 싫어한다. 대신, 자서전이나 한 인물의 일대기를 그린 전기, 오피니언, 에세이등을 읽는 것을 굉장히 좋아하는데, 코드를 어떤 프로그래머의 자서전이라고 생각하니 왠지 흥미가 있다. 내가 위와같은 장르의 글을 좋아하는 이유도, 이 사람은 나랑 어떤 면에서 다를까? 글솜씨가 얼마나 뛰어날까? 라는데서 시작이 되는데, 프로그래밍 코드도 이런것과 다를 바 없다는 생각이 들었다.

RTP, 어렵고 난해한 주제를 가지고 시작했다고 생각했지만, 글쎄.. 어렵고 난해한 주제라는게 있긴 있는 걸까? 사람이 해결할 수 있는 주제는 어렵고 난해하다고 보기 참 어려운 것 같다. 남이 개척해 놓은 지식을 배우는 주제에 어렵다 쉽다 할 문제가 아닌것 같다. 그냥 '하자' 라고 생각하면서 무작정 즐겨야 겠다.

사용자 삽입 이미지
책 소개 " 마침내 소프트웨어 패턴과 애자일 개발간의 관계가 정립되었다."
-- 워드 커닝햄(Ward Cunnigham)

이 책은 패턴을 고려한 리팩터링(설계자가 패턴을 구현 또는 제거한 설계로 안전하게 이동할 수 있도록 하는 일련의 저수준 리팩터링의 결합)의 이론과 실무를 소개한다. 조슈아 케리에브스키는 실세계 프로젝트의 코드를 사용해 20여 개의 패턴에 기반한 설계 변환에 대한 근본적인 사고 과정과 절차를 문서화했다. 또한 패턴 사이의 차이와 패턴을 구현하는 가장 단순한 방법에 대한 통찰을 준다.

이 책은 다음 내용을 다룬다.

- 27개의 패턴을 고려한 리팩터링 카탈로그와 실세계에서 사용된 코드 예제
- 이 책에 나오는 리팩터링 적용이 필요함을 나타내는 12개의 설계상 냄새에 대한 설명
- 패턴과 리팩터링에 대한 일반 정보와 새로운 통찰
- 구체적 적용 절차: 고수준 패턴을 구현하는 데 일련의 저수준 리팩터링을 결합시키는 방법
- 하나의 패턴을 구현하는 다양한 방법과 각 방법이 필요한 때
- 패턴과 리팩터링 경험이 거의 없더라도 시작할 수 있도록 하는 실용적 방법