Object-Oriented Design 세미나 ¶
ì‹¤ì „ ê°�체지향 설계로 배우는 왜? ¶
- “단ì�¼ 변화로 ì�¸í•œ ìˆ˜ì • 사í•ì�„ 예측 가능한 범위 ë‚´ì—� 집중시켜ë�¼.â€�
- ì�´ê²ƒì�€ 비단 ê°�체지향ì—� í•œì •ë�œ ì�´ì•¼ê¸°ê°€ 아니ë�¼ 컴퓨터공학 ë°œì „ì�˜ ì—사를 ì�´ë�Œì–´ì˜¨ 가장 중대한 목표ì�´ìž�, 앞으로 여러분ì�´ 컴퓨터공학ë�„로서 ê°–ì¶°ì•¼í• ëª¨ë“ ê³µí•™ì � 지혜들ì�˜ 근본ì�´ë�¼ëŠ” 것ì�„ 잊지 마세요. - 변형진
- ì�´ê²ƒì�€ 비단 ê°�체지향ì—� í•œì •ë�œ ì�´ì•¼ê¸°ê°€ 아니ë�¼ 컴퓨터공학 ë°œì „ì�˜ ì—사를 ì�´ë�Œì–´ì˜¨ 가장 중대한 목표ì�´ìž�, 앞으로 여러분ì�´ 컴퓨터공학ë�„로서 ê°–ì¶°ì•¼í• ëª¨ë“ ê³µí•™ì � 지혜들ì�˜ 근본ì�´ë�¼ëŠ” 것ì�„ 잊지 마세요. - 변형진
후기 ¶
- 오늘 긴 시간ë�™ì•ˆ 모ë‘� ìˆ˜ê³ í•˜ì…¨ìŠµë‹ˆë‹¤. 오늘 설명한 ë‚´ìš©ì�´ ì•„ì§� 깊ì�´ 와닿지 않ë�”ë�¼ë�„ 좋습니다. 프로ì �트 개발ì—� 있어 ê·¸ë�™ì•ˆ í�”히 ì „ê°œí–ˆë�˜ ë°©ì‹�과는 다른 ì ‘ê·¼ ë°©ì‹�ì�˜ 가능성ì�„ 확ì�¸í•˜ëŠ” 것만으로ë�„ 좋ì�€ 경험ì�´ ë�˜ì—ˆê¸¸ ë°”ëž�니다. 누누히 강조하지만 한 번ì—� ì�´í•´í•˜ì‹œê¸¸ ë°”ë�¼ì„œ 진행하는 세미나가 아니ë�¼, ì •ë§� 중요한 하나ì�˜ ì œì–¸ë§Œì�´ë�¼ë�„ 남는다면 그것ì�„ 앞으로 몇 번 ë“£ê³ ë˜� ë“£ê³ , ê·¸ë¦¬ê³ ì •ë§� ê·¸ ê°œë…�ì�´ 필요한 순간ì�´ ë��ì�„ 때 í�° 힘ì�´ ë�˜ë¦¬ë�¼ 믿습니다. ì˜ˆì œëŠ” 좋ì�€ ì˜ˆì œê±°ë¦¬ì—� 대한 ì�˜ê²¬ì�´ 없어 SE 프로ì �트 ì£¼ì œë¥¼ 차용했는ë�°, 설계만으로 ë¬¸ì œê°€ ê¹”ë�”하게 í•´ê²°ë�˜ëŠ” ê³¼ì œê°€ 아니ë�¼ ì•Œê³ ë¦¬ì¦˜ìœ¼ë¡œ í•´ê²°í•´ì•¼í• ë¶€ë¶„ì�´ 꽤 있는 ê³¼ì œë‹¤ë³´ë‹ˆ, 실습ì�´ 설계부분ì—� 집중하기 힘들었ë�˜ ì �ì�€ 다소 아쉽네요. 좋ì�€ 후기를 ìž‘ì„±í•´ì£¼ì‹ ë¶„ 한 ë¶„ì�„ ì„ ì •í•´ì„œ 번ì—서 Holub on Patternsì�„ ì„ ë¬¼ë¡œ 드립니다. 후기는 ê°�ìƒ�보다는 ë�˜ìƒˆê¹€ì�´ ë�˜ì—ˆìœ¼ë©´ ì¢‹ê² ìŠµë‹ˆë‹¤.
- 변형진
- í•™êµ� 환경ë�„ 안 ë°›ì³�ì£¼ê³ , ì œ 머리ë�„ 안 ë°›ì³�줬어요. diff/merge 기능 설계를 ë°”ë�¼ë³´ë©´ì„œ ê°�체지향 설계를 봤는ë�° ì–´ë ¤ìš°ë©´ì„œë�„ 효율ì �ì�¸ê±° ê°™ë�”ë�¼êµ¬ìš”. ê·¸ë¦¬ê³ í˜•ì§„ì�´ 형ì�´ ì„¸ë‡Œí•˜ì‹ ë‚´ìš© "단ì�¼ë³€í™”ê°€ ìƒ�겨서 ìˆ˜ì •í• ë•Œ 쉽게 ìˆ˜ì •í•˜ë ¤ë©´ 구조가 중요하다" ì�´ê±° ê¼ ì™¸ìš¸ê²Œìš” -] 윤종하
- ì›�래 ì •ë§� ì² ì €í•˜ê²Œ ì ˆì°¨ì§€í–¥ì �으로 프로그래ë°� 하ë�˜ 사람ì�´ë�¼... 오늘 ë‚´ìš©ì�´ 좀 ì–´ë ¤ì› ìŠµë‹ˆë‹¤;; 특히 그냥 들ì�„때는 ì�´í•´í•˜ë©´ì„œ 넘어가ë�„, ì‹¤ì œ 프로그래ë°�ì�„ í•˜ë ¤ë‹ˆê¹Œ 막막하ë�”ë�¼êµ¬ìš”. 마지막 실습때 질문ë�„ 했었는ë�°, 형ì�€ if문 안ì—�서 Comparer ê°�체를 ì„ ì–¸í•´ì„œ, equals 함수를 사용하ë�¼ê³ 하셨는ë�°, ì „ if문 안ì—�서 ê°�체를 ìƒ�ì„±í• ìƒ�ê°�ì¡°ì°¨ 하지 ëª»í–ˆì—ˆê±°ë“ ìš”. ê·¸ì € 주어진 ì •ë³´ë§Œ ê°€ì§€ê³ , 반복문ì�„ ë�Œë¦´ ìƒ�ê°�ë¿�ì�´ì—ˆì£ ; 그런ë�° 집으로 ë�Œì•„오면서 ìƒ�ê°�해봤는ë�°, ì œê°€ ì§ ëŒ€ë¡œ 하면 “단ì�¼ 변화로 ì�¸í•œ ìˆ˜ì • 사í•ì�„ 예측 가능한 범위 ë‚´ì—� 집중시켜ë�¼.â€� ë�¼ëŠ” ë§�과는 거리가 한 ì°¸ 멀어지ë�”ë�¼êµ¬ìš”;; 예측ì�€ 가능한ë�° 예측범위가 프로그램 소스 코드 ì „~ë¶€ ë�¼ëŠ”ê±°ì£ . ë�•ë¶„ì—� "ì•„, ì •ë§� ì�´ëŸ°ê±° 때문ì—� OOP를 하ë�¼ëŠ” 거구나" ë�¼ëŠ”ê±¸ 알게 ë�˜ì—ˆìŠµë‹ˆë‹¤ ã…‹ã…‹
오늘 í–ˆë�˜ ë‚´ìš© 중 ì •ë§� 특히 기억ì—� 남는건 "ìƒ�ì†�ì�„ 하기 위한 프로그래ë°�ì�„ 하지 ë§�ì•„ë�¼" & "패턴ì�„ ì �용시키기 위한 프로그래ë°�ì�„ 하지 마ë�¼" 였습니다.
ì œê°€ ë˜ ë°°ìš°ê¸°ë§Œ 하면 ê¼ ì�¨ë¨¹ì�„ë ¤ëŠ” 습관ì�´ 있는지ë�¼, ì •ë§� 문법같ì�€ê±¸ ë°°ìš°ë©´ ê¼ ì�¨ë¨¹ìœ¼ë ¤ê³ í•˜ê±°ë“ ìš”. 그런ë�° ì�´ ë§�ì�„ ë“£ê³ , 문법ì�˜ 남용ì�„ ìž�ì œí•´ì•¼ê² ë‹¤ëŠ” ìƒ�ê°�ì�„ 했습니다; 마치 ì˜�ì–´ 배울때 수ë�™íƒœ 문장 ë§Žì�´ 만들지 마ë�¼ ë�¼ëŠ” ëŠ�낌ì�´ì—ˆì–´ìš” ã…‹ã…‹
ì •ë§� 중간ì—� ì–´ë ¤ì›Œì„œ LineDrawable ì–˜ê¸°í• ë•� ìž ê¹� 졸았지만 너무 ìœ ì�µí•œ 세미나 였습니다~ - 박성현
- ì�¼ë‹¨ ê°œì�¸ì �ìœ¼ë¡ ëŠ¦ì–´ì„œ 앞부분ì�„ 못들ì�€ê²Œ ì•„ì‰½ê³ , SE팀플과 ê´€ë ¨ë�œ 수확ì�´ 있어서 여러모로 ìœ ìš©í•œ 세미나였습니다ㅋ ì�¼ë‹¨ 들으면서 간단히 ì �ì—ˆë�˜ê±¸ë¡
- ì¶”ìƒ�화는 단ì�¼ë³€í™”ì—� 대해 ìˆ˜ì •í•´ì•¼ í• ì‚¬í•ì�„ 예측가능케 í• ë ¤ê³ í•œë‹¤ëŠ”ì � -> 변경 가능성ì�´ 있는건 다 ì¶”ìƒ�화하ìž�?
- 패턴� 통해 커뮤니케�션� 좋아지는거지, 구현� 좋아지는건 아니다 '
- 잘 설계하다보니 몇가지 패턴ì�´ ë³´ì�´ëŠ” 것ì�´ì§€, 패턴ì�„ ì“´ë‹¤ê³ ì„¤ê³„ê°€ 잘ë�˜ëŠ” 것ì�€ 아니다
ì •ë�„ê°€ 요지였ë�˜ë“¯ 합니다. - ì¶”ìƒ�화는 단ì�¼ë³€í™”ì—� 대해 ìˆ˜ì •í•´ì•¼ í• ì‚¬í•ì�„ 예측가능케 í• ë ¤ê³ í•œë‹¤ëŠ”ì � -> 변경 가능성ì�´ 있는건 다 ì¶”ìƒ�화하ìž�?
- ì§‘ì—� ê°€ìž�마ìž� 아버지가 ì €í•œí…Œ ê°�ì²´ 지향 설계를 왜 하는지 설명하ë�¼ê³ 했습니다. 그런ë�°..여러 번 반복해서 언급한 내용임ì—�ë�„ ë¶ˆêµ¬í•˜ê³ , "단ì�¼ 변화로 ì�¸í•œ ìˆ˜ì • 사í•ì�„ 가능한 범위 ë‚´ì—� 집중시켜ë�¼"ë�¼ëŠ” ë§�ì�„ ì •í™•ížˆ í• ìˆ˜ ì—†ì—ˆìŠµë‹ˆë‹¤ã… ã… ë‚˜ì¤‘ì—� 기존 ë‚´ìš©ì�„ ê³ ì¹ ë•Œ, 여러 êµ°ë�°ì—� í�¼ì ¸ìžˆìœ¼ë©´ ê³ ì¹˜ê¸° 힘드니까 ì“°ì�¸ ê³³ 안ì—�서만 해결하는 것ì�´ ì¢‹ë‹¤ê³ í’€ì–´ì„œ 대답하긴 했지만, ì •í™•í•œ 표현ì�€ 아닌 듯 하네요. ì•„ì§� 세뇌가 ë�œ ë��..ã…Ž;;
getê³¼ setì�„ 사용하면 ë©”ì�¸ì—�서 ê·¸ ìž�료형ì�´ ë”ì§€ ì•Œê³ ìžˆëŠ” 거니까 변경시ì—� ê°™ì�´ 변경해야 하므로 사용ì�„ ìž�ì œí•˜ëŠ” 건가요? 다른 í�´ëž˜ìФì—�서 private로 ì„ ì–¸í•œ 거를 ë©”ì�¸ì—�서 ì ‘ê·¼í•˜ê¸° 위해 getê³¼ setì�„ 사용하는 ê±° ê°™ì�€ë�°, 그럴거면 private로 왜 ì„ ì–¸í•˜ëŠ” ê±´ì§€ ì�˜ë¬¸ì�„ 작년ì—� 가졌...는ë�° ì—¬ì „ížˆ 모르는..;ã……; 우문(ë”ê°€ 질문하면서ë�„ ì�´ìƒ�해서..;)현답ì�„ 기대합니다 ã…Ž; - 강소현
- 매우 ìœ ì�µí•œ 세미나였어요. 사실 2학년 다니면서 ì�´ë¯¸ OOPë�¼ëŠ” 수업ì�„ 들었ì�Œì—�ë�„ ë¶ˆêµ¬í•˜ê³ -_-;; ê°�체지향ì�´ ë�야 ã… ã… ë�¼ê³ ìƒ�ê°�했었는ë�°, 세미나를 통해, ì•„ 설계란 ì�´ë ‡ê²Œ 하는 것ì�´êµ¬ë‚˜ ë�¼ëŠ”ê²ƒì�„ ì–´ëŠ�ì •ë�„(?) ëŠ�꼈어요. 2학년때, ìž�ë°” 프로ì �트를 하면서 로ì§�ì—�서 gui를 어떻게 ë¶™ì�´ë‚˜ 때문ì—� 꽤나 ê³ ìƒ�하ë�˜ê±¸ ìƒ�ê°�하면 ì•„ 나ì�˜ ê³ ë¯¼ì�€ ì°¸ì�˜ë¯¸ì—†ì—ˆêµ¬ë‚˜ ë�¼ëŠ”ê²ƒë�„ 깨닳았지요. ë˜�, ì˜ˆì œë¡œ ì“´ ë¬¸ì œ ë�•ë¶„ì—� 꽤나 막막하게 ëŠ�껴졌ë�˜ SE프로ì �트를 ì–´ëŠ�ì •ë�„ êµ¬ì²´í™”í• ìˆ˜ 있었다는 ì �ì—�서ë�„ 너무 ìœ ì�µí–ˆì–´ìš”. ì�´ì œ í˜•ì§„ì˜¤ë¹ ì�˜ 세미나ë�„ 들었으니, ì €ë�„ ê°�ì²´ 지향ì � 설계ì—� 대해 진지하게 ê³ ë¯¼í•˜ê³ ì‹¤ì²œí•´ë³¼ ìƒ�ê°�ì�´ì—�ìš”. 머리가 뒤죽박죽.. 위키ë�„ ì�´ìƒ�해서 피드백ì�€ 여기까지.. 위키 ì�´ìƒ�í•´ìš” ã… ã… - ì�´ì›�ì •
- 난 �기껄 배�겟어. - 김준�
확실히 ì œ 경험ì—� 비추어보면 í•™ë¶€ê³¼ì •ì—�서 OOPì—� 대한 ê°œë…�ì�„ 배울때는 ìƒ�ì†�, 다형성 등ì�„ 배울때 ê³¼ì œëŠ” ìƒ�ì†�ì�„ ì�´ìš©í•œ 무언가, 오버ë�¼ì�´ë”©, 오버로딩ì�„ 하ë�„ë¡� 요구했습니다. 심지어 ì�˜ë¯¸ì—†ëŠ” í”„ë Œë“œë�„ ì“°ë�„ë¡�í–ˆì—ˆì£ ã…Ž ë¬¼ë¡ ê°€ë¥´ì¹˜ëŠ” êµ�수님ì�˜ 입장ì—�ì„ ì§�ì ‘ ì�¨ë³´ê²Œí•˜ë ¤ë©´ ê·¸ 방법ì�´ 가장 확실합니다. ê·¸ë ‡ì§€ë§Œ ê·¸ë ‡ê²Œ ë°°ìš°ê³ ë‚˜ë©´ ì™ ì§€ 설계ì—� 대한 별 ìƒ�ê°�ì—†ì�´ ê·¸ë ‡ê²Œ 하게ë�˜ë�”êµ°ìš”. ì €ë˜�한 미숙하지만 후배들ì—�게 OOP를 왜 ì“°ê³ , ì–´ë–¤ ì �ì�´ 좋ì�€ê°€ë¥¼ ì•Œë ¤ì£¼ë‹¤ë³´ë‹ˆ 다시 한번 기본개ë…�ì—� 대해 ìƒ�ê°�하게ë�˜ê³ 그러면서 ì œëŒ€ë¡œë�œ OOP는 ë”ê°€ 싶었습니다. (ì �ì–´ë�„ ì œ ìƒ�ê°�ì—”)단지 classì“°ê³ ìƒ�ì†�í•œë‹¤ê³ OOPê°€ 아닙니다. OOPì�˜ 장ì �ì�„ ì�´ìš©í•´ì•¼ ì§„ì •í•œ OOP입니다.
ì�´ 글ì�„ 보는 ë¶„ì—�게 í•˜ê³ ì‹¶ì�€ ë§�ì�€ 위ì�˜ 요지와 함께 한 ëª…ì œê°€ ì°¸ì�´ë�¼ê³ ê·¸ ëª…ì œì�˜ ì—ì�´ 반드시 ì°¸ì�€ 아니ë�¼ëŠ”ì �ê³¼ ì•„ ë‹¤ë¥´ê³ ì–´ 다르다ë�¼ëŠ” ë§�ë�„ 함께 í•´ì£¼ê³ ì‹¶ë„¤ìš”ã…Ž
ê·¸ë¦¬ê³ ì € ë˜�한 오늘 ì‹¤ì œ ë””ìž�ì�¸ì—�서 Drawable로 GUI를 로ì§�ì—�서 ì™„ì „ížˆ 분리시킨 것ì�„ ë³´ê³ ë‹¤ì‹œ 한번 ì¶”ìƒ�í™”ì—� 대한 공부가 ë�˜ì—ˆìŠµë‹ˆë‹¤. 앞으로 ì¶”ìƒ�화하는 법ì�„ 좀 ë�” ì�µí˜€ì•¼ê² ì–´ìš”. - ê¹€í™�기









