<C0DAB7E120C7D5BABB2E687770>



Similar documents
종사연구자료-이야기방 hwp

목 차 국회 1 월 중 제 개정 법령 대통령령 7 건 ( 제정 -, 개정 7, 폐지 -) 1. 댐건설 및 주변지역지원 등에 관한 법률 시행령 일부개정 1 2. 지방공무원 수당 등에 관한 규정 일부개정 1 3. 경력단절여성등의 경제활동 촉진법 시행령 일부개정 2 4. 대

인천광역시의회 의원 상해 등 보상금 지급에 관한 조례 일부개정조례안 의안 번호 179 제안연월일 : 제 안 자 :조례정비특별위원회위원장 제안이유 공무상재해인정기준 (총무처훈령 제153호)이 공무원연금법 시행규칙 (행정자치부령 제89호)으로 흡수 전면 개

기사스크랩 (160504).hwp

산림병해충 방제규정 4. 신문 방송의 보도내용 등 제6 조( 조사지역) 제5 조에 따른 발생조사는 다음 각 호의 지역으로 구분하여 조사한다. 1. 특정지역 : 명승지 유적지 관광지 공원 유원지 및 고속국도 일반국도 철로변 등 경관보호구역 2. 주요지역 : 병해충별 선단

김기중 - 방송통신심의위원회 인터넷 내용심의의 위헌 여부.hwp


주택시장 동향 1) 주택 매매 동향 2) 주택 전세 동향 3) 규모별 아파트 가격지수 동향 4) 권역별 아파트 매매 전세시장 동향 토지시장 동향 1) 지가변동률 2) 토지거래 동향 강남권 재건축아파트 시장동향 15 준공업지역 부동산시장 동향

래를 북한에서 영화의 주제곡으로 사용했다든지, 남한의 반체제세력이 애창한다 든지 등등 여타의 이유를 들어 그 가요의 기념곡 지정을 반대한다는 것은 더 이상 용인될 수 없는 반민주적인 행동이 될 것이다. 동시에 그 노래가 두 가지 필요조 건을 충족시키지 못함에도 불구하고

> 1. 법 제34조제1항제3호에 따른 노인전문병원 2. 국민건강보험법 제40조제1항의 규정에 의한 요양기관(약국을 제외한다) 3. 삭제< > 4. 의료급여법 제2조제2호의 규정에 의한 의료급여기관 제9조 (건강진단) 영 제20조제1항의 규

노인복지법 시행규칙

4) 이 이 6) 위 (가) 나는 소백산맥을 바라보다 문득 신라의 삼국 통 일을 못마땅해하던 당신의 말이 생각났습니다. 하나가 되는 것은 더 커지는 것이라는 당신의 말을 생각하면, 대동강 이북의 땅을 당나라에 내주기로 하고 이룩한 통 일은 더 작아진 것이라는 점에서,

과 위 가 오는 경우에는 앞말 받침을 대표음으로 바꾼 [다가페]와 [흐귀 에]가 올바른 발음이 [안자서], [할튼], [업쓰므로], [절믐] 풀이 자음으로 끝나는 말인 앉- 과 핥-, 없-, 젊- 에 각각 모음으로 시작하는 형식형태소인 -아서, -은, -으므로, -음


최우석.hwp

E1-정답및풀이(1~24)ok

<C1B6BCB1B4EBBCBCBDC3B1E2342DC3D6C1BE2E687770>

민주장정-노동운동(분권).indd

0429bodo.hwp

<C0CEBCE2BABB2D33C2F7BCF6C1A420B1B9BFAAC3D1BCAD203130B1C72E687770>

6±Ç¸ñÂ÷

교사용지도서_쓰기.hwp

cls46-06(심우영).hwp

時 習 說 ) 5), 원호설( 元 昊 說 ) 6) 등이 있다. 7) 이 가운데 임제설에 동의하는바, 상세한 논의는 황패강의 논의로 미루나 그의 논의에 논거로서 빠져 있는 부분을 보강하여 임제설에 대한 변증( 辨 證 )을 덧붙이고자 한다. 우선, 다음의 인용문을 보도록

< BDC3BAB8C1A4B1D4C6C75BC8A3BFDC D2E687770>

untitled

伐)이라고 하였는데, 라자(羅字)는 나자(那字)로 쓰기도 하고 야자(耶字)로 쓰기도 한다. 또 서벌(徐伐)이라고도 한다. 세속에서 경자(京字)를 새겨 서벌(徐伐)이라고 한다. 이 때문에 또 사라(斯羅)라고 하기도 하고, 또 사로(斯盧)라고 하기도 한다. 재위 기간은 6

177

제주어 교육자료(중등)-작업.hwp

<C3D6C1BE5FBBF5B1B9BEEEBBFDC8B0B0DCBFEFC8A C3D6C1BEBABB292E687770>

초등국어에서 관용표현 지도 방안 연구

¸é¸ñ¼Ò½ÄÁö 63È£_³»Áö ÃÖÁ¾

01Report_210-4.hwp

<C3D1BCB15FC0CCC8C45FBFECB8AE5FB1B3C0B0C0C75FB9E6C7E D352D32315FC5E4292E687770>



교육 과 학기 술부 고 시 제 호 초 중등교육법 제23조 제2항에 의거하여 초 중등학교 교육과정을 다음과 같이 고시합니다. 2011년 8월 9일 교육과학기술부장관 1. 초 중등학교 교육과정 총론은 별책 1 과 같습니다. 2. 초등학교 교육과정은 별책

시험지 출제 양식

우리나라의 전통문화에는 무엇이 있는지 알아봅시다. 우리나라의 전통문화를 체험합시다. 우리나라의 전통문화를 소중히 여기는 마음을 가집시다. 5. 우리 옷 한복의 특징 자료 3 참고 남자와 여자가 입는 한복의 종류 가 달랐다는 것을 알려 준다. 85쪽 문제 8, 9 자료

상품 전단지

::: 해당사항이 없을 경우 무 표시하시기 바랍니다. 검토항목 검 토 여 부 ( 표시) 시 민 : 유 ( ) 무 시 민 참 여 고 려 사 항 이 해 당 사 자 : 유 ( ) 무 전 문 가 : 유 ( ) 무 옴 브 즈 만 : 유 ( ) 무 법 령 규 정 : 교통 환경 재

