[[PageList(^DesignPatterns/2011년스터디)]] * HolubOnPatterns를 함께 ì½ëŠ” 스터디. * 참가ìž: * [김준ì„], [김수경], [서지혜], [ìž„ìƒí˜„] * 코치: [변형진] * 매 주 í† ìš”ì¼ 2ì‹œì— ëª¨ìž…ë‹ˆë‹¤. == ì¶œì„ì²´í¬ == || || [김준ì„] || [김수경] || [서지혜] || [ìž„ìƒí˜„] || || 3/19 || O || O || O || X || || 3/27 || X || O || O || O || || 4/2 || O || O || O || O || || 4/10 || O || O || O || O || || 4/29 || O || O || O || O || || 5/6 || O || O || O || O || || 5/13 || O || O || O || O || == 3ì›” 19ì¼ == * DoWeHaveToStudyDesignPatterns? * HowToStudyDesignPatterns? * ì§„í–‰ ë°©ì‹ * ì±…ì„ ì½ìœ¼ë©° ["HolubOnPatterns/밑줄긋기" ë°‘ì¤„ì„ ê¸‹ìž] * DB 프로ì 트를 하ìž? == 3ì›” 27ì¼ == === 후기 === ==== 김수경 ==== 1. HolubOnPatterns 0ìž¥ì— ëŒ€í•´ 함께 ì´ì•¼ê¸°í–ˆë‹¤. 나 í˜¼ìž 0ìž¥ì„ ì•ˆ ì½ì–´ì™€ì„œ 민ë§í–ˆë‹¤. 1ìž¥ì€ ê¼ ì½ì–´ì™€ì•¼ì§€. 1. High Cohesion Low Couplingê³¼ SOLID(SRP, OCP, LSP, ISP, DIP)ì— ëŒ€í•´ 다시 ìƒê°í•´ë³´ëŠ” ì‹œê°„ì´ ë˜ì—ˆë‹¤. 1. SRP(Single Response Principle)ì— ëŒ€í•´ 얘기하면서 'ì±…ìž„'ì´ëž€ 무엇ì¸ê°€ì— 대한 ì´ì•¼ê¸°ê°€ 나왔다. 삽질 ê²½í—˜ì´ ì—†ëŠ” 사람ì—게 ê°ì²´ì§€í–¥ ì›ì¹™ì„ ì„¤ëª…í• ë•Œ 'ì±…ìž„'ì´ ë¬´ì—‡ì¸ì§€ 어떻게 ì´í•´ì‹œì¼œì•¼ í• ì§€ ëª¨ë¥´ê² ë‹¤. 오늘 얘기하면서 낸 ê²°ë¡ ë„ ê²½í—˜ì´ ì—†ìœ¼ë©´ ì´í•´í•˜ê¸° ì–´ë µë‹¤ëŠ” 것… 1. DIPì—서 ì˜ì¡´ê´€ê³„ ì—ì „ì´ ëŒ€ì²´ ë¬´ì—‡ì„ ì—ì „ì‹œí‚¨ë‹¤ëŠ” 것ì¸ì§€ 알게ë˜ì—ˆë‹¤. 기존ì—는 Highlevel ëª¨ë“ˆì´ Lowlevel ëª¨ë“ˆì— ì˜ì¡´í•˜ëŠ” ì‹ì´ì—ˆì§€ë§Œ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ 사용하여 Lowlevel ëª¨ë“ˆì´ Highlevelì´ ì œê³µí•˜ëŠ” ì¸í„°íŽ˜ì´ìŠ¤ì— ì˜ì¡´í•˜ê²Œ í•¨ìœ¼ë¡œì¨ ì„¤ê³„ë¥¼ ë” ìœ ì—°í•˜ê²Œ 만들 수 있다. 1. 여름방학때 1, 2학년들과 함께 OOP 스터디를 ì§„í–‰í•˜ê³ ì‹¶ë‹¤. ==== 서지혜 ==== 1. 0장 ì½ì–´ì˜¤ê³ 밑줄긋기(안함), ë‚´ìš©ì— ëŒ€í•´ ì´ì•¼ê¸° 나누기 1. ê°ì²´ì§€í–¥ì„ 왜 해야하는가? 근본ì 으로 소프트웨어가 변화하기 때문ì´ë‹¤. ê°ì²´ì§€í–¥ì€ ë³€í™”ì— ìž˜ 대ì‘í• ìˆ˜ 있는 설계 패턴ì´ë‹¤. 1. DIP 1. 처ìŒì—” 단순히 ì¸í„°íŽ˜ì´ìФ ëŒ€ì‹ ë„˜ê²¨ë°›ëŠ” 구체í´ëž˜ìŠ¤ë¥¼ ì¨ì•¼í•´ì„œì¸ 줄 ì•Œì•˜ëŠ”ë° ìƒìœ„ê¸°ìˆ ì´ í•˜ìœ„ê¸°ìˆ ì— ì˜ì¡´í•˜ëŠ” ê²ƒì´ ì•„ë‹Œ í•˜ìœ„ê¸°ìˆ ì´ ìƒìœ„ê¸°ìˆ ì„ ì§€ì›í•˜ê¸° 위해 만들어지는 것ì´ë¼ëŠ”ê²ƒì„ ì•Œê²Œë˜ì—ˆë‹¤. 1. ì˜ì¡´ê´€ê³„ ì—ì „ì´ë¼ 해서 ë‚¯ì„¤ì—ˆëŠ”ë° ì´ë ‡ê²Œ 설명하니 ìƒìœ„ê¸°ìˆ ì— í•˜ìœ„ê¸°ìˆ ì´ ë§žì¶”ëŠ”ê²Œ 당연한게 아닌가 하는 ìƒê°ì´ 들었다. 1. SRPì—서 책임나누기 - 변화를 ìƒìƒí•´ë³´ë¼.. 서비스가 변경ë 때 함께 ìˆ˜ì •ë˜ì–´ì•¼ í• ì½”ë“œë“¤ì„ ë¶„ë¦¬í•´ë¼! ê·¸ê²ƒì´ ë³€í™”ì˜ ì¶•ì´ë‹¤. - ë§Žì€ ìƒìƒê³¼ ì‚½ì§ˆì„ í•´ì•¼ê² ìŠµë‹ˆë‹¤. 1. ì¢‹ì€ ì„¤ê³„ëŠ” 천재 í”„ë¡œê·¸ëž˜ë¨¸ì— ì˜í•´ í•œë²ˆì— ë§Œë“¤ì–´ì§€ëŠ”ê²Œ ì•„ë‹ˆë¼ ê³ ë¯¼í•˜ëŠ” í”„ë¡œê·¸ëž˜ë¨¸ì— ì˜í•´ ì§€ì†ì 으로 만들어 지는 것 ì´ë‹¤. 용기를 주는 ë§ìž…니다. 1. ì´ ìžë¦¬ì— ì´ íŒ¨í„´ì„ ì ìš©í•´ì•¼í• ì´ìœ 를 대ë¼. íŒ¨í„´ì„ ì ìš©í• ë•Œì—는 타당한 ì´ìœ ê°€ 있어야 한다. ìƒê°ì—†ì´ ì ìš©ëœ íŒ¨í„´ì€ ì˜¤ížˆë ¤ 설계를 ë§ì¹œë‹¤. 1. ì¦ê²¨ë¼:) ==== ìž„ìƒí˜„ ==== * 왜 ë””ìžì¸ íŒ¨í„´ì„ ì“°ëŠëƒ?, SOLID를 공부했습니다. ì˜¤ëžœë§Œì— ê³µë¶€ë¥¼ 잘 안ëŒì•„갑니다. , 열심히 ê³µë¶€í•´ì•¼ê² ìŠµë‹ˆë‹¤. ì‚½ì§ˆì„ ëœí•˜ê³ 싶습니다. == 4ì›” 02ì¼ == === 후기 === ==== ê¹€ì¤€ì„ ==== 1. 밑줄긑기가 잘 남는군. ì—시 ê·¼ë° ì±…ì„ ì½ì–´ì˜¨ë‹¤ëŠ”ê±´ 힘들어. 1. 알면 ì•Œìˆ˜ë¡ ì˜¤ë¥˜ëŠ” ì •ì •ë˜ê³ ì§€ì‹ì€ 쌓ì´ëŠ” 기분. 1. 지금짜는 ì½”ë“œë§Œí¼ ë¯¸ëž˜ë¥¼ 위해서는 ê°œë…공부가 중요하지만 난 잘안하지. ==== 김수경 ==== 1. ì´ë²ˆ 스터디는 ì±…ë„ ë¯¸ë¦¬ ì½ì–´ë³´ê³ , ë°‘ì¤„ë„ ë‹¤ë“¤ 열심히 그어서 ë” ìž¬ë¯¸ìžˆì—ˆë‹¤. 1. í˜¼ìž ì±…ì„ ì½ì„ 때는 'ë™ì ì¸ í–‰ë™ì–‘ì‹'ì´ ë¬´ì—‡ì¸ì§€ 잘 ê°ì´ 오지 ì•Šì•˜ëŠ”ë° ì˜¤ëŠ˜ 스터디하며 알게ë˜ì—ˆë‹¤. 1. ì±…ì— ë‚˜ì˜¨ êµì°¨ í†µí’ íŒ¨í„´ì„ ì˜ˆë¡œ 들어 ë§í•˜ìžë©´, ì •ì ì¸ êµ¬ì¡°ë¥¼ ë³¼ 때 마주보는 ì–‘ 쪽 ë²½ 비슷한 높ì´ì— ì°½ë¬¸ì´ ìžˆëŠ” ì‚¬ë¬´ì‹¤ì€ êµì°¨ í†µí’ íŒ¨í„´ì— ì†í•˜ëŠ” 것처럼 ë³´ì¼ ìˆ˜ 있다. 그러나 창문 ì•žì— ì»¤ë‹¤ëž€ ê±´ë¬¼ì´ ìžˆìœ¼ë©´ ë°”ëžŒì„ ë§‰ì•„ì„œ ì°½ì„ í†µí•´ ë°”ëžŒì´ ë“¤ì–´ì˜¤ì§€ 않는다. êµì°¨ í†µí’ íŒ¨í„´ì€ ë§ˆì£¼ë³´ëŠ” ì–‘ ë²½ì— ê°ê° ì°½ì´ ìžˆë‹¤ëŠ” ê·¸ ìžì²´ë¡œ 실내 공기를 쾌ì 하게 만드는 ê²ƒì´ ì•„ë‹ˆë¼ ì°½ì„ í†µí•´ ë°”ëžŒì´ ë¶ˆì–´ë“¤ì–´ì˜¤ê³ ë¶ˆì–´ë‚˜ê°ìœ¼ë¡œì¨ 실내 공기를 쾌ì 하게 만드는 것ì´ë‹¤. ë”°ë¼ì„œ êµì°¨ í†µí’ íŒ¨í„´ì—서 마주보는 ì–‘ ë²½ì— ì°½ì´ ì¡´ìž¬í•œë‹¤ëŠ” ì •ì 구조 보다는 ì°½ì„ í†µí•´ ë°”ëžŒì´ ë“¤ì–´ì˜¤ê³ ë‚˜ê°€ëŠ” ë™ì ì¸ í–‰ë™ ì–‘ì‹ê³¼ ê·¸ê²ƒì„ í†µí•´ 실내 공기를 쾌ì 하게 ë§Œë“ ë‹¤ëŠ” ì˜ë„ê°€ ì¤‘ìš”í•˜ë‹¤ê³ í• ìˆ˜ 있다. 1. 홀럽 ì•„ì €ì”¨ëŠ” OOê³„ì˜ ì§„ì¤‘ê¶Œì¸ë“¯. 1. ì±…ì˜ ì¼ë¶€ 내용으로 미루어보아 ì ˆì°¨ì§€í–¥ì íŒ¨ëŸ¬ë‹¤ìž„ì´ íŒì¹ 때 OO를 ë“¤ê³ ë‚˜ì™€ ì ˆì°¨ì§€í–¥ì˜ ìˆ˜í˜¸ìžë“¤''--ì ˆì°¨ì§€í–¥ìœ¼ë¡œ 코드 잘 ì§œì§€ë„ ëª» 하는 í—ˆì ‘ë“¤--''ê³¼ 격한 키배를 ìˆ˜ë„ ì—†ì´ íŽ¼ì¹˜ì§€ 않았ì„까… 1. ''ì˜ˆì¸¡ì€ ë¹—ë‚˜ê°€ê¸° 쉽다.'' 1. 무엇ì´ë“ ìƒê°ì—†ì´ 받아들ì´ì§€ ë§ê³ 장ì ê³¼ 단ì ì„ ëª¨ë‘ ìƒê°í•œ í›„ì— ì§€ê¸ˆ 사용하기 ì ì ˆí•œì§€ íŒë‹¨í•˜ê³ ì 용하ë¼ëŠ” 아주 중요한 메세지가 반복ë˜ì–´ 나온다. 다시 한번 ë˜ìƒˆê¸°ëŠ” ì‹œê°„ì´ ë˜ì—ˆë‹¤. ==== 서지혜 ==== * 처ìŒì— 0ìž¥ì— ëŒ€í•´ 다시 ì–˜ê¸°í–ˆëŠ”ë° ê·¸ìƒˆ ìžŠì—ˆë˜ ì¼ì„ 다시 기억하게 ë˜ì—ˆë‹¤. * OOD와 OOPê°€ 다르다는 ê²ƒì„ ì•Œì•˜ë‹¤. * 처ìŒì— ëª¨ë“ ê¸°ëŠ¥ì„ ê³ ë ¤í•˜ê¸° 보다는(ë¯¸ëž˜ì˜ ê²ƒê¹Œì§€) ê¸°ëŠ¥ì„ í™•ìž¥í• ìˆ˜ 있ë„ë¡ ìœ ì—°í•˜ê²Œ 설계하ë¼. ==== ìž„ìƒí˜„ ==== 1. 밑줄 긋기를 하면서 ì±…ì„ ë´¤ìŠµë‹ˆë‹¤. ê·¸ëŸ°ë° ì²˜ìŒì´ë¼ 그냥 책보면서 긋ë˜ê±° 다 그어 ë²„ë ¸ìŠµë‹ˆë‹¤ . 2. 스터디 í•˜ëŠ”ë° ìƒê°ë³´ë‹¤ ì‹œê°„ì´ ë¹ ë¥´ê²Œê°€ ì•„ì‰¬ì› ìŠµë‹ˆë‹¤. 3. ë””ìžì¸ì´ëž€ ì„ íƒê³¼ íŠ¸ë ˆì´ë“œ 오프, ë¦¬ìŠ¤í¬ ê´€ë¦¬ì˜ ì—°ì†ì´ë¼ëŠ” ì ì´ ê°€ìŠ´ì— ì™€ë‹¿ì•˜ìŠµë‹ˆë‹¤. 그래서 ê²°êµ ìžêµ¬ ê³¼ì œëŠ” 추가 사í•ì´ ì—†ìœ¼ë¯€ë¡œ ê°œíŒìœ¼ë¡œ 짰습니다. 4. ìžêµ¬ ê³¼ì œë¥¼ 하면서 ì´ë ‡ê²Œ 짜면 안ë˜ëŠ”ë° ì´ëŸ¬ë©´ 코드가 ê°œíŒì¸ë° ëŠë¼ê³ 있으면서 ê·¸ë ‡ê²Œ ë°–ì— í• ìˆ˜ 없는 ëŠ¥ë ¥ì´ ìŠ¬íŽìŠµë‹ˆë‹¤. ë” ê³µë¶€í•´ì„œ ìž˜ì§œì•¼ê² ìŠµë‹ˆë‹¤. == 4ì›” 10ì¼ == === 후기 === ==== ê¹€ì¤€ì„ ==== 1. 1ìž¥ì´ ë났다. ë§Žì€ ì›ì¹™ì— 대해 새ë¡ê²Œ 다시 공부하게 ë˜ì—ˆëŠ”ë° ë‚´ê°€ 강해지는걸(?) ëŠë‚€ë‹¤!! 1. 기본 ì›ë¦¬ë¥¼ 파악하는건 매우 중요한 ì¼ì´ì§€ë§Œ ì •ë§ íŒŒì•…í•˜ê¸° ì–´ë µë‹¤ëŠ”ê±´ 새삼스럽게 ë§Žì´ ëŠë‚€ë‹¤. ==== 서지혜 ==== 1. 1장 ë 1. 밑줄긋기를 안해서 그런지 ê¸°ì–µì— ìž˜ 안남는다 1. 밑줄긋기 시험 ëë‚˜ê³ í•˜ê² ìŠµë‹ˆë‹¤. 1. ì €ìžëŠ” 열심히 getter와 setter를 ê¹ë‹¤. get/setì€ ë³€ìˆ˜ë¥¼ public으로 만드는 ì–´ë ¤ìš´ 방법ì´ë‹¤! 1. 멤버변수를 ì„ ì–¸í•˜ë©´ ê¼ê¼ getter/setter를 ë§Œë“¤ì—ˆë˜ ë‚˜ë¥¼ 반성...(나중엔 귀찮아서 public으로 한ì ë„ ìžˆë‹¤ì§€) ==== ìž„ìƒí˜„ ==== 1. ì±… 1ìž¥ì„ ì´ë²ˆì— 다 ì½ì—ˆìŠµë‹ˆë‹¤. DB프로ì 트 설계하는걸 구경 ë° ì°¸ì—¬í–ˆìŠµë‹ˆë‹¤. 2. 프로ì 트 설계를 하는게 매우 ì‹ ê¸°í–ˆìŠµë‹ˆë‹¤. 가장 ìµœê·¼ì— í–ˆë˜ í”„ë¡œì 트가 약 2ë…„ ì „ì´ë¼ í•˜ë‚˜ë„ ëª¨ë¥´ê² ëŠ”ë° ëª¨ë“ˆì„ ìž¡ê³ ê·¸ ëª¨ë“ˆì˜ ì—í™œì„ ìž¡ê³ ê·¸ì— ë”°ë¼ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ë§Œë“¤ê³ í•˜ëŠ” ê±¸ë³´ê³ ìƒê°ì—†ì´ 그냥 순차ì 으로 í”„ë¡œê·¸ëž˜ë° í•˜ë ¤ê³ í–ˆë˜ ì œê°€ ì°¸ ë‹µì´ ì—†ì—ˆë˜ê±° 같습니다. 3. "ì–´ë–¤ ìž‘ì—…ì„ ìˆ˜í–‰í•˜ëŠ”ë° í•„ìš”í•œ ë°ì´í„°ë¥¼ 요구하지 ë§ë¼!!! ëŒ€ì‹ ì •ë³´ë¥¼ ê°€ì§€ê³ ìžˆëŠ” ê°ì²´ì—게 ì¼ì„ 해달ë¼ê³ ë¶€íƒí•˜ë¼!" í•ìƒ ë°ì´í„°ë¥¼ get으로 꺼내와 ë°”ê¿”ë†“ê³ set으로 ë„£ì–´ë†¨ë˜ ì œ ìžì‹ ì„ ë°˜ì„±í•´ 봅니다. 4. DB ìˆ˜ì—…ì„ ë“£ì§€ 않아서 ì™„ì „ížˆ 참여는 하지 않았지만 DBíŒ€ì´ í•˜ëŠ” 프로ì 트가 ì§„í–‰ë˜ëŠ” ëª¨ìŠµì„ ê³„ì† ë³´ê³ ì‹¶ìŠµë‹ˆë‹¤. ==== 김수경 ==== 1. 드디어 1ìž¥ì„ ë‹¤ ì½ì—ˆë‹¤. 1ìž¥ì— ì •ë§ ì¤‘ìš”í•œ ë‚´ìš©ì´ ë§Žë‹¤ëŠ” ê²ƒì„ í›„ê¸°ë¥¼ ì“°ë ¤ê³ ëŒì•„ë³´ë©° 다시 한번 ëŠë‚Œ. ì´ ì±…ì„ ì½ìœ¼ë©´ì„œ 1ìž¥ì„ ê±´ë„ˆë›°ê³ ê° íŒ¨í„´ì— ëŒ€í•œ 설명만 찾아보는 ì‚¬ëžŒì´ ìžˆì„ ê±°ë¼ ìƒê°í•˜ë‹ˆ 답답함. -L- 1. CRC 모ë¸ë§ì— 대해 설명하는 ë¶€ë¶„ì— '''ë„ë©”ì¸ ì˜ì—ì˜ ì–¸ì–´ë¡œ ë¬¸ì œë¥¼ ê¸°ìˆ í•˜ë¼'''는 ë§ì´ ì¸ìƒì ì´ì—ˆë‹¤. getê³¼ setì„ ì‚¬ìš©í• í•„ìš”ê°€ 없다는 걸 와닿게 하는 ë§ì´ì—ˆë‹¤. ì–¸ì ê°€ ì •ëª¨ì—서 ''ì²´í—˜ OO 현장''ê°™ì€ í™œë™ì„ í•´ë³´ê³ ì‹¶ìŒ. 우리 ëª¨ë‘ ê°ì²´ê°€ ë˜ì–´ë³´ì•„Yo :) 1. ë°ì´í„°ë¥¼ 꺼내는 것보다 넣는 ê²ƒì´ ì¢‹ë‹¤ëŠ” ê²ƒì„ ì§„ìž‘ì— ìƒê°í–ˆë”ë¼ë©´â€¦ == 4ì›” 29ì¼ == * 2장 103쪽 ì „ê¹Œì§€ ì½ì–´ì˜µì‹œë‹¤. ê·¸ë¦¬ê³ ["HolubOnPatterns/밑줄긋기" ë°‘ì¤„ì„ ê·¸ì–´ìš”~] === 후기 === ==== ê¹€ì¤€ì„ ==== 1. ìƒì†êµ¬í˜„ì´ ë‚˜ì˜ë‹¤ê³ ë§í•œë‹¤. 그래서 그런지 나ë»ë³´ì¸ë‹¤. 코드가 꼬ì´ë‹ˆê¹Œ. 1. Factory Method와 Template Method 방법ì—대해 나ìœì ì„ ì„¤ëª…í•˜ëŠ”ë° Swingì´ ë‚˜ì˜¤ë‹ˆê¹Œ 다시 화난다. 난 Swingë””ìžì¸ì´ ì‹«ì–´!! ==== ìž„ìƒí˜„ ==== 1. ìƒì†êµ¬í˜„ì´ ì™œ 나ìœê°€ì— 대해 ë°°ì› ë‹¤. 1. ìƒì†êµ¬í˜„ì€ ì»¤í”Œë§ì„ 늘리는 것 + 찾기 íž˜ë“ ë²„ê·¸ë¥¼ ë°œìƒì‹œí‚¤ëŠ” ì›ì¸ ì´ë¼ 매우 슬픈거 같다. 1. 쩌는 í˜•ë‹˜ë“¤ì€ ìž˜ ì“°ì‹œê² ì§€ë§Œ 코드가 꼬ì´ëŠ” ëª¨ìŠµì„ ë³´ë‹ˆ ë‚´ê°€ 하는 ìƒì†êµ¬í˜„ì€ ì¼ë‹¨ 슬í¼ì§ˆ ê°€ëŠ¥ì„±ì´ ë§¤ìš° 높으므로 ìƒê°ì— ìƒê°ì„ 해서 ì“°ë˜ê°€ 아니면 ë‹¥ì¹˜ê³ ì¸í„°íŽ˜ì´ìФ êµ¬í˜„ì„ í•´ì•¼ê² ë‹¤. ==== 서지혜 ==== 1. ì˜¤ëžœë§Œì— ë””í”¼ ìŠ¤í„°ë””ë¼ ì–´ìƒ‰ 1. 오늘 스터디한 ë¶€ë¶„ì€ '왜 extendsê°€ 나ìœê°€'였다. 왜 나ìœì§€ 예를 ë³´ì•˜ëŠ”ë° ì™€ë‹¿ì§€ 않아 ì´í•´í•˜ê¸° 힘들었다. 1. 홀럽ì—서 ë§í•˜ëŠ” 템플릿 메소드 패턴ì´ëž‘ 스프ë§ì˜ 템플릿 íŒ¨í„´ì€ ë‹¤ë¥¸ê°€?(스프ë§ì˜ íŒ¨í„´ì´ í…œí”Œë¦¿ 메소드 패턴ì´ì—ˆë‚˜?) 1. íŒ©í† ë¦¬ 메소드 íŒ¨í„´ì´ ë”ì§€ 잘 ëª¨ë¥´ê² ë‹¤. 기반 ê°ì²´ê°€ 알지 못하는 íŒŒìƒ í´ëž˜ìŠ¤ë¥¼ ìƒì„±í•œë‹¤ë‹ˆ. 기반í´ëž˜ìŠ¤ëŠ” ì›ëž˜ 파ìƒí´ëž˜ìŠ¤ë¥¼ 알지 못해! ì´ë§ì€ ìƒì„±ë˜ëŠ” 파ìƒí´ëž˜ìŠ¤ëŠ” 기반í´ëž˜ìŠ¤ë¥¼ '''반드시 확장해야 한다'''는 ê±´ê°€? ì–´ë ¤ì›Œ. 1. ìžë°” ìŠ¤ìœ™ì˜ ì½”ë“œ ì¼ë¶€ë¥¼ 보니 알거같기ë„.. 코드ì—서 기반í´ëž˜ìŠ¤ë¥¼ 확장하는 íŒŒìƒ í´ëž˜ìŠ¤ê°€ ì•„ë‹ˆë¼ ì†ì„±ì´ë‚˜ 기능만 ë³€ê²½ëœ í´ëž˜ìŠ¤ë¥¼ 구현 ìƒì†í•´ ìƒì„±í•˜ê³ 있다. 1. 중간까지만 ì½ì–´ì˜¤ê¸° 좋지 않아. ''나ì˜ë‹¤'' ë§Œ ë“£ê³ ë‚˜ë‹ˆ ë‹µë‹µí•˜ê³ ì°œì°œí•´. ==== 김수경 ==== 1. ì±…ì„ ë‹¤ 못 ì½ì–´ì„œ 난ê°í–ˆë‹¤. 1. ì´ë²ˆ 장엔 코드가 ë§Žì´ ë‚˜ì™”ëŠ”ë° ê¼ ë‹¤ì‹œ ì½ì–´ë´ì•¼ê² 다. == 5ì›” 6ì¼ == * 다ìŒì‹œê°„ì—는 ìž„ìƒí˜„ì˜ SE 프로ì íŠ¸ì¸ WinMerge프로ì 트를 ë„ì™€ì£¼ê² ìŠµë‹ˆë‹¤!!! === 후기 === ==== ê¹€ì¤€ì„ ==== 1. Factory Method, Abstract Factory Method, Template Method, Command, Strategyì˜ ë¹„êµë¥¼ 통해 ìƒì†êµ¬í˜„ì˜ ë¹„íš¨ìœ¨ì„±ì— ëŒ€í•´ ëŠê¼‡ë‹¤. 1. ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ì´ìš©í•œ 캡ìŠí™”는 ì°¸ 편리하다 Java를 ë§Œë“ ì‚¬ëžŒë“¤ì€ ì´ê±¸ 목ì ì— ë‘ê³ ë§Œë“ ê²ƒì¼ê¹Œ? 1. 한번 ì§œë´ì•¼ í• í•„ìš”ì„±ì„ ëŠë‚€ë‹¤. Life Game으로 ë„˜ì–´ê°€ê¸°ì „ì—. ==== ìž„ìƒí˜„ ==== ==== 서지혜 ==== 1. 너무 ì–´ë ¤ì› ë‹¤. 1. ê¸°ì–µì´ ìž˜ 안나네 ì±…ì„ ë‹¤ì‹œ ì½ê³ ì´ í›„ê¸°ëŠ” ê³ ì¹˜ë„ë¡ í•˜ê² ìŠµë‹ˆë‹¤. ==== 김수경 ==== 1. ì§€ë‚œì£¼ì— í—·ê°ˆë ¸ë˜ Factory Method íŒ¨í„´ì— ëŒ€í•´ ì´í•´í• 수 있게 ë다. 1. Factory Method íŒ¨í„´ì€ ìƒì†ì„ 통해 바뀌는 ë¶€ë¶„ì„ ì˜¤ë²„ë¼ì´ë”©í•˜ì—¬ 구현 1. Strategy íŒ¨í„´ì€ implements를 통해 바뀌는 ë¶€ë¶„ì„ êµ¬í˜„í•˜ì—¬ 넘겨준다. 1. ë˜ ë‚œ ì±…ì„ ì•ˆ ì½ì—ˆë‹¤........ 죄송합니다...... == 5ì›” 13ì¼ == * ë‹¤ìŒ ë²”ìœ„ : 3장 173page까지 ì½ì–´ì˜¤ê¸° === 후기 === ==== 김수경 ==== 1. ì˜¤ëŠ˜ì€ LifeGame으로 바로 넘어가기 ì „ì— [ìž„ìƒí˜„]ì˜ SE ê³¼ì œì¸ íŒŒì¼ ë¹„êµ í”„ë¡œê·¸ëž¨ì„ ì„¤ê³„í•´ë³´ì•˜ë‹¤. 1. MVC 모ë¸ì— ë§žì¶° 설계해야해서 [HolubOnPatterns]ì—서 ì¢‹ë‹¤ê³ í•˜ëŠ”ëŒ€ë¡œë§Œ 설계하지는 않ìŒ. 1. DB 프로ì 트를 ì‹œìž‘í• ë•Œì²˜ëŸ¼ ì „ì²´ 아키í…ì³ì—서 ì–´ë–¤ ê²ƒë“¤ì´ ì˜¤ê³ ê°€ì•¼í•˜ëŠ”ì§€ë¶€í„° ìƒê°í–ˆëŠ”ë° ì‰½ì§€ 않았다. 1. Blockê³¼ Lineì—서 ì–´ëŠ ìª½ì´ ì‹¤ì œ status를 ê°€ì§€ê³ ìžˆì–´ì•¼ í• ì§€ê°€ ì„¤ê³„ì˜ ì£¼ìš” ì´ìŠˆì˜€ë‹¤. ==== ê¹€ì¤€ì„ ==== 1. SE프로ì 트ì—서 후회하는 ë¶€ë¶„ì— ëŒ€í•´ ì§‘ì–´ë³´ê³ ê°ˆìˆ˜ ìžˆì—ˆë˜ ìœ ìš©í•œ 시간. 1. MVC로 ë‚˜ëˆ„ê³ Data모ë¸ì„ 위한 Drawableì„ ë§Œë“œëŠ” ì´ìœ 를 알것 같았다. 서로 ì§ì ‘ì ì¸ í†µì‹ ì„ ê¼ ì•ˆí•´ë„ë˜ëŠ”êµ°.. 1. 다시한번 ë³´ê³ ì‹¶ì€ë° 지금 ìƒê°í•´ë³´ë‹ˆ..? ==== 서지혜 ==== 1. í…스트만 ì½ê³ ë¼ì´í”„게임으로 넘어가는 ê²ƒì´ í˜„ìž¬ ìš°ë¦¬ì˜ ìˆ˜ì¤€ì— ì ì ˆí•˜ì§€ ëª»í•˜ë‹¤ê³ íŒë‹¨í•¨. 1. [ìž„ìƒí˜„]ì˜ {{{SE프로ì íŠ¸ì¸ '''SimpleMerge'''}}}를 구현해 보기로 하였다. 1. '''ë‚¨ì˜ í”„ë¡œì íŠ¸ì— ê°ë†”ë¼ ë°°ë†”ë¼ í•˜ê¸° 프로ì 트'''를 하였다. 1. 지난 SE 프로ì 트가 기억ì´.. 안난다. ë‚´ê°€ 한게 없다.. 그래서 SimpleMerge를 구현해본다 하여 ë°˜ê°€ì› ë‹¤. 1. JUnitê³¼ EasyMockì´ í•µì‹¬ì¸ í”„ë¡œì íŠ¸ë¼ TDD를 í•˜ê³ ì‹¶ì—ˆë‹¤. 1. 그러나 아키í…ì³ ì„¤ê³„ë¥¼ í•˜ê³ ë‚˜ë‹ˆ ì‹œê°„ì´ ëŠ¦ì–´ë²„ë ¸ë‹¤. 1. 아키í…ì³ ì„¤ê³„ì™€ ê·¸ì— ë”°ë¥¸ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ 만들었다. 1. í”„ë¡œê·¸ëž¨ì´ ë™ìž‘하는 ëª¨ìŠµì„ ìƒìƒí•´ë³´ë‹ˆ 아키í…ì³ì˜ ìœ¤ê³½ì„ ìž¡ì„ ìˆ˜ 있었다. 1. ì´ë²ˆ ê¸°íšŒì— MVCê°€ ë”ì§€ ì œëŒ€ë¡œ 알았다(ê°œë…ë§Œ) 1. '''Model''' : 비즈니스 로ì§ì— 필요한 ë°ì´í„°ë“¤ì„ ì €ìž¥í•˜ëŠ” í´ëž˜ìŠ¤êµ°. 1. '''View''' : ìœ ì €ì—게 보여질 ì¸í„°íŽ˜ì´ìŠ¤êµ°. 1. '''Control''' : Modelê³¼ View 사ì´ì˜ ì •ë³´ êµí™˜ì„ ì œì–´í•˜ëŠ” í´ëž˜ìŠ¤êµ°. 모ë¸êµ°ì˜ ë°ì´í„°ë¥¼ ë·°ê°€ ì¶œë ¥í•˜ëŠ”ë° ìš©ì´í•˜ë„ë¡, ë·°ì—서 ë°›ì€ ë°ì´í„°ë¥¼ 모ë¸ì—게 ì 합하ë„ë¡ ê°€ê³µí•´ì¤€ë‹¤. 1. [ìž„ìƒí˜„] ì—”í¬ì§€ì— ê²°ê³¼ë¬¼ì„ ê³µìœ í•´ 주세요 1. 재미있다. ë‚´ 프로ì 트가 ì•„ë‹ˆë¼ ë§ˆìŒë†“ê³ ë„ì ì¼ ìˆ˜ 있었다. 굿. 1. ê³¼ì œë‚˜ 프로ì 트를 만들때 기능 구현ì—ë§Œ 집중하지 ë§ê³ ì´ë ‡ê²Œ 스터디한 ë‚´ìš©ì„ ì 용해보니 좋다. ë”ê°€ 배우긴 했었구나 하는 ìƒê°ì´ ë“ ë‹¤. ==== ìž„ìƒí˜„ ==== 1. SE projectì¸ merge 프로그램 ë””ìžì¸ì„ 했다. MVC모ë¸ì´ 스팩ì´ë¼ ìžìœ ë¡ê²Œ ì±…ì— ë‚˜ì˜¨ê±¸ ìžìœ ë¡ê²Œ ì¨ë³´ì§„ 못했다. 1. 군대갔다오니 java를 í•˜ë‚˜ë„ ëª¨ë¥¸ë‹¤. ê³„ì† ì‚½ì§ˆí•´ì„œ 매우 슬íŽë‹¤. ê·¸ëž˜ë„ ì±…ì—서 ì½ì€ ê²ƒë“¤ì„ ì¨ ë³¼ë ¤ê³ í•˜ëŠ”ë° ë¨¸ë¦¬ì†ì—서 ë”ê°€ ë– ì˜¤ë¥´ëŠ” 것 같지만 êµ¬í˜„ì€ ì•ˆë˜ì„œ ì•„ì‰¬ì› ë‹¤. 1. ì¼ë‹¨ java를 다시 ê³µë¶€í•´ì•¼ê² ê³ ì±…ì— ë‚˜ì˜¨ ë‚´ìš©ì„ ì •ë§ë¡œ 내껄로 ì“°ë ¤ë©´ ì´ë²ˆì²˜ëŸ¼ 활용하는 ì¼ì„ ê³„ì† í•´ë´ì•¼ê² 다. ---- [DesignPatterns], [스터디분류], [2011년활ë™ì§€ë„]