PLoP에서 수많은 거장들을 만났습니다. 거장들중 우리나라에 그리 많이 알려지지 않은 분들을 하나씩 소개할려고 합니다. 왜냐면 이들의 연구분야들을 하나씩 소개하는 것이 어떤 분들에게는 귀중한 정보다 될것이고, 많은 도움이 될거라고 생각이 듭니다.
Robert Hanmer씨는 이번에 저희 Half-Push/Half-Polling 패턴의 목자 (Shepherd) 이셨습니다. (PLoP에서는 패턴을 제출하면 완성도 있는 패턴을 한번 거른다음, 각 패턴다마 패턴을 잘 쓸수 있게 목자(멘토)를 지정해 줍니다. 그럼 목자와 함께 계속 애기를 나누면서, 패턴들을 수정해 나가는 거죠. 그 이후 저자 워크샾을 통해 한번 더 다듬게 되고, 최종 논문이 완성됩니다.)
PLoP의 BootCamp를 수년간 Linda Rising과 이끌고 있었고, 상당히 부드럽고 배려심이 많으신 분입니다. 이하 Bob 아저씨(Robert를 다 Bob이라고 부릅니다)는 현재 Alcatel-Lucent (Lecent Technolgies and AT&T)라는 Telecomunication 회사에서 Consulting Member로 근무중이며, 고 수준의 가용성(availiability)를 보장하는 시스템을 꾸준히 만들어 오셨습니다.
이러한 패턴들은 고수준의 품질을 요구하는 제조업과 아주 밀접한 연관이 있으므로, 국내 제조업에 종사하는 소프트웨어 개발자에게는 상당히 도움이 될만한 서적이라고 생각됩니다. 그리고 인사이트에서 판권을 확보하고 현재 번역중이라고 하니 조만간 번역서를 만나 보실 수 있으리라 생각이 듭니다.
모든 소프트웨어 아키텍트들은 모든 것을 가질 수 없다는 것을 알고 이해해야 합니다. 높은 성능, 높은 가용성, 고 수준의 보안 그리고 고 수준의 추상화 모두를 동시에 충족하는 아키텍쳐를 설계하는 것은 사실상 불가능합니다.
소프트웨어 아키텍트들이 알아야만 하고, 이해해야 하는, 그리고 고객, 동료와 함께 대화를 나누어야 하는 진실된 이야기가 있습니다.
이 이야기는 Vasa라 불리는 배 이야기입니다. 1620년대에 스웨덴과 폴란드 사이에 전쟁이 발생했습니다. 스웨덴 국왕은 비용이 많이 드는 전쟁을 빨리 끝내고 싶었고, vasa라 불리는 배를 건조[1]할 것을 명령하였습니다. 이 순간부터, 이 배는 더 이상 평범한 배가 될 수 없었습니다.
이 배가 갖춰야 했던 조건(요구사항)들은 그 당시의 어떤 배와도 비교할 수 없었습니다: 선체가 200피트 정도 더 길고, 2개의 갑판에 64개의 총을 적재할 수 있고, 300명의 군사를 안전하게 태워 폴란드로 가는 바다를 가로지를 수 있는 수송 능력을 가져야 했습니다. 배를 건조하는 데드라인(시간)을 엄수해야 했으며, 재정(자금)적으로도 여유롭지 않았습니다.

I Need Feedback.
이번 PLoP 2009에서 받았떤 저희 Half-Push/Half-Polling 패턴의 저자 워크샾에서 받았던 실제 피드백 내용을 정리했습니다. 몇 개가 더 있지만, 영어적인 문제라 뺐습니다. Eduardo 교수님께서 일일이 잡아주셨습니다. Eduardo 교수님 정말 감사합니다.
이걸 참고하셔서 좀더 피드백을 주시거나, 아래의 리스트와 다른 새로운 피드백을 주시면 감사하겠습니다.
이번 PLoP 에서 프린터로 받은 Pattern Template을 번역해서 올립니다.
기존 Pattern Template에 달리 추가된 내용이 Resulting Context/Side Effects 입니다. 지금까지 패턴들은 장점만 너무 기술한 경향이 있는데. 이제 이 패턴을 적용할 경우 발생하는 Side-Effect도 기술하길 권하고 있습니다.
영어 원문을 그대로 번역한 것이라. 약간 매끄럽지도 않을 수도 있습니다. 🙂
저자 워크샾을 벽위의 파리 (저자) 입장에서 보았을 때의 느낌을 공유합니다.
회고로 보시면 좋을듯 합니다. 저자 워크샾( Writer’s Workshop) 진행 방식은 바로 이전 포스트인 저자 워크샾 Demo를 보시길 바랍니다.
저희 그룹의 좌장은 GoF의 Ralph Johnson이 였으며, 조정자(Moderator) 역할을 해주셨습니다. BootCamp때 진행한 Linda 아주머니와는 약간 다른 진행방식을 취했습니다. Rinda 같은 경우는 끊임없이 서로의 의견을 주고 받으며, 적절히 시간 조절을 잘 해주었는데, Ralph Johnson 박사님은 토론을 좋아하는 분이신지라 🙂 거기에 깊게 뛰어든 나머지,조정자 의 중요한 역할 중 하나인 시간 배분을 잘못해서, 저희 Pattern 뒷 부분을 다루지 못하게 되었습니다. 상당히 아쉽더군요 …
사실 저자 워크샾에 참석하기 전에 패턴을 정독해서 읽어가야 하지만, 몇몇 참가자들이 패턴을 읽지 않고 왔습니다. 그래서 Implementation 부분에 다루는 애기들을 앞에서 많이 하는 경향이 보이더라구요. 저자 워크샾을 참석하는 참가자들은 꼭 논문을 사전에 정독하시길 권해드립니다.
그래도 많은 피드백을 받았기 때문에, 이 부분도 수정을 하고 저희 스터디 그룹과 같이 MiniPLoP 형태로 진행해서 남은 부분을 보완할 생각입니다.

