새로운 시작 – Refactoring to Pattern

Joshua KerivskyRefactoring to Pattern (역서 – 패턴을 활용한 리펙토링,  이하 줄여 RtoP)을 저희 EVA 팀에서  새로운 스터디로 진행했습니다.

현재 진행중인 Fearless Change와 병행해서 2주 씩 돌아가며 진행이 되어집니다. 관심 있는 분은 어서 댓글을 달아 주시길.. 🙂   패턴에 익숙한 저희가 이 책들을 보았을때의 느낌은, 정말 잘 쓰여진 서적이라는 겁니다.  Refactoring과 TDD를 잘 접목하여 step by step으로 Pattern으로 적용하는 내용이 아주 잘 표현되어 있네요.

서적 초반 부(1장)에 나오는 내용중에 가장 마음에 드는 내용이 이겁니다.  과도한 설계 와 미진한 설계.

모든 걸 패턴으로 해결해야 한다는 패턴 신봉자가 되어 과도한 설계를 그려내는모습과 정말 아무것도 준비하지 않고 대충 설계한 미진한 설계에 대한 이야기가 나옵니다.  이 사이에 균형을 맞추는 것이 바로 저희들이 해야 될 일이 아닌가 쉽습니다.

RtoP는 바로 Pattern으로 설계하는 그 과정을 보여 줍니다.

냄새나는 생성 로직 -> factory 로 바로 가는 것이 아니라. creation method를 1차적으로 만들고,  encapsulation을 거쳐 최종 factory 객체로 가는 모습을 보여줍니다.

굳이 Factory로 꺼낼만큼 생성 부분에 확장 가망성이 낮다면 , creation method에서 그쳐도 된다는 거지요.  정말  실용주의적으로 refactroing 하는 기법을 설명해 주고 있는 서적입니다.   지금 현재 PLoP 준비와 Fearless Change 준비로 제가 RtoP에 스터디에 단순히 참여만하고 있지만, 정말 공감할만한 내용들이 많은것 같습니다.

RtoP 동영상 강좌 공유

여러분에게 저희가 스터디 한 내용들을 실제 동영상으로 공유합니다.   바로 EvaCast.net을 통해서요.  많은 분들에게 약간의 도움이 되었으면 합니다.

계속 읽기

얼마전 장 선진님의 소개로 겜브라스  조정현 대표님에게 뜻 밖의 선물을 받았습니다. 바로 구하기 힘든 Christopher Alexander의 Pattern Languages의 시초가 되는 책을 선물 받았습니다.  그것도 1982년에 출간된 손 때가 묻은 서적을요. 아무런 조건 없이, 이 책은 내가 주인이 아니라. 패턴 저자인 영수님이 가져가는게 맞다며 주시더라구요. 정말 감사하고, 한 편으로는 패턴 저자가 별거 아닌데라고 생각해왔었는데..  더욱 어깨가 […]

영어 발표 때문에, 새벽 3시까지 Script를 준비하느라, 이미 눈은 팬더가 되어 버렸습니다. T_T!!  자 그럼 AsianPLoP 2일차 행사를 여러분과 공유합니다.

Joshua Kerievsky 의 A Timeless Way of Communicating

1번째 세션은 Refactoring to Pattern의 저자인 Joshua Kerievsky 의 A Timeless Way of Communicating 이었습니다.AsianPLoP의 세션이 아닌 GRACE의 전체 세션이었으며, 너무나 많은 청중과 강의장이 어두워서 사진은 찍지 못했습니다.

이 세션의 내용은 Christopher Alexander의 The Timeless Way of Building과 이름이 비슷한걸 눈치 채신 분도 있을 겁니다.

패턴과 패턴 언어들 형식(Form)과 내용(Contents)을 분석하고, Pattern Languages가 소프트웨어의 지식 체계로써 사용되기 위해, 패턴 사용자들에게는 어떻게 제공되어야 하는지에 대한 깊은 얘기를 했습니다.

또한 그가 운영하는 컨설팅 회사인 Industrial Logic에 가시면 좋은 자료들이 넘쳐납니다.  이중 제가 가장 인상깊게 본 것이 Pattern Poker 입니다. 아주 짧은 시간안에 효율적으로 패턴을 익힐 수 있을 뿐만 아니라, 경험을 공유하는 좋은 방법이더라구요. 다음 스터디때 EVA 팀들과 함께 한판 치기로 했습니다.