2

DBPIA-NURIMEDIA

화이련(華以戀) hwp

ÆòÈ�´©¸® 94È£ ³»Áö_ÃÖÁ¾

歯1##01.PDF

<5BC1F8C7E0C1DF2D31B1C75D2DBCF6C1A4BABB2E687770>

120229(00)(1~3).indd

zb 2) 짜내어 목민관을 살찌운다. 그러니 백성이 과연 목민관을 위해 있는 것일까? 아니다. 그건 아니다. 목민관이 백성 을 위해 있는 것이다. 이정 - ( ᄀ ) - ( ᄂ ) - 국군 - 방백 - 황왕 (나) 옛날에야 백성이 있었을 뿐이지, 무슨 목민관이 있 었던

<C6EDC1FD20B0F8C1F7C0AFB0FCB4DCC3BC20BBE7B1D420B0B3BCB120BFF6C5A9BCF32E687770>

망되지만, 논란은 더욱 증폭될 것으로 전망된다. 일단 광주지역 민주화 운동 세력 은 5.18기념식을 국가기념일로 지정 받은 데 이어 이 노래까지 공식기념곡으로 만 들어 5.18을 장식하는 마지막 아우라로 활용한다는 계획이다. 걱정스러운 건 이런 움직임이 이른바 호남정서

Microsoft PowerPoint - Gof - What is Design Patterns - Gof Design Pattterns

<33C6E4C0CCC1F620C1A63139C8A320B8F1C2F72E687770>

2015년 2월 12일 사랑의 동삭교육 제 호 (2월) 년 2월 12일 사랑의 동삭교육 제 호 (2월) 6 겨울이 되면 1-4 박지예 겨울이 되면 난 참 좋아. 겨울이 되면 귀여운 눈사람도 만들고 겨울이 되면 신나는 눈싸움도 하고 겨울이

640..

수기-내지-최종

3) 지은이가 4) ᄀ에 5) 위 어져야 하는 것이야. 5 동원 : 항상 성실한 삶의 자세를 지녀야 해. 에는 민중의 소망과 언어가 담겨 있다고 생각하기 때문 입니다. 인간의 가장 위대한 가능성은 이처럼 과거를 뛰어넘고, 사회의 벽을 뛰어넘고, 드디어 자기를 뛰어넘 는

지 생각하고, 재료를 준비하고, 요리를 하고, 설거지를 하고. 이 작업을 3번 반복 하는 것만으로 하루가 다 간다. 그들이 제작진에게 투쟁하는 이유는 그들이 원하는 재료를 얻기 위해서다. 그 이상의 생각은 하고 싶어도 할 겨를이 없다. 이 땅은 헬조선이 아니다. 일단

<312E B3E2B5B520BBE7C8B8BAB9C1F6B0FC20BFEEBFB5B0FCB7C320BEF7B9ABC3B3B8AE20BEC8B3BB28B0E1C0E7BABB292DC6EDC1FD2E687770>

< B5BFBEC6BDC3BEC6BBE E687770>

Â÷¼¼´ëÀüÀÚÁ¤ºÎ¼�ºñ½ºÀÌ¿ëÈ°¼ºÈ�

총서11. 프랜차이즈사업 국내외 성공사례

<3130BAB9BDC428BCF6C1A4292E687770>

11민락초신문4호


194

제1절 조선시대 이전의 교육

삼외구사( 三 畏 九 思 ) 1981년 12월 28일 마산 상덕법단 마산백양진도학생회 회장 김무성 외 29명이 서울 중앙총본부를 방문하였을 때 내려주신 곤수곡인 스승님의 법어 내용입니다. 과거 성인께서 말씀하시길 道 를 가지고 있는 사람과 어울려야만 道 를 배울 수 있

사진 24 _ 종루지 전경(서북에서) 사진 25 _ 종루지 남측기단(동에서) 사진 26 _ 종루지 북측기단(서에서) 사진 27 _ 종루지 1차 건물지 초석 적심석 사진 28 _ 종루지 중심 방형적심 유 사진 29 _ 종루지 동측 계단석 <경루지> 위 치 탑지의 남북중심

새만금세미나-1101-이양재.hwp

??

652

歯 조선일보.PDF

<33B1C7C3D6C1BEBABB28BCF6C1A42D E687770>

<C1DFB1DE2842C7FC292E687770>

96부산연주문화\(김창욱\)

???? 1

untitled

참여연대 이슈리포트 제 호

정 답 과 해 설 1 (1) 존중하고 배려하는 언어생활 주요 지문 한 번 더 본문 10~12쪽 [예시 답] 상대에게 상처를 주고 한 사 람의 삶을 파괴할 수도 있으며, 사회 전체의 분위기를 해쳐 여러 가지 사회 문제를 발생시킬 수 있다. 04 5

2005년 6월 고1 전국연합학력평가

< FBEC8B3BBB9AE2E6169>

<34B1C720C0CEB1C7C4A7C7D828C3D6C1BEC6EDC1FD D28BCF6C1A4292E687770>

160215

참고 금융분야 개인정보보호 가이드라인 1. 개인정보보호 관계 법령 개인정보 보호법 시행령 신용정보의 이용 및 보호에 관한 법률 시행령 금융실명거래 및 비밀보장에 관한 법률 시행령 전자금융거래법 시행령 은행법 시행령 보험업법 시행령 자동차손해배상 보장법 시행령 자본시장과

hwp

<38BFF920BFF8B0ED2DC8F1BFB5BEF6B8B620C6EDC1FDBABB2E687770>

#2015_100수학중2-1기말_정답.pdf

