패턴계에서는 절대적으로 내려오는 한가지 격언이 있습니다.

Pattern isn’t an island.  패턴은 섬이 아니다.  

패턴이라는 것은 크게는 Architecture을 결정하기도 하며, 그 밑에 Design을 결정하는 중요한 역할을 합니다. 즉 패턴간에 서로 깊은 연관성을 가진다는 것 입니다.

일전에 제가 다녀왔단 PLoP Bootcamp 포스트에서  Fault Tolerance 패턴의 저자인 Bob Hanmer가 Problem/Solution에서 언급한 패턴 언어를 참고하시기 바랍니다.

위 그림을 예로 들면 통신시 신뢰성을 확보하기 위해 IO GateKeeper라는 Monitor를 통해 데이터를 거쳐가게 만들었지만, Source/Destination/메세지의 순서등을 구분하기 위해 Token (Time + Mac Address + Handler 정보) 인 IO Triage 이용하게 되고, IO Triage를 구축하기 위해 내부적으로 Timestamp를 사용하는 모습이 보입니다.

즉  거대한 아키텍쳐적인 결정이든, 그 밑에 세분화된 설계에 대한 결정들이 개별적으로 결정되는 것이 아니라, 서로 간에 영향을 미치며 결정된다는 것입니다.

작년에 Kent Beck님은 세미나에서 이러한 말을 했습니다.

Design is an island‘  (설계는 섬이다.)

패턴을 몰랐다면 이러한 말이 별로 도발적으로 들리지 않았겠지만, 패턴계에서 늘 원칙처럼 언급하던 패턴이 가져오는 Side Effect를 중화시키기 위해 다른  해결책으로 또 다른 패턴들이 도입되는 그림을 늘 봐온 저로서는 도발적인 정의였습니다.

계속 읽기

두번째 고객 소통 패턴을  여러분과 공유합니다.다시 한번  손정민, 변현규, 문준석, 송은진 4 친구에게 정말 감사함을 표합니다!

소통은 사회적 관계를 형성하기 위한 핵심 매개체 중 하나다. 바쁜 현대사회에서 페이스북이나 트위터 등 소셜 네트워크 서비스(SNS)를 이용해 소통의 끈을 이어가는 사람들을 보면 소통이 인간의 기본욕구라는 것을 명확히 알 수 있다.

그렇다면 소통은 단지 사람과 사람사이에서만 성립되는 것일까? 필자는 기업과 고객의 관계에서도 소통이라는 명제가 성립할 수 있다고 생각한다. 이번 기고에서는 애자일과 패턴의 대가인 Linda Rising이 발표한 ‘고객과 소통하는 패턴’을 국내 실정에 맞게 의역했다.

이전 기고에서는 “고객 = 돈줄”이 아닌 “고객 = 사람”, 즉 “판매가 아니라 관계다(It’s a relationship., Not a Sale)”를 시작으로 고객을 파악하고(Know the Customer) 신뢰를 쌓으며(Build Trust) 고객의 말에 집중하는(Listen Listen Listen) 방법에 대해 알아 보았다.

이전 패턴이 고객과 관계를 형성하기 위한 패턴이였다면, 이번에 소개할 패턴은 형성된 관계를 발전시키는데 초점을 두고 있다.

반응하라(Be Responsive).

Aliases : 고객을 벽걸이처럼 내버려두지 말고 지속적인 관계를 유지한다.

Problem : 고객요구에 대한 적당한 반응시간은 언제일까?

Context : ‘판매가 아닌 관계다’와 ‘고객을 파악해라(Know the Customer)’를 이해한다. 신뢰 쌓기에 매진하라. 듣고 듣고 또 듣는 자세를 가져라.

Forces : 당신은 고객에게 주의를 기울이기 원하지만 항상 즉각적인 반응을 할 수는 없다. 사무실에 없거나 고객응대 시스템이 다운될 수도 있다.

계속 읽기

EVA 식구들의 신년회가 1월 22일 있었습니다 .

포스팅하기에 좀 늦은 감이 있지만, 공유하는 차원에 올립니다.  PLoP Bootcamp 09년도에 발표된 자료를 사용했습니다.

계속 읽기

아키텍트로서 성장하기 위한 길은 막막하게 느껴지곤 한다. 누구에게 아키텍트로서 가야 하는 길을 물어야 할 것인가? 산전수전 다 겪은 나이가 지긋한 아키텍트로 활동 중인 사람을 만나기란 하늘의 별따기다. 따라서 필자는 업계 최고의 아키텍트들의 조언을 모아 가상의 인터뷰를 진행해 봤다. 이 인터뷰의 내용은 필자가 PLoP라는 패턴학회에서 만난 해외 거장들과의 토론과 조만간 출간될 번역서인 『아키텍트가 알아야 할 97가지』의 내용을 모아 만들었다.


손영수 안녕하십니까? 여러 선배님들. 아직 ‘Architecture’의 ‘A’자도 깨우치지 못했지만, 여러 선배님들에게 아키텍트로 성장하기 위한 방법과 또 아키텍트로서 올바른 아키텍처를 바라보는 방법들을 여쭤 보고자 합니다. 많은 이들이 궁금해 하는 질문일텐데, 여러 선배님들처럼 훌륭한 아키텍트가 되기 위해선 어떠한 것들을 준비해야 할까요? 실제 현업에서 아키텍팅할 때 어떠한 부분을 고려해야 할지 여러분들의 얘기를 듣고 싶습니다.

