
드디어 PLoP에 제출한 논문이 Published Paper List에 올라왔습니다. 이거 감회가 무척 새롭네요. 제 블로그를 통해서 제가 직접 만든 패턴을 소개하다니… 여튼 신선하고 기분 좋은 일입니다 🙂
패턴의 이름은 Half-Push / Half-Polling 입니다. (눈치있는 분은 아시겠지만 작명은 “Half-Sync/Half-Async”에서 얻어왔습니다. 🙂 )
패턴의 주 아이디어는 Upgrade시 일반적으로 사용되는 두가지 기법(Push 방식 과 Polling 방식)을 혼합하여 장점은 살리고 단점은 제거한 패턴입니다.
Design Patterns의 GoF중 한 사람이자, Framework의 대가인 Ralph Johnson이 내한 합니다.
이번 방문과 함께, Korea Spirng User Group의 안영회님께서 수고해 주셔서 세미나를 여시네요.
비록 5만원의 유료 세미나지만, Ralph Johnson과의 점심 시간도 가질 수 있고, 세미나 정보도 알차니, 참여하시면 매우 값진 것들을 얻으리라 믿습니다.
관심 있는 분은 꼭 참여하셔서 Ralph Johnson의 경험과 지식을 얻어가시길 바랍니다. 자세한 정보는 안영회님에게 요청해주세요!

여러분에게 좋은 소식을 하나 알려 드리겠습니다. 패턴 학회인 PLoP 2009 에 참여할 예정입니다.
그 이유는 … 바로… !! 제출한 논문이 통과되었기 때문입니다.
저에게 현재 초벌 번역이 끝난 상태인 Framework Design Guideline 2nd Edtion을 같이 번역하고 있는 진호, 상원, 제민 이가 많은 도움을 주었습니다. 사실 이책을 번역하고 나온 금액으로 워크샾에 참여할 생각이었지만, 다들 취업때문에 바빠서 번역 일정이 약간 미루어 졌습니다. 어쩔수 없이 자비로…
제 2회 아키텍트 Summit에 발표 자료입니다. 아키텍트에 ‘아’짜도 따라가지 못하는 저가, 우여 곡절 속에 수많은 쟁쟁한 분과 함게 발표를 맡게 되었습니다.
다른 쟁쟁한 아키텍트 분들에게 누가 되지 않았길 바라며, 발표를 준비했습니다. 주제는 패턴과 EA의 활용에 대해서 간략히 언급해 드렸습니다.

안녕하세요 🙂 일전에 약속한 대로 여러가지 패턴 이야기들을 가져 왔습니다!!
사실 이미 많은 분이 접하셨을 겁니다. 바로 마소 5월호에 저희 스터디 팀이 Cover Story를 기고했는데요 그 내용들입니다.
처음 기고를 하신 분들도 있고, 아닌 분도 있지만 모두에게 좋은 경험이 되었다고 생각이 듭니다. 저 역시 저희 커뮤니티 맴버들이 뭉쳐서 이런 좋은 글을 만들었다는 것이 매우 큰 기쁨으로 느껴집니다.
사실 커뮤니티를 운영하면서 가장 만족감을 느끼는 것은, 서로에게 성장할 수 있는 경험과 기회를 주고 나누는 것이죠. 그리고 같이 성장해 가는 것을 보고 느낄때 기쁨은 이루 말할수 없습니다.
이 것이 제가 생각하는 커뮤니티의 올바른 모습이며, 앞으로도 잘 유지될 수 있도록 노력하겠습니다. 🙂 그럼 이번에 저희 EVA 팀이 기고한 글들을 차례대로 간략히 소개하겠습니다.