580 인물 강순( 康 純 1390(공양왕 2) 1468(예종 즉위년 ) 조선 초기의 명장.본관은 신천( 信 川 ).자는 태초( 太 初 ).시호는 장민( 莊 愍 ).보령현 지내리( 保 寧 縣 池 內 里,지금의 보령시 주포면 보령리)에서 출생하였다.아버지는 통훈대부 판무

VISION2009사업계획(v5.0)-3월5일 토론용 초안.hwp

<C1DFB0B3BBE7B9FD3128B9FDB7C92C20B0B3C1A4B9DDBFB5292E687770>

중등2단계(최종)-PDF용.hwp

ad hwp

untitled

<C1D6BFE4BDC7C7D0C0DA5FC6EDC1FDBFCF28B4DCB5B5292E687770>

시편강설-경건회(2011년)-68편.hwp

정 관

3. 은하 1 우리 은하 위 : 나선형 옆 : 볼록한 원반형 태양은 은하핵으로부터 3만광년 떨어진 곳에 위치 2 은하의 분류 규칙적인 모양의 유무 타원은하, 나선은하와 타원은하 나선팔의 유무 타원은하와 나선 은하 막대 모양 구조의 유무 정상나선은하와 막대나선은하 4.

근대문화재분과 제4차 회의록(공개)

교육실습 소감문

Transcription:

제5회 SW공학 Technical 세미나 패턴 저자와 함께하는 패턴이야기

세부 프로그램 시 간 내 용 강사진 13:30 ~ 14:00 등 록 14:00 ~ 14:05 인사말 14:05 ~ 15:00 15:00 ~ 15:30 15:30 ~ 17:00 o 미워도 다시 보는 패턴이야기 - SW 설계의 패턴과 다양한 패턴의 주제 소개 - 패턴의 3박자와 패턴으로 가는 빌드 오더 소개 - 설계의 관점에서 생각하면서, 생산성을 획득하는 두 마 리 토끼를 잡는 방법 소개 o ICE BREAKING - 본격적인 패턴 포커에 앞서 서로의 경계심을 깨고 서로 를 알아가는 시간을 갖음 - 어른들에게 깊은 교훈을 주는 20세기 이솝이라 불리는 레오 니오니의 동화책 공유 o 패턴 포커 - 단기간에 패턴을 재미있게 익히는 방법 - 어렵고 골치 아픈 패턴을 쉽게 익히기 위한, Joshua Kerievsky가 창안한 패턴 포커 소개 - 스토리 텔링 기반의 패턴 포커 손영수 선임연구원 (삼성전자 DMC 연구소, 패턴저자, EvaCast 리더) 김현종 전임연구원 (Teruten 기술연구소, EvaCast 멤버) 김영현 선임연구원 (삼성전자 VD 사업부, EvaCast 멤버)

ĊONTENTS 1 미워도 다시 보는 패턴 이야기 1 2 JAWS(A Framework for High-Performance Web Servers) 47 3 디자인 패턴 정리 91 4 패턴 포커- 포커 한판 치실래요 105 5 패턴 포커 113

제5회 SW공학 Technical 세미나 패턴 저자와 함께하는 패턴이야기 1 미워도 다시 보는 패턴이야기

- 3 -

- 4 -

- 5 -

- 6 -

- 7 -

- 8 -

- 9 -

- 10 -

- 11 -

- 12 -

- 13 -

- 14 -

- 15 -

- 16 -

- 17 -

- 18 -

- 19 -

- 20 -

- 21 -

- 22 -

- 23 -

- 24 -

- 25 -

- 26 -

- 27 -

- 28 -

- 29 -

- 30 -

- 31 -

- 32 -

- 33 -

- 34 -

- 35 -

- 36 -

- 37 -

- 38 -

- 39 -

- 40 -

- 41 -

- 42 -

- 43 -

- 44 -

- 45 -

- 46 -

제5회 SW공학 Technical 세미나 패턴 저자와 함께하는 패턴이야기 2 JAWS (A Framework for High-Performance Web Servers)

- 49 -

- 50 -

- 51 -

- 52 -

- 53 -

- 54 -

- 55 -

- 56 -

- 57 -

- 58 -

- 59 -

- 60 -

- 61 -

- 62 -

- 63 -

- 64 -

- 65 -

- 66 -

- 67 -

- 68 -

- 69 -

- 70 -

- 71 -

- 72 -

- 73 -

- 74 -

- 75 -

- 76 -

- 77 -

- 78 -

- 79 -

- 80 -

- 81 -

- 82 -

- 83 -

- 84 -

- 85 -

- 86 -

- 87 -

- 88 -

- 89 -

제5회 SW공학 Technical 세미나 패턴 저자와 함께하는 패턴이야기 3 디자인 패턴 정리

디자인 패턴 정리 1. Strategy Pattern 정의 알고리즘 군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만듭니다. Strategy를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있 습니다. 2. Observer Pattern 정의 한 Object의 상태가 바뀌면 그 Object에 의존하는 다른 Object들한테 연락이 가고 자동으 로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다 3. Decorator Pattern 정의 Object의 추가적인 요건을 동적으로 추가하는 패턴으로 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공합니다. 4. Factory Pattern 정의 - 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만들 클래스의 결정은 서브클래 스쪽에서 내립니다. 이 패턴에서는 클래스의 인스턴스를 만드는 시점을 서브클래스로 미룹니다. 5. Abstract Factory Pattern 정의 - 구체적인 클래스를 지정하지 않고 관련성을 갖는 객체들의 집합을 생성하거나 서로 독립 적인 객체들의 집합을 생성할 수 있는 인터페이스를 제공합니다. 6. Adapter Pattern 정의 - 클래스의 인터페이스를 유저가 기대하는 다른 인터페이스로 변환합니다. 호환성이 없는 인 터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해 줍니다. 7. Singletone Pattern 정의 - 한 클래스의 인스턴스는 단일함을 보장하며, 이 인스턴스에 접근할 수 있는 전역적인 접근 을 제공합니다. 8. Bridge Pattern 정의 - 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게 합니다. 9. Façade Pattern 정의 - 서브시스템에 있는 인터페이스 집합에 대해서 하나의 통합된 인터페이스를 제공합니다. 서 브시스템을 훨씬 사용하기 편하게 만드는 상위 수준의 인터페이스를 정의합니다. - 93 -

10. Builder Patter 정의 - 복합객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결 과를 만들 수 있게 합니다. 11. Template Method Pattern 정의 - 객체의 연산에는 알고리즘의 틀만을 정의하고 각 단계에서 수행할 구체적 처리는 서브 클 래스 쪽으로 미룹니다. 알고리즘의 구조자체는 그대로 두고 알고리즘 각 단계의 처리를 서브클래 스에서 재정의 할 수 있게 합니다. 12. Iterator Pattern 정의 - 내부 구조를 노출하지 않고 한 객체 집합에 속한 원소들을 순차적으로 접근할 수 있는 방 법을 제공합니다. 13. State Pattern 정의 - 객체의 내부 상태에 따라 스스로 행동을 변경할 수 있게끔 허가합니다. 이렇게 하면 객체 는 마치 자신의 클래스를 바꾸는 것처럼 보입니다. 14. Prototype Pattern 정의 - 생성할 객체의 종류를 명시하고, 그 원형을 복사함으로써 새로운 객체를 생성합니다. 15. Visitor Pattern 정의 - 객체 구조를 이루는 요소에 대해 수행할 연산을 정의하는 객체입니다. 연산을 적용할 요소 의 클래스를 변경하지 않고도 새로운 연산을 정의 할 수 있게 합니다. 16. Proxy Pattern 정의 - 어떤 객체가 수행하는 기능을 그대로 수행하면서, 부가적인 기능을 수행하거나 기존 역할을 대행하기 위해 새 클래스를 정의하고, 새로 정의된 클래스를 통해서 외부와 통신합니다. 17. Memento Pattern 정의 - 캡슐화를 위배하지 않은 채 어떤 객체의 내부 상태를 얻어내고 실체화시켜, 해당객체가 그 상태로 다시 되돌아올 수 있도록 합니다. 18. Mediator Pattern 정의 클래스간 대화나 연동 동작을 위한 중재 클래스를 별도로 정의하고 그 클래스의 객체를 활용해서 간접적으로 클래스간 대화나 연동 동작이 일어나게 만듭니다. 19. Flyweight Pattern 정의 - 크기가 작은 객체들을 효과적으로 사용할 수 있는 방법으로 객체를 공유합니다. - 94 -

20. Interpreter 정의 - 비교적 간단한 문법에 대해 문법 자체를 클래스로 정의해서 문법 검사와 함께 필요한 기 능도 별도의 자료구조 없이 효율적으로 수행할 수 있게 만들어주는 클래스 설계입니다. 21. Command Pattern 정의 - 요청을 객체의 형태로 캡슐화하여, 서로 요청이 다른 사용자의 매개변수화, 요청 저장 또 는 로깅, 그리고 연산의 취소를 지원하게 합니다. 22. Chain of responsibility Pattern 정의 - 요청을 처리할 수 있는 기회를 하나 이상의 객체에게 부여함으로써 요청하는 객체와 처리하는 객체 사이의 결합도를 없애려는 것입니다. 요청을 해결할 객체를 만날 때까지 객체 고리를 따라서 요청을 전달합니다. 23. Composite Pattern 정의 - 객체들의 관계를 트리구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단 일 객체와 복합객체 모두 동일하게 다루도록 합니다. - 95 -

패턴의 보고, PLoP 관람기 거장들을 통해 실감하는 패턴의 가치 이른바 패턴(Pattern)이 탄생되고 다듬어지는 곳. 지난 8월 필자 일행은 PLoP(Program Languages of Program Design)에 패턴 저자로 참여해 소프트웨어의 많은 거장들을 만나고 돌아왔다. 다른 컨 퍼런스에서 쉽게 느끼기 힘든 PLoP만의 독특한 문화를 체험한 그 생생한 경험담을 함께 나누고 자 한다. 지금부터 PLoP의 세계로 함께 들어가 보자. PLoP이 시작하기 전에 Pre Conference 행사로 BootCamp가 매년 열린다. BootCamp는 패턴을 올 바로 이해하고, 패턴을 만드는 방법을 전수하기 위한 목적을 가진 행사로, <사진 1>처럼 패턴을 만들어 보고 서로간의 의견을 주고받으면서 점진적으로 패턴을 완성해 나가는 과정을 거쳤다. <사진 1> BootCamp 행사에서 만든 패턴의 흔적들 패턴의 가치를 다시 알게 한 BootCamp 이번 BootCamp의 주제는 자전거 경주에서 승자가 되는 패턴이었는데. 매우 신선하고 흥미로웠다. 패턴을 잘 만들기 위한 가이드라인을 알고 있었던 것이지만, 직접 누군가와 같이 얘기하면서 패 턴을 만들어 나간다는 게 흥미로웠으며, 좋은 경험이 되었다. 여기서 BootCamp 행사 도중 깨달은 몇 가지 사항을 나누려 한다. 필자는 BootCamp가 PLoP의 정신을 이해하는 행사였다고 생각한다. 패턴에 대한 새로운 시선 남이 만든 패턴을 배우는 입장이 아닌, 직접 패턴을 만든다는 것은 흥미로운 경험이었다. 패턴을 만들 때 특별히 중요하게 고려해야 하는 것을 Context라고 강조했는데, 나를 비롯한 많은 이들이 - 96 -

Solution에만 초점을 맞추는 결과 위주의 학습을 하고 있다. 패턴의 결과로 나온 A라는 객체/클래 스를 보고 이게 Proxy인지 Decorator인지를 고민하는 것보다는 Context에 좀 더 집중해서 작성해 야 된다는 것이다. 예를 들어 Target User, 제약 사항들, 선행 조건들과 같은 부분을 신경 써서 기술하게 되면, 결국 요구사항들을 세밀히 기술하게 된다. 패턴을 학습하는 사람에게 좀 더 언제 패턴을 사용해야 될 지 명확한 가이드라인을 제공하게 되면, 패턴 저자에게는 Problem과 Solution을 좀 더 쉽게 쓸 수 있다는 것이다. 여러분이 지금 패턴을 공부한다면 Context와 Problem을 주의 깊게 볼 것을 권 장한다. PLoP에서 가장 중요한 것은 다른 사람의 말에 경청하기 대부분의 컨퍼런스는 논문 저자가 말을 하고, 자기의 주장을 내세운다. 하지만 PLoP은 정 반대이 다. 저자는 심지어 어느 순간까지는 발언권도 없이 벽 위의 파리 가 되어 단순히 듣기만 해야 한 다. 다른 사람이 나의(저자) 의도대로 패턴을 올바르게 이해하고 있는지, 저자가 만든 패턴에서 부 족한 것이 무엇인지 듣게 됨으로써 컨퍼런스가 끝나면 오히려 더 완성된 패턴이 나오게 된다. 다 른 컨퍼런스와 같이 한 명이 앞에 서서 자신의 의견을 피력하는 방식과는 전혀 다르다. 어떤 사람이 자전거 경주에서 이기는 패턴 에 대한 것 중 Solution 부분이 이상하다며 반박을 했 는데, 행사를 진행한 Linda 씨는 이렇게 말했다. "우리는 완벽한 패턴을 보고 있는 것이 아니라, 완벽한 패턴을 만들기 위한 과정에 있다." 이 말에서 이번 행사에서 중요시 여기는 관점이 즉 서 로 대화를 나누면서 점진적으로 완성도 있는 패턴을 만들어 나가는 그런 과정이고, 이것이 곧 PLoP의 정신이 아닐까라고 생각된다. <사진 2> BootCamp 행사의 강사인 Linda, Robert와 함께 <사진 2>에서 오른 쪽 두 번째에 서 있는 사람이 우리의 논문 인도자인 Robert Hanmer(Bob)이 - 97 -

다. 필자는 Fault Tolerant 패턴 책을 가지고 가서 사인도 한 장 받아냈다. 그리고 맨 가운데 있 는 여성은 Linda Rising으로 조직과 사람들에게 변화를 전파하는 패턴의 대가이다. 모든 것을 개선하는 저자 워크샵 저자 워크샵 방법 PLoP 첫 번째 날은 매우 신나는 하루였다. 말로만 듣던 저자 워크샵(Writer's Workshop)을 직접 체험한 날이었는데, 첫 번째 워크샵은 참가자의 역할로, 두 번째 워크샵은 저자의 역할로 참여하 였다. 행사가 시작하기 이전에, PLoP의 대표자들이 모여 저자 워크샵이 어떻게 진행하는지 설명하 는 데모 사진을 찍어보았다. <사진 3> 저자 워크샵 소개 PLoP에서 참가자는 크게 세 부분으로 나뉜다. 저자, 참가자, 그리고 행사를 진행하며 조정하는 조 정자이다. 1. 먼저 조정자는 패턴과 저자를 소개한다. 2. 그리고 논문을 작성한 저자는 자리에서 일어서서 자신이 작성한 내용의 핵심 부분을 전달한다. 원칙적으로 저자는 발표된 논문 중 일부를 읽는 것을 권하지만, 내용을 정리해서 1분 내의 시간 동안 소개해도 별 상관은 없다. 중요한 것은 모든 사람이 이해할 수 있게 잘 정리하는 것 아닐까? 3. 이제 이렇게 얘기하면 저자는 벽 위의 파리(fly on the wall) 가 되어 버린다. 아무런 발언권도 없이 듣기만 하는 상황에 빠지는 것이다. 이후 참가자 역시 저자의 이름(예 : 영수)을 말해서도 안 되며 그와 눈을 마주쳐도 안 된다. 그냥 없는 사람처럼 저자(author) 라고만 부르게 된다. 4. 그 다음 참가자끼리 패턴의 내용을 요약해서 서로 공유한다. 저자는 참가자가 요약한 내용을 들으면서 참가자들이 제대로 논문을 이해하고 있는지 생각하게 된다. - 98 -

5. 그 다음 긍정적인 측면을 논의한다. 논문의 다음 버전에서도 남아 있으면 하는 내용과 특별히 참가자의 입장에서 눈에 띄는 점을 이야기한다. 먼저 논문의 장점을 애기하면서 화기애애한 분위 기를 만들어낸다. 6. 개선을 하기 위한 제안을 한다. 여기서 중요한 것은 발표된 패턴을 비난하는 것이 아니라, 정 말 완성도 높은 패턴을 만들기 위한 활동으로 이해해야 한다는 것이다. 패턴의 내용이 틀렸다고 얘기하는 것보다 이러한 부분이 개선되면 정말 좋겠다는 과정의 중요성을 공유하는 것이 중요하 다. 7. 저자를 환영하며 회의에 참석시키며, 저자와 질문/답변을 나눔으로써 발표된 패턴에 궁금했던 부분을 서로 해소하는 시간이다. 중요한 것은 이것이 패턴을 설명하거나, 서로 Debate하는 기회 가 되서는 안 된다는 것이다. 똑같은 말을 하더라도 상대방을 존중하며 말하는 태도가 중요하다 는 것이다. 장점을 말하고 나서 당신이 만든 패턴이 정말 좋은데, 이런 것도 개선하면 더 좋아질 것이다 라고 말하는 거랑 단순히 비난하는 것은 큰 차이다. 또한 PLoP에서는 이러한 긍정적인 에 너지를 매우 중요하게 생각한다. 행사 전에 진행했던 게임들로 인해 협동심을 키운 상태라서 이 럴 일은 없겠지만. 8. 워크샵을 할 기회를 준 저자에게 모두가 자리에서 일어나서 박수를 치며 감사의 뜻을 표현한 다. 그리고 참가자는 참가자의 피드백을 적은 논문이나 정리한 자료를 전달함으로써 저자 워크샵 이 마무리된다. 이렇게 함으로써 서로 방어와 비난으로 치닫는 토론 방식을 막을 수 있으며, 저자 입장에서는 정말 다양한 관점으로 논문을 바로 볼 수 있게 된다. 저자 워크샵에 참여한 느낌 <사진 4> 벽 위의 파리(fly on the wall) - 99 -

우리 그룹의 좌장은 GoF의 한 명인 Ralph Johnson이었는데, 그가 조정자(Moderator) 역할도 겸했 다. 그는 BootCamp 때 진행을 맡았던 Linda와는 약간 다른 방식을 취했다. Linda 같은 경우는 끊 임없이 서로의 의견을 주고받으며 적절히 시간 조절을 잘 해주었는데, Ralph Johnson 박사는 토 론을 좋아하는 사람이라 거기에 깊게 뛰어든 나머지, 조정자의 중요한 역할 중 하나인 시간 배분 을 잘못해서 우리 패턴 뒷부분을 다루지 못하게 되고 말았다. 이 점은 상당히 아쉬웠다. 사실 저자 워크샵에 참석하기 전에 패턴을 정독해서 읽어가야 하지만, 몇몇 참가자들이 패턴을 읽지 않고 왔다. 그래서 Implementation 이후에 다루는 얘기들을 앞에서 많이 토론하는 경향이 나타나곤 했다. 그러므로 저자 워크샵을 참석하는 참가자들은 꼭 논문을 사전에 정독하길 권한다 (그래도 많은 피드백을 받았기 때문에, 이 부분도 수정하고 필자의 스터디 그룹과 함께 MiniPLoP 형태로 진행해 남은 부분을 보완할 생각이다). 일단 저자의 입장, 즉 파리가 되었을 때의 느낌은 좀 신선했다. 저의 논문을 그들이 읽어보고 잘 이해하고 있는지 제 3자(관찰자)의 입장에서 볼 수 있었다는 것이 신선했다. 저자 워크샵의 가장 큰 장점은 다양한 관점으로 자신의 패턴을 볼 수 있다는 것이다. 해당 도메인에 지식이 있는 이 와 없는 이들이 모여 얘기하다 보니 일반적인 시선과 깊이 있는 부분을 같이 다루게 되어 기뻤다. 전혀 예상하지 못한 부분에서 질문이 오가는 것도 보았으며, 논문을 잘못 이해해서 나온 얘기들 을 토론하면서 올바른 방향으로 잡아가는 모습도 보았다. Sam이라는 참석자가 Home Network Prototype 시스템을 만들어 본 적이 있어서 많은 것을 대변해 주었다. 이중 가장 큰 게 바로 문화의 차이였다. Upgrade 관련 패턴의 실례로 아파트 업그레이드를 예로 들었는데 미국, 유럽권 친구들은 좀 의아해 했다. 실제 미국에서는 아파트가 '임대용 쪽방'을 의미 하는 거라서, 여기에 굳이 홈 네트워킹 디바이스가 들어가야 되는지 얘기를 주고받곤 했다. 어떠 한 실례를 들 때, 서구권 문화에 맞게 수정하거나 일반적인 사례를 들어야겠다는 생각이 들었다. 그리고 정말 신나는 경험은 패턴에 대한 새로운 추가 사항들이었었다. 우리는 이 패턴을 이용해 서 확장할 수 있는 패턴에 대한 피드백을 받았다. 같은 논문 그룹에 속한 Paul이 Upgrade 패턴이 지금까지 존재하지 않았기 때문에 좀 더 체계화시키면, 엄청난 효과가 있을 것이라고 말해주었고, 시간을 상대적으로 배분하는 것 외에도 Ticket이라는 개념으로 만들어 여러 가지 정보를 추가하면 업그레이드 이상의 역할을 할 수 있는 모델을 제시해 주기도 했다(이 부분은 내년에 패턴 아이디 어로 써야 할지도 모르므로 일단은 비밀로 한다). 그 외에도 Eduardo 교수는 잘못된 영어 표현까지 하나하나 잡아주면서 다시 피드백을 주었다. 그 래서 우리는 감사의 뜻으로 그에게 장수를 기원하는 의미에서 십장생에서 학이 그려진 책갈피를 전달했다. 그리고 일정을 마치고 저자에게 감사를 표현하는 박수는 느낌이 좀 독특했다. 마침내 긴 터널을 빠져 나온 듯한 기분이었다. 여러분도 저자로서 이런 느낌을 한번 공유해 보는 것은 어떨까? - 100 -

PLoP 행사의 Feedback을 받는 법 이번 PLoP에서 인상적인 장면 하나를 꼽는다면, 실시간으로 행사에 대한 피드백을 주고받았다는 것이다. 대부분의 행사는 종료 후 A4로 된 양식을 통해 불만사항을 적도록 한다. 그리고 조금 더 진보한 상황은 이렇게 포스트잇을 붙여 자유롭게 그 의견을 말하게 해주는 것이다. 몇몇 행사가 이런 형태를 취하고 있더라도, 바로 바로 그 피드백을 받고 대응하지는 않는다. 물론 그렇게 하는 사람이 있다면, 그는 정말 멋있는 방법을 사용하고 있는 셈이다. <사진 5> 피드백을 받는 방법 PLoP에서는 불만 사항들을 가능한 빠르게 수정하도록 노력했으며, 수정하지 못하는 상황에서는 이유를 충분히 설명해 주었다. 작은 3시간 짜리 세미나라면 적용하기 어렵겠지만, 1~2일을 통째 로 쓰는 워크샵이라면 충분히 의견을 주고받는 데 도움이 될 것 같다. 그때그때 피드백을 바로 받을 수 있기 때문이다. - 101 -

PLoP 행사의 백미, Games PLoP에서는 행사 중간 중간에 게임을 한다. 그런데 이 게임에는 아주 미묘한 장치들이 숨어 있다. 보통 우리는 상대방을 이기기 위한 게임을 진행한다. 그런데 PLoP에서 진행하는 게임들은 하나같 이 이기기 위한 게임이 아니라, 협동력을 강화시키는 데 목적을 두고 구성되어 있다. 예를 들면 중간에 누군가의 도움을 받을 수밖에 없는 상황들을 미묘하게 숨겨 놓았다. 기억력의 한계에 도전하는 게임들, 예를 들어 많은 사람들이 원을 이뤄 자신의 이름과 행위를 말 한다. 먼저 Linda가 "Linda는 피리를 연주해"라면서 피리를 부는 시늉을 하면, 난 Linda의 행동을 똑같이 따라하고 나서 내 자신의 행위를 말한다. "영수는 애기를 돌봐"하면서 흔들흔들 시늉을 하 며 다음 사람은 Linda와 필자(영수)의 Action을 모두 취한 후에 또 자신만의 액션을 취한다. 이렇 게 계속해서 원을 돌게 된다. 뭐 3명이면 문제가 없겠지만 7~8명이라면 기억력의 한계로 인해 금 세 가물가물해진다. 저 사람의 이름이 뭐였지, 무슨 행동을 취했지 라고 고민하며 당황할 때, 주 위에서 수군거리면서 힌트가 될 만한 제스처를 취해준다. <사진 6> PLoP의 협력 게임 1-102 -

<사진 8> PLoP의 협력게임 3 <사진 9> PLoP의 협력게임 4 결국 패자가 없는 게임, 즉 서로 도와주면서 잘했다고 칭찬하는 게임 몇 가지를 통해 아 이 사람 들은 날 도와주는 사람이구나 라고 생각하게 된다. 이런 게임을 하고 나서 저자 워크샵을 하면 어 떨까? 저자의 입장에서는 어떠한 피드백도 비난이 아니라 진심 어린 충고와 염려로 들릴 것이다. 이런 과정을 통해 서로 경쟁하면서 발전하는 것도 중요하겠지만, 반대로 서로 도와가면서 부족함 을 채우는 것도 값지다는 것을 알게 되었다. 게임에 대한 자세한 정보는 지면 제약으로 인해 http://arload.wordpress.com/2009/09/04/plop-games/에서 다루었으니 관심 있는 분은 참고하길 바란다. - 103 -

거장들과의 만남 행사 진행 간 틈틈이 이뤄진 세미나에서는 이른바 거장 들과의 만남이 이어졌다. Dave West, Alistair Cockburn, Joe Yoder와 같은 명사들을 만날 수 있었으며, 그 외에도 Rebecca Wirfs-Brock, Ralph Johnson과 같은 각 분야의 대가들을 통해 여러 가지 좋은 조언들을 들을 수 있었다. 이런 대가들과 조촐한 자리를 마련해 얘기를 나눌 수 있다는 것은 다른 컨퍼런스와 비교할 수 없는 PLoP의 가장 큰 매력이다. 지면 제약으로 다하지 못한 얘기들은 참가자 블로그인 http://www.arload.net과 http://funkcode.tistory.com/을 통해 계속해 나갈 예정이다. 그리고 개인적인 문제로 PLoP 학회에 참여하진 못했지만 논문에 많은 도움을 준 장진호, 전제민 군에게 감사의 마음을 전하며 글을 마 친다. - 104 -

제5회 SW공학 Technical 세미나 패턴 저자와 함께하는 패턴이야기 4 패턴 포커-포커 한판 치실래요

패턴 포커 포커 한판 치실래요! 학습 곡선을 줄이며, 단기간에 쉽게 새로운 바로 놀이라고 생각합니다. 것들을 받아 들일 수 있을까? 그것에 대한 대답은 정말 놀이와 학습이라는 두 가지 토끼를 잡은 좋은 게임이었습니다. Pattern Poker (패턴 포커)라는 이름이 다들 생소하시리라 봅니다. AsianPLoPP 에서 만난 Refactoring to Pattern 의 저자인 Joshua Kerievsky 가 창안 한 방법이며, 구입할 방도가 없어서 제가 직접 만들었습니다. 게임의 룰을 간단히 말씀 드리겠습니다. 패턴 포커 방법 1. 먼저 각 팀당 3 장의 카드를 나눠 같습니다. 1 팀당 2 명으로 하며, 1 개의 카드를 버릴 수도 있습니다. 이것은 잘 모르는 패턴이거나, 또는 서로 연관성을 찾기 힘든 패턴을 빼 버리시면 됩니다. 또한 다른 카드와 교환을 하셔도 되구요. 룰은 그야 말로 유동적입니다. 그리고 인원수나 정책은 얼마나 유동적입니다. 중요한 것은 소외 당하는 분이 없도록 적절히 팀을 구성하는 것이 중요하겠죠. 2. 자 그럼 두개의 카드를 가지고 팀원들끼리 서로 머리를 맞대어 두 개의 패턴을 조합한 재미난 StoryTelling 을 만들어 내는 겁니다. 시간은 많이 드린다고, 좋은 결과가 나오지는 않는거같습니다. 패턴에 익숙하신 분은 10 분 정도면 재미난 얘기를 만들어 낼 수 있습니다. 하지만 실제 초급자를 한 게임은, 디자인 패턴 책을 가지고 오픈 북으로 그 패턴을 익히고 습득할 수 있는 시간을 충분히 주어야 합니다. 30 분 정도, 그러면 충분히 패턴을 파악할 수 있죠. - 107 -

3. 자 그럼 만든 얘기들을 멋있게 발표를 합니다. 이때 만든 얘기 또한, 청중들을 정확히 파악해서 알아듣기 쉽게 말할 필요가 있습니다. 구체적인 시스템을 파고 들면 좋아하실 분도 있지만, 대충 개요만 알고 싶으신 분도 있죠. 또한 흥미진진한 소재들과 연결해서 발표하면, 더욱 기억에 남게 되겠죠. 4. 드디어 점수를 매깁니다. 발표하신 분은 누가 몇 점을 주었는지 모르게 하기 위해, 고개를 푹 숙이고 있는 상황이 발생했습니다. 그럼 나머지 사람들이 손으로 5 점부터 1 점을 줍니다. 그래서 총 합을 내는 거죠. (물론 주사위나 물건들을 활용해서 줄 수도 있습니다, 주사위가 6 점까지 가리킬 수 있으니, 점수의 차가 더 나겠죠) 병진님은 후하게 5 점을 주셨네요 :) - 108 -

5. 자 그리고 점수를 취합해 최고 팀에게 시상을 해주는 겁니다. 상품이 3000 원 밖에 되지 않았지만, 우승하신 영현님과 오현님은 3000원으로 로또를 사서 10 억으로 불려오겠다는 각오를 보여주셨습니다. 연락이 되지 않는걸 봐서는 설마 당첨 되신걸지도.. 모르겠네요 :) 게임을 경험한 느낌들 (회고들) 저희 EVA 식구들이 느낀 경험들을 여러분과 공유합니다. 다들 좋은 피드백만 주셔서, 어렵네요 :) 김 영현님 특히 영수님의 블로그에서만 보던 패턴 포커를 실제로 경험해 보아서 좋았습니다. 특히 스토리텔링을 통해 패턴을 연계시키는 과정이 어렵기는 했지만 패턴을 습득하는데 큰 도움이 될 것 같다는 생각을 했습니다. 지금은 GoF 패턴만 포함되어 있지만, 영수님이 말 씀하신 것 처럼 다른 패턴들도 포함해 패턴 포커 세션을 자주 가지면 좋을 것 같습니다.이 번 스터디때 저는 권오현님과 짝을 이루어 패턴 포커를 쳤습니다. 세장의 패턴 카드를 받았는데 그나마 친숙한 Proxy 패턴과 Facade 패턴을 남기고 Interpreter 패턴은 버렸습니다. 처음에는 어떻게 이 두 패턴을 연결시킬지 막막했지만, 권오현님과 의논을 하면서 살을 더해나가니 나름 괜찮은 스토리가 나왔던 것 같습니다. 천 우형님 패턴의 개념과 스토리텔링을 결합한 이 게임은 상당히 매력 있었어요. 여기에서 사용된 패턴은 GoF 의 패턴들을 이용했었잖아요. 이 패턴들을 공부할때는 꽤 어렵고, 딱딱한 부분이 많았었죠. 그렇지만, 이를 이용해서 이렇게 재밌게 사람들과 공유하면서 이야기를 만들어 즐길수 있다는게 신기하면서 재밌었어요.모두들 스타 크래프트나 카트라이더등 대중적인 게임하시죠? 마치.. 처음 - 109 -