계속 읽기

Pattern을 어떻게 하면 잘 만들수 있을까요? Joe 의 패턴 라이팅을 공개합니다.

이번 AsianPLoP에서는 작년에 참여한 PLoP BootCamp와는 조금 다른 형태로 Joe(Joseph William Yoder) 아저씨의 패턴 라이팅(Pattern Writing)을 경험해 보는 좋은 시간을 가졌습니다.

패턴 라이팅을 말하기 전에 Joe 아저씨에 대해서 간략히 소개를 해 드리면, 그는 Refactory Inc. 를 운영하고 있으며, 런타임시에 객체의 생명주기를 관리하는 유명한 패턴인 AOM (Adaptive Object Model) 을 만든 사람입니다.  GoF 중 한 명인 Ralph Johnson의 제자 이기도 합니다.

그의 발표자료를 공유합니다. 브라질에서 열리는 PLoP인 SugarLoad PLoP에서 2년전에 이미 발표한 자료네요. 이 자료를 읽기 전에 저의 블로그에 공유한  Linda 아주머니의  Pattern 만드는 법, 또 PLoP에서 소개한 Pattern Template을 먼저 읽어보시길 바랍니다.

Writing Patterns “The Straight Scoop” 다운 받는곳 (출처 SugraLoad PLoP)

패턴 템플릿 설명

계속 읽기

비오는 날엔 여러분은 무엇이 생각나시나요?

커피, 소주, 해물 파전?  무엇을 선택하든지 아마 이런 맘일 겁니다.  우울한 날엔 분위기에 빠져 보기도 싶고, 또는 친한 친구들과 함께 얘기를 나누며 적적함을 달래고  싶을 수도 있습니다. 저는 동완이 아빠가 되고 나서는 거의 꿈도 못꾸고 있습니다. 🙂

자!, 만약 여러분의 프로젝트가 비오는 날 (Rainy Day)라면 어떻게 할까요? 이 Rainy Day의 의미는 우리가 구축해야 될 시스템이 무엇인지 고객도 모르고, 나도 모른다는 얘기입니다.

구체적인 목표나 비교 대상이 없는 프로젝트를 말하는 거죠.     이런 비오는 날에 여러분의 대처 방법이 어떨지 궁금합니다.

사실 우리는 이해당사자들이나 고객의 요구사항을 받아들이고, 멋진 프로그램을 만들길 원합니다. 하지만 고객은 정작 자기가 뭘 원하는지 구체적인 것을 제시할 수 없다면, 참 막막할겁니다.  전 이럴때 걸어다니는 해골 (Walking Skeleton)을 추천해 드립니다.

이 아이디어는 Agile 에서 유명한  Allestair Cockburn이 아주 오랜전에 낸 아이디어 입니다.

계속 읽기

오래 기다리셨습니다!

드디어 Framework Design Guidelines 2nd Edition의 1차 번역이 완료되었음을 알려드립니다.

참으로 오랜 기간동안 번역되었습니다. 사실 더 일찍 번역될수 있었지만, 저를 제외한 몇몇 분들이 취업, 개인사등의 문제로 예상외로 아주 오랜 시간이 걸렸습니다. 거기다 저의 PLoP 욕심도 한 몫 했습니다.

정말 이 책을 기다리시는 많은 분에게 죄송하고, 특히 지앤선 가족 분에게 많이 미안하네요.

죄송한 말씀이지만 1차 번역이 완료되었다고 해도, 전 아직 저를 못믿습니다…

POSA 시리즈 만큼 설계의 명서이고  몇 안되는 Framework  서적중 하나이기 때문에,  잘못 오역 하거나 너무 어렵게 번역되면 (사실 충분히 어려운 내용이죠 .)  미치는 파급 효과가 엄청나기  때문이지요.

계속 읽기

컨설턴트와 컨설팅 받는 사람들이 시선 차이는 어떻게 다를까요?

연예계에서 인맥이 넓기로 소문난 박경림님이 방송에서 한 “사과 이야기”가 있습니다. 내용이 100% 정확하진 않지만, 큰 문맥은 전달되니 읽어주시길 바랍니다.