PLoP이 시작 하기 전에, Pre Conference 행사로 BootCamp가 매년 열립니다. BootCamp는 패턴을 올바로 이해하고, 올바른 패턴을 만드는 방법을 전수하기 위한 목적이 있습니다. 위 그림 처럼 패턴을 만들어 보고, 서로간의 의견을 주고 받으면서 점진적으로 패턴을 완성해 나갔습니다.
주제는 자전거 경주에서 승자가 되는 패턴인데. 신선하고 재미있었습니다. 이러한 패턴을 잘 만들기 위한 가이드라인을 알고 있었던 것이지만, 직접 누군가와 같이 애기하면서 패턴을 만들어 나간다는게 흥미로웠습니다. 짧은 영어로 인해 후배녀석한테 물어보면서 눈치껏 듣느라 🙂 고생했지만, 좋은 경험이었습니다. 올바른 패턴을 만들기 위한 Pattern Template을 간략히 요약해 나누어 주셨는데, 나중에 집에가서 스캔해서 올리도록 하겠습니다.
오늘 BootCamp행사 도중 깨달은 몇가지를 나누고자 합니다. PLoP의 정신을 이해하는 행사였다고 봅니다.
굳이 이 분이 누군지 말 안해도 다들 아실겁니다. 🙂 바로 Grady Booch 입니다. UML을 탄생시킨 3인방 중에 한명이며, 지금의 소프트웨어 공학에 지대한 영향을 끼치신 분이죠 .
Grady Booch의 끊임없는 지적 호기심을 보여주는 좋은 사이트가 있어서 소개합니다.
바로 Handbook of Software Architecture 라는 사이트 입니다. 아마 아실 분은 다 아시겠죠 :). 여기에 Pattern들에 대한 보물이 숨겨져 있습니다.
바로 지구상에 발표된 패턴들을 잘 요약해 놓고, 적절하게 다양한 관점으로 분류하고 잘 요약정리해 놓았습니다. 단순히 GoF, POSA, PLoP 에 나온 분류 보다 훨씬 자세하게 잘 분류되어 있고, 지구상에 많은 패턴을 끊임없이 요약 정리하고 계시다니.. 대단하시네요. 저도 나름대로 분류 작업을 진행해야 겠네요 🙂

드디어 PLoP에 제출한 논문이 Published Paper List에 올라왔습니다. 이거 감회가 무척 새롭네요. 제 블로그를 통해서 제가 직접 만든 패턴을 소개하다니… 여튼 신선하고 기분 좋은 일입니다 🙂
패턴의 이름은 Half-Push / Half-Polling 입니다. (눈치있는 분은 아시겠지만 작명은 “Half-Sync/Half-Async”에서 얻어왔습니다. 🙂 )
패턴의 주 아이디어는 Upgrade시 일반적으로 사용되는 두가지 기법(Push 방식 과 Polling 방식)을 혼합하여 장점은 살리고 단점은 제거한 패턴입니다.

여러분!! 인기 있는 Framework를 만들고 싶으신 가요? 저 역시 그렇습니다.
인기 있는 Framework를 만들기 위해 Framework Design Guidelines에서 나온 내용(.NET Framework 설계자인 Krzystof Cwalina의 조언)들을 일부 여러분과 공유하고자 합니다.
- 사용성 테스트
- 점진적인 학습 곡선
- 캡슐화의 오해
이번 포스트에서 다룰 주제는 이렇습니다. 자 그럼 하나씩 살펴 보도록 하죠 🙂
Design Patterns의 GoF중 한 사람이자, Framework의 대가인 Ralph Johnson이 내한 합니다.
이번 방문과 함께, Korea Spirng User Group의 안영회님께서 수고해 주셔서 세미나를 여시네요.
비록 5만원의 유료 세미나지만, Ralph Johnson과의 점심 시간도 가질 수 있고, 세미나 정보도 알차니, 참여하시면 매우 값진 것들을 얻으리라 믿습니다.
관심 있는 분은 꼭 참여하셔서 Ralph Johnson의 경험과 지식을 얻어가시길 바랍니다. 자세한 정보는 안영회님에게 요청해주세요!