게임을 배울땐 뭐가 먼지 몰라서 헤매지만, 방법만 알면 신나게 즐기듯이 이 패턴포커도 익숙해지면 좀 더 재미를 느낄수 있다 생각했어요. 또 이를 넘어서서 프로젝트에도 유연하게 적용시킬수 있겠다는 느낌이 들었어요. ^^! 김 현종님 실제 공부 할 때는 엄청 딱딱 하고 이해 하기 힘들었던 기억이 좀 있습니다. 패턴 포커를 하면서 패턴을 모르는 사람들도 싶게 다가갈 수 있는 계기가 될 듯 합니다 또 다른 게임으로 패턴 칵테일이 있습니다. 이름을 봐서는 술이라도 한잔해야 될 거 같은데요. 이름 맞추기 게임 (Name that Pattern) 이 게임은 패턴 포커를 뽑아서 보지 않고 자기 머리 위에 올려 놓습니다. 그리고 다른 사람에게 자신의 패턴이 뭔지 이것 저것 물어서 맞추어야 합니다. 상당히 쉬울거 같지만, 막상 당사자는 답답합니다. 무엇을 물어봐야 할지도 어렵고, 주위에 있는 사람이 실컷 설명해줘도, 찾기가 정말 어렵습니다. 이름 맞추기 게임 후기 천 우형 (카드를 머리에 들고 계신 당사자) 현실은 공유된 환각 이란 말 아시나요? 이 게임을 통해서 한번 더 느꼈어요. 너와 나, 모두 같은 개념을 알고, 뜻도 알고 있지만.. 가끔~ 같은 의견을 가지고 갈등이 있을 때도 있죠. 서로 다른 말을 하는 줄 알구요 ㅎㅎㅎ... 너무 쉬운 패턴인데도.. ( 카드를 알기전에 ) 남의 설명을 듣고서 저는 속으로 이렇게 말했어요. - 110 -