누군가  친해지고 싶어서, 자신이 좋아하는 사과를 동료에게 주었다고 합니다.  당연히 크게 감사하다고 말할줄 알고 기분좋게 주었다고 합니다. 그런데  받는이는 그리 환하게 기뻐하지 않은체, 그냥  “감사합니다” 라고 대답을 했다고 합니다. 그래서 내가 이상한 사과를 줬나? 그래서 다음에 정말 좋은 사과를 주었다고 합니다. 하지만 역시 그 동료 연예인은 형식적으로 “감사합니다” 라고 대답했다고 합니다.

계속 읽기

“아키텍트가 알아야 할 97가지 것들” 에서 저에게 가장 와 닿는 에피소드입니다.   기술도 중요하지만, 더 중요한 것은 기회를 잡을 수 있냐다 라는 말이 너무나 가슴깊이 와 닿았습니다. 결국 사람들과 어떠한 관계를 가지느냐에 따라, 그 모듈의 관계 역시 정해 지는 거죠.   기술 매우 중요하지만, 그것 보다는 어떻게 팀원들과 하나되어 서로의 단점을 상쇄시키고, 장점을 강화 시킬수 있을까요? 이게 요즘 저의 가장 큰 숙제인거 같습니다.

지금 이순간에도 실패한 급여 시스템 프로젝트를 진행하고 있는 사람이  아마 한 명 이상 있을 것입니다.

왜 그런걸까요? 자바 대신 루비를 선택하거나, Smalltalk 대신 파이썬을 선택했기 때문일까요? 혹은 오라클 대신에 포스트그레스를 사용하기로 결정했기 때문일까요? 혹은 리눅스를 선택했어야 했는데 윈도우를 선택했기 때문일까요?

실패한 프로젝트에서 사용한 기술이 전락하는 것을 우리 모두는 보아왔습니다. 하지만 문제가 정말 해결하기 너무 어려워서 자바가 해당 업무에 적합하지 않았다라는 것은 무엇을 의미하는 것일까요?

대부분의 프로젝트들은 사람에 의해 만들어지며, 사람들은 성공과 실패에 대한 기반이 됩니다. 따라서, 사람들을 성공할 수 있게 만드는데 도움이 되는 것에 대해 생각해 볼 필요가 있습니다.

한편으로는, “단지 일을 올바로 하지 않고” 프로젝트를 어렵게 하는 누군가가 있다는 가망성에 대해 충분히 생각해 볼 수 있습니다.

계속 읽기

한동한 블로깅이 뜸했던 이유들이 많이 있었습니다. 그중 하나가 바로 책 번역 다듬기 작업이었습니다. 거의 3주간 아무것도 못하고, 새벽과  틈틈이 시간을 쪼개며,  “모든 소프트웨어 아키텍트가 알아야할 97가지”(가제)의 1차 역자 교정을 마쳤습니다. 정말 홀가분 하네요 🙂

저의 체력이 예전만큼은 안되구나.. 라는 것도 깨닫고, 번역투보다는 부드럽게 전달하기 위해 의역도 많이 넣었습니다.  EVA 식구 분들이 자발적으로 너무 많은 도움을 주셔서 가능한 일이였습니다. 너무나 감사합니다. EVA 분들 감사합니다!!

출처 - http://terryfallis.com

이 책을 다듬고, 다시 씹고 씹어 읽으니 너무나 와 닿는 글 들이 많았습니다.

계속 읽기

Half-Push/Half-Polling의 최종본을 공유합니다.  올해 정말 저에게 값진 선물은 PLoP에 참가해 여러가지 문화를 배울수 있었다는 점입니다. 또한 많은 유명 Architect를 만남으로써, 앞으로의 가야할 길과 협력의 중요성을 크게 깨닫게 되었습니다.

제가 패턴 저자가 되었다는 기쁨은 이루 말할수 없습니다.  다른 학회와 달리 논문만 발표하면 끝이 아닌 학회라,  저자 워크샾때 받았던 피드백으로 논문의 내용을 개선해야 했고, 겨우 겨우 최종본이 나왔습니다.  TPLoP이라는 PLoP 저널에 실릴지는 모르겠지만, 최종본을 제출했습니다.

Home Networking이 아파트에 들어가는 것을 이해하지 못하는 서구권 문화 때문에 Office Automtation 으로 예를 바꾸고,  패턴의 Context를 좀더 이해하기 쉽게 하기 위해서  배경지식(Backgroud)과 Context를 좀더 명시적으로 적었습니다.

이 논문이 나오기 까지 많은 분의 노력에 감사드립니다.  결코 저 혼자만의 노력으로 나올 수 없는 논문이었습니다.

계속 읽기