계속 읽기

Joshua Kerievsky 의 A Timelss way to communicate 세션 (부제 : : The Alexandrian Pattern Format )을 듣고 왔습니다. 패턴 저자들에게 Christopher Alexander 패턴의 가치를 깨닫게 해주고, 패턴 저자로써  가야할 방향을 제시한 좋은 발표였습니다.

크게 요약하면, 패턴을 작성하는 스타일이 있는데,  Portland Form  –  Jim Copeling Form – GoF Form – Alexandarian Form 형태로 성숙하고 더 좋은 포멧이라는 것을 설명하는 세션이었습니다.  A Timeless way of Building를 작성한 Christopher  Alexandar가 만든 패턴 포멧에 대한 가치와 심오한 배경등을 설명해 주고, 왜 우리 패턴 저자들이 Alexandar가 만든 스타일을 따라야 하는지 설명을 해주었습니다.

재미난 건 PLoP에 GoF인 Ralph Johnson도 있고,  Linda Rising 도 있고, Jim Copelin은 안 나왔지만 이미 친분이 두터운 관계인데, 그들의 스타일을 일일이 설명하면서, 어떻게 개선해야 되는지 설명한 세션이다 보니, 국내에선 이렇게 하다가 분위기가 험악해 질수도 있을거 같았는데. 놀라웠던건 그들이 그걸 수긍하고, 이미 Alexandarian 패턴 포멧을 따라가겠다는 의지를 밝혀 주었다는 겁니다.   역시 PLoP에 참가한 대가들은 변화와 개선점도 아주 빠르게 흡수한다는 것이 놀라웠습니다.

일단 특별히 어떤 형태로 쭉 잘정리하고 싶었지만 영어를 실시간으로 들으면서 정리하는데는 시간이 무지 많이 걸리거 같아. Timeline 순서대로 쭉 메모한 것을 그대로 적겠습니다.

계속 읽기

또는… 안녕하세요. 블로그를 통해서 이런 스팸성 글을 적어서 죄송합니다. 다름이 아니라. 이번주 금요일 부터 열려서 다음주 금요일날 끝나는 OOPSLA의 새로운 이름인 SPLASH나 PLoP에 참석하시는 한국분이 있으시면 연락 주시길 바랍니다. 제가 혼자 가게 될거 같습니다.  혹시 가시면 얼굴이라도 알고 지내고, 호텔비를 Save하는데는 도움을 드릴 수 있을것 같네요. 혹시 충동적으로 비행기/등록비를 내서라도 가고 싶은데, 현지 생활비가 걱정이 […]

새로운 시작 – 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을 통해서요.  많은 분들에게 약간의 도움이 되었으면 합니다.

계속 읽기

마소 (마이크로 소프트웨어 ) 5월호에 “EVA네가 들려주는 Fearless Change 두 번째 이야기“라는 주제로 글을 기고했습니다.

원래 4월에 실릴 예정이었으나, 이런 저런 내부 사정으로 5월에 실리게 되었습니다.  이미 저의 블로그를 구독하시는 분에게는 싱거운 자료지만, 자료 공유 차원에서 올립니다.

물론 기고한 글은 모두 저의 지식이 아니며, Linda Rising의 지식과 다양한 분야의 경험을 가진 저희 EVA팀의 지식으로 만들어진 자료입니다. 지식을 나누어 주신 EVA 식구 여러분 감사합니다. 전 단지 정리를 했을 뿐입니다.

EVA 팀이 없었다면 이렇게 좋은 자료가 나온다는 것은 불가능했을 겁니다.  EVA팀 감사합니다. 다음과 같은 내용이 기고 되었습니다.

계속 읽기

패턴 칵테일.  이름을 봐서는 술이라도 한잔해야 될거 같은데요.

이름 맞추기 게임 (Name that Pattern)

이 게임은 패턴 포커를  뽑아서 보지 않고 자기 머리 위에 올려 놓습니다.  그리고 다른 사람에게 자신의 패턴이 뭔지 이것 저것 물어서 맞추어야 합니다.

상당히 쉬울거 같지만, 막상 당사자는 답답합니다.  무엇을 물어봐야 할지도 어렵고, 주위에 있는 사람이 실컷 설명해줘도, 찾기가 정말 어렵습니다.

계속 읽기

학습 곡선을 줄이며, 단기간에 쉽게 새로운 것들을 받아 들일 수 있을까?  그것에 대한 대답은 바로 놀이라고 생각합니다.

얼마 전 저희 EVA팀과 같이 Pattern Poker를 쳤습니다. 정말 놀이와 학습이라는 두가지 토끼를 잡은 좋은 게임이었습니다.  Pattern Poker (패턴 포커)라는 이름이  다들 생소하시리라 봅니다. AsianPLoP에서 만난 Refactoring to Pattern의 저자인 Joshua Kerievsky가 창안안 방법이며, 구입할 방도가 없어서 제가 직접 만들었습니다. 🙂 게임의 룰을 간단히 말씀 드리겠습니다.

계속 읽기