1. ë””ìž�ì�¸íŒ¨í„´ì�´ëž€? ¶
ë””ìž�ì�¸íŒ¨í„´ì—� 대한 설명ì�´ë�¼.. 다른 ê³³ì—�서 ì�´ë¯¸ 체계ì �ì�¸ 설명들ì�„ í•´ 놓아서 장황하게 설명하지 ì•ŠëŠ”ë‹¤ê³ í•œë‹¤ë©´, ë§� 그대로 '패턴'ì�´ ë�œ ë””ìž�ì�¸ë“¤ì�˜ 묶ì�Œìž…니다. (ë¬¼ë¡ ê·¸ë ‡ë‹¤ê³ íŒ¨í„´ì�´ ëª¨ë“ ë””ìž�ì�¸ ë¬¸ì œë¥¼ 해결해주는 silver bullet는 ì•„ë‹ˆì£ .) 처ì�Œ 프로그램ì�„ 설계를 í• ë•Œ ì°¸ì¡°í• ìˆ˜ 있는, ì–´ëŠ�ì •ë�„ ê³µì‹�í™” ë�œ ë””ìž�ì�¸ë“¤ì�„ ì�¼ì»«ìŠµë‹ˆë‹¤. 현재 ê±°ì�˜ Referenceí™” ë�œ 23ê°œì�˜ 패턴ì�´ ìžˆê³ ìš”. 계ì†� 새로운 패턴ì�´ 추가ë�˜ê³ 있는 것으로 ì•Œê³ ìžˆìŠµë‹ˆë‹¤.
2. ë””ìž�ì�¸íŒ¨í„´ì�„ 공부하는 ì�´ìœ ¶
ë””ìž�ì�¸ 패턴ì�„ ì �용함으로서 ì–»ì�„ 수 있는 장ì �으로는 '확장성'ê³¼ 'ìœ ì—°ì„±'ì�„ 들 수 있습니다. ê·¸ë¦¬ê³ ì´ˆê¸° 프로그램 설계시ì—� 지침서가 ë�˜ì–´ì£¼ì§€ìš”. OOP ì�˜ ê°œë…�ì�„ ì�µížˆê³ 나서 어떻게 OOP를 추구해나가야 í• ì§€ ê°�ì�„ 못잡는 사람ì�€ 공부해보는 것만으로ë�„ 좋ì�€ 경험ì�´ ë�œë‹¤ê³ ìƒ�ê°�합니다.
ê·¸ë¦¬ê³ í•œíŽ¸ìœ¼ë¡œëŠ” Refactoringì�„ 위한 방법ì�´ ë�©ë‹ˆë‹¤. Refactoringì�€ OnceAndOnlyOnce를 추구합니다. 즉, íŠ¹ì • 코드가 중복ì�´ ë�˜ëŠ” 것ì�„ 가급ì � ë°°ì œí•©ë‹ˆë‹¤. 그러한 ì �ì—�서 Refactoringì�„ 위해 DesignPatternì�„ ì �ìš©í• ìˆ˜ 있습니다. 하지만, Refactoring ì�˜ ê¶�ê·¹ì � 목표가 DesignPattern ì�€ 아닙니다.
ê·¸ë¦¬ê³ ë””ìž�ì�¸íŒ¨í„´ì�´ 하나ì�˜ 설계언어가 ë�˜ì§€ìš”. 'ì�´í�´ëž˜ìŠ¤ë¥¼ 어떻게 ì—°ê²°í•˜ê³ ì�´ 부분ì�€ 어떻게 êµ¬ì„±í•˜ê³ ...' 를 '~패턴으로 êµ¬í˜„í•˜ê³ ' ë�¼ëŠ” 한마디로 줄ì�¼ 수ë�„ ìžˆì£ . (단, ì�´ì •ë�„ê°€ ì§„í–‰ë�˜ë ¤ë©´ ê±°ì�˜ PM쯤ì�´ ì•„ë‹�까 하는..)
DesignPatterns ì�˜ WhatToExpectFromDesignPatterns 를 참조하는 것ë�„ ì¢‹ê² ë„¤ìš”.
ê·¸ë¦¬ê³ í•œíŽ¸ìœ¼ë¡œëŠ” Refactoringì�„ 위한 방법ì�´ ë�©ë‹ˆë‹¤. Refactoringì�€ OnceAndOnlyOnce를 추구합니다. 즉, íŠ¹ì • 코드가 중복ì�´ ë�˜ëŠ” 것ì�„ 가급ì � ë°°ì œí•©ë‹ˆë‹¤. 그러한 ì �ì—�서 Refactoringì�„ 위해 DesignPatternì�„ ì �ìš©í• ìˆ˜ 있습니다. 하지만, Refactoring ì�˜ ê¶�ê·¹ì � 목표가 DesignPattern ì�€ 아닙니다.
ê·¸ë¦¬ê³ ë””ìž�ì�¸íŒ¨í„´ì�´ 하나ì�˜ 설계언어가 ë�˜ì§€ìš”. 'ì�´í�´ëž˜ìŠ¤ë¥¼ 어떻게 ì—°ê²°í•˜ê³ ì�´ 부분ì�€ 어떻게 êµ¬ì„±í•˜ê³ ...' 를 '~패턴으로 êµ¬í˜„í•˜ê³ ' ë�¼ëŠ” 한마디로 줄ì�¼ 수ë�„ ìžˆì£ . (단, ì�´ì •ë�„ê°€ ì§„í–‰ë�˜ë ¤ë©´ ê±°ì�˜ PM쯤ì�´ ì•„ë‹�까 하는..)
DesignPatterns ì�˜ WhatToExpectFromDesignPatterns 를 참조하는 것ë�„ ì¢‹ê² ë„¤ìš”.
4. ë””ìž�ì�¸ 패턴 목ë¡� ¶
see PatternCatalog
5. ê´€ë ¨ 페ì�´ì§€ ¶
- KDPProject
- http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps - Design Patterns As Litmus Paper To Test The Strength Of Object Oriented Methods
- DeadLink