어떤 전문직이든, 전문용어를 사용합니다. 그러므로 같은 전문직에 종사하는 사람들끼리 효율적으로 대화할수 있습니다.
법조인은 인신 보호 영장 (habeas corpus), 예비 심문 (voir dire), 배심원 (venire)에 관해 다른 사람에게 말합니다.
마찬가지로 목수는 맞댐이음 (butt joint), 겹 이음 (lap joint), 플럭스[1] 에 관해 다른 사람에게 말합니다.
그리고 소프트웨어 아키텍트는 ROA(Resource-Oriented Architecture), 2 Step Views[2], 레이어 슈퍼타입[3]에 관해 다른 사람에게 말합니다.
잠시만요! 뭘 이야기 할려는 거죠?
소프트웨어 아키텍트에게 전문용어의 사용은 필수적인 것입니다. 아키텍트가 사용하는 플랫폼에 상관없이, 전문용어는 다른 이들과 대화하는 효율적인 수단입니다.
의사소통(communication)의 이러한 수단들 중에 하나가 아키텍처와 디자인 패턴들입니다. 유능한 아키텍트가 되기 위해서는, 반드시 기본이 되는 아키텍처와 디자인 패턴들을 이해하고, 언제 사용되고,적용할지 알아야 합니다. 그리고 다른 아키텍트/ 개발자와 대화하기 위해 패턴을 사용할 수 있어야 합니다.
“패턴을 좀더 쉽게 학습하고 실제 프로젝트에 잘 적용할 방법이 없을까요?” 필자가 강의를 마치고 종종 듣는 질문이다. 부족하지만 필자가 공부한 패턴 지식들과 경험들을 합쳐, 독자 여러분에게 패턴을 학습, 활용하기 위한 시행착오를 조금이나마 줄일 수 있는 지름길을 안내하고자 한다.
손 영수 arload@live.com | 데브피아 Architecture 시삽과 Microsoft MVP로 활동 중이며, 데브피아 소프트웨어 공학 스터디인 Eva팀의 리더이다. 부족한 실력이지만 지식을 나눌 때는 누구보다 ‘부자’라는 자부심을 가지고 지식 나눔에 힘쓰고 있다. Pattern 전도사를 꿈꾸고 있으며, PLoP와 같은 Pattern 학회를 국내에 만들기 위해 힘 쏟고 있다.
요즘은 대학교 학부생의 교과 과정으로 들어갈 정도로 패턴은 많은 이들에게 알려져있다.. 하지만 필자 주위에는 패턴을 잘 활용하여, 성공적으로 프로젝트를 마무리 했다거나 좋은 결과를 보았다는 말보다는, 오히려 많은 불신들과 하소연을 들었다. 왜 이런 상황이 발생했을까? 이 글을 통해 독자들이 패턴에 오해를 풀고, 올바른 시선을 가지길 바라며 글을 적는다.
패턴을 대하기 이전에 마음가짐 – 유연성, 확장성
많은 분들과 패턴을 주제로 애기하다 보면, 패턴에 대한 잘못된 관점을 가진 분들을 종종 만난다. 패턴을 통해, 비약적인 성능 향상, 생산성이 증대 될거라 생각하는 분도 있고 심지어 Silver Bullet (은총알)로 생각하는 분도 있다. 물론 제한적인 도메인 안에서 성능, 생산성 향상을 가져 올 수 있는 패턴도 있지만, 패턴 자체의 목적은 유연성과 확장성에 초점을 맞추고 있다.
초창기 객체 지향(80년대)의 가장 중요시 여기는 패러다임은 “Reuse (재사용)” 이였다. 그래서 Component와 같은 이상적인 패러다임이 나오기도 했다. 마치 Lego와 같이 조립만 하면 만들어지는 Legoware를 꿈꾸어 오면서…
하지만 현재 소프트웨어는 어떠한가? 빈번하게 바뀌는 고객의 요구사항, 몇 명 이서 만들 수가 없을 정도로 거대해진 규모, 길어진 소프트웨어 생명주기를 가진 녀석들이 대부분이다. 그렇기 때문에 소프트웨어가 가져야 할 중요한 설계 방향이 재 사용성 보다는 쉽게 변화를 수용할 수 있는 유연성(Flexibility)과 확장성(Extensibility)이 대두되게 되었다. 만약 여러분이 유연성과 확장성에 초점을 맞춘 설계에 관심이 있다면, 패턴은 좋은 도구가 된다. 하지만, 최적화나 성능 개선이 목적이시라면 패턴보다는 알고리즘을 공부하는 것이 더 낫다.
그리고 패턴을 쉽사리 적용하지 못하는 여러 가지 장벽들이 곳곳에 존재한다. 패턴에 대한 불신들이다. 지면상의 제약으로 이 모든 내용을 언급하기가 한계가 있으니 예전에 필자가 마소 2007년 8월호에 기고한 “미워도 다시 보는 패턴 이야기”를 꼭 읽어보길 권한다. 패턴의 정의, 원칙, 참고할만한 설계구조도 설명하고 있다.
이번 제 1회 닷넷 커뮤니티 컨퍼런스에 발표한 TP 자료를 많은 분이 요청하셔서 부득이하게 공유합니다.
- 패턴의 정의
- 패턴에 대한 오해와 진실
- 패턴으로 가는 길
- 패턴 빌드 오더
- 패턴 + 생산성 두마리의 토끼 잡기
안녕하세요. 요즘 블로깅이 뜸하다고 몇분이 저에게 사적으로 말씀하시더라구요 🙂
이유는 나중에 말씀 드리도록 하고, 조만간 있을 세미나 2개에 대한 정보를 알려 드리고자 합니다.
1. 미워도 다시보는 패턴 이야기 (4월말에 있을 초대형 세미나에 한 섹션)