[ 그런 패턴도 있어? ] ㅎㅎㅎㅎㅎ 그러나, 카드를 맞춘 후, 확인하는 순간~ [ 아차! 맞구나! 내가 놓쳤던 부분이 있었구나! ]라는 생각이 스쳐갔어요. 그리고, 마지막으로 소통의 힘은 참 강하다는 걸 알게 되는 계기였어요. 내가 모르는 부분을 당신을 통해서 배웠으니까요 ^-^!! 김 현종 (힌트를 주는 분) 맞추 것두 힘들지만 아슬아슬 하게 힌트를 주는 것 또한 힘들 었는데.. GOF 를 좀 안다고 생각 했었지만 막상 접해 보니 모르는 게 더 많았던 거 같습니다. 다시 공부 해야 할까요.. 암튼 그랬습니다. 사실 이렇게 이름 맞추기 만으로도 굉장히 가치 있는 게임입니다. 다른 사람이 생각하고 있는 Adapter 패턴과 내가 생각하고 있는 Adapter 패턴이 이렇게 다르구나를 느끼게 해줍니다. 패턴 칵테일 게임 방법 사실 자리의 제약상황 때문에 Pattern Cocktail 을 진행하지 못했습니다.하지만 해볼만 한 게임이죠 :) 1. 참가자 모두가 보지 않은 체 카드를 머리에 붙입니다. 소외되는 인원이 없도록 8 명이 넘지 않게 그룹을 만드하는게 중요합니다. (나중의 사람들을 모아 서로간의 연관성을 그려야 되기 때문입니다. :) ) 2. 그리고 가벼운 다과와 함께 서로의 패턴에 대한 힌트를 주고, 자신의 패턴이 무엇인지 파악하게 됩니다. (여기 까지는 패턴 이름 맞추기 게임이죠). 하지만 절대 상대방에게 힌트만 줄 뿐이지, 당신이 뽑은 패턴이 Adatper 패턴이 맞다 라고 얘기를 해줘서는 안됩니다. 대략 자신이 파악하는 것 뿐이지요 - 111 -