행사의 구체적인 정보를 말해 드릴수 없지만, 조만간 1000명이상을 위한 세미나가 4월말에 열릴 예정입니다.
추후 행사에 대한 자세한 내용을 Update하도록 하고, 제가 진행하는 세션 정보를 공유하고자 합니다.
패턴 이라는 것이 너무 GoF 패턴, 그리고 소프트웨어 설계 기술에만 치우쳐 한국 개발자에게 공유되어 지고 있는것 같습니다.
패턴에 대한 오해들과 프로세스나 실제 개발자 삶에 도움이 되는 패턴 이야기를 여러분들에게 전달하고자 합니다.
그리고 Code 보다 Model에서 생각하는 방법과 개발 생산성을 증대시키는 이야기들도 나눌 겁니다. 아마 이게 백미라고 생각이 드네요.
이미 대전에 한 중소기업에서 세미나를 진행했고, 피드백이 매우 괜찮았습니다. 4월 말 기대하셔도 좋습니다.
Pattern이라는 분야에서 GoF의 Design Patterns가 가지는 의미는 굳이 말을 하지 않아도 될듯 합니다.
몇몇 지식 계층들을 위한 학회에서나 애기되어지고 있는 Pattern들을 일반인들에게 알리는 신호탄 같은 존재이기 때문입니다.
예전 블로그에 올린 글이지만, 패턴을 공부하시거나 접하시는 분에게는 꼭 필요한 내용이라 재 포스팅 합니다.
이 포스트를 통해서 Design Pattern의 두번째 원칙에 대한 오해들을 여러분과 공유하고자 합니다.
문제가 되는 두번째 원칙을 보도록 하죠. 🙂
Favor Object Composition over Class Inheritance
이 말의 의미는 원문 그대로 해석을 한다면 클래스 상속보다는 객체 조합을 선호해라 라는 애기입니다. 대부분의 시중에 나와 있는 책들이 상속보다는 조합을 선호하는 것으로 의미를 파악하고 전달하고 있습니다.
물론 그 당시 CBD가 널리 유행했던 것도 한 몫했죠 🙂 과연 이말이 맞는걸까요?
6년 동안 다양한 패턴에책들을 본 경험을 들어 볼때, 상속이라는 것은 모든 패턴에 사용되고 있었습니다.
거기다 graybox 즉 whitebox(상속)과 blackbox(조합)을 함께 적용하는 것이 패턴계의 철학으로 굳혀져 있어서 과연 이말이 맞는지 많은 의구심을 가지게 되었습니다.