3. 그럼 팀원들이 모여 Pattern Combination 을 만듭니다. 예를 들면 Factory 와 Singleton 또는 Factory Method 와 Template Method 를 뽑은 사람을 같이 세워 서로 간에 연관성을 파악할 수있게 일종의 체인을 만듭니다. 중이 제 머리를 못 깍는다는 거아시죠. 줄이나 사람을 세울 때, 다른 사람의 자신의 위치를 지정해 줘야 합니다. 물론 자신이 정확히 패턴을 알고 있다면, 그렇게 행동하겠지만 사실 쉬운 일이 아닙니다. 4. 그리고 나서 자신의 패턴을 보고 서로 간의 위치를 확인합니다. 그래서 패턴 간의 Combination 을 파악하게 되죠. 사실 EVA 스터디때 칵테일을 하려고 했지만, coffeeshop 이다 보니 다른 사람의 모든 집중을 받을 까 두려워 하지 못했습니다. 장소도 협소했구요 :) 6 월 19 일 비공식 행사에서 진행해볼 생각입니다. - 112 -

제5회 SW공학 Technical 세미나 패턴 저자와 함께하는 패턴이야기 5 패턴 포커

- 115 -

- 116 -

- 117 -

- 118 -

- 119 -

- 120 -

- 121 -