nosmokmoin 으로 ë³€ê²½ì‹œì— ì´ íŽ˜ì´ì§€ê°€ ì—러가 ë°œìƒí•˜ëŠ” 대표ì ì¸ ì˜ˆì´ë‹¤. ì´ ì™¸ì—ë„ ["Vim"] ë„ ì—러가 ë°œìƒí•œë‹¤. {{{~cpp Smalltalk 배우기 #4 1998. 11. 27. ê¹€ì°¬í™ mailto:andrea92@hitel.net ====================================== 1. Smalltalkì˜ ì†Œê°œ 1.1. 프로그램과 í”„ë¡œê·¸ëž˜ë° ì–¸ì–´ 1.2. Smalltalkì˜ ì„¤ì¹˜ 1.3. Smalltalk 맛보기 프로그램 1.4. 몇 가지 준비해야 í• ê²ƒë“¤ →1.5. Smalltalk 환경 둘러보기 1.5.1. ì•Œë¦¼íŒ 1.5.2. ì¼í„° 1.5.3. ê°ì²´ íƒìƒ‰ê¸° 1.5.4. 갈래씨줄 íƒìƒ‰ê¸° 1.5.5. 길수 íƒìƒ‰ê¸° 1.5.6. 꾸러미 íƒìƒ‰ê¸° 1.5.7. 창맵씨 1.5.8. ìžì› íƒìƒ‰ê¸° 1.5.9. ë°œìžì·¨ 창과 ë²Œë ˆìž¡ê°œ ........ ======================================= 1. Smalltalkì˜ ì†Œê°œ ------------------------------ 1.5. Smalltalk 환경 둘러보기 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Smalltalk를 실행해 ë³´ë©´ 최소한 ë‘ ê°œì˜ ì°½ì´ ì—´ë ¤ 있ìŒì„ ë³¼ 수 있습니다. 하나는 "System Transcript"ë¼ëŠ” ì œëª©ì´ ë¶™ì–´ìžˆëŠ” "알림íŒ"(transcript)ì´ ìžˆê³ , 나머지 하나는 "untitled - workspace"ë¼ëŠ” ì œëª©ì´ ë¶™ì—¬ì§„ "ì¼í„°"ê°€ 그것입니다. ë¬¼ë¡ Smalltalk 환경ì—는 ì´ ë‘ ê°€ì§€ ì°½ ë§ê³ ë„ ë‹¤ë¥¸ 여러 가지 ì˜ ì°½ì´ ìžˆìŠµë‹ˆë‹¤. ê°ê°ì€ ì €ë§ˆë‹¤ì˜ ë…특한 쓰임새를 ê°€ì§€ê³ ìžˆìœ¼ë©°, ì´ë“¤ì€ ëª¨ë‘ Smalltalkë¡œ í”„ë¡œê·¸ëž¨ì„ ì§œëŠ”ë° ê¼ í•„ìš”í•œ ì—í• ì„ ìˆ˜í–‰í•©ë‹ˆë‹¤. ì´ì œ ì´ ë§ˆë””[節]ì—서는 Smalltalkì—는 ì–´ë–¤ ì°½ë“¤ì´ ìžˆìœ¼ë©° ì´ë“¤ì´ 대충 ì–´ ë–¤ ì¼ì„ 하는지를 알아봄으로ì¨, Smalltalk í™˜ê²½ì˜ íŠ¹ì§•ë“¤ì„ ì—¬ëŸ¬ë¶„ì´ ê°„ë‹¨ 히 알아볼 수 있ë„ë¡ í•˜ê² ìŠµë‹ˆë‹¤. ê° ì°½ë“¤ì— ëŒ€í•´ì„œ ë‚˜ì¤‘ì— í•„ìš”í• ë•Œ 좀 ë” ìžì„¸í•˜ê²Œ ì„¤ëª…í• ê²ƒìž…ë‹ˆë‹¤. 여기서는 그냥 ì´ëŸ¬ì´ëŸ¬í•œ ì°½ì´ ìžˆìœ¼ë©°, 대충 ì´ ë ‡ê²Œ ìƒê²¼êµ¬ë‚˜ 하는 ì •ë„만 ì´í•´í•˜ë„ë¡ í•©ì‹œë‹¤. ì•„ì§ê¹Œì§€ ìžë£Œì‹¤ì—ì„œ Dolphin Smalltalk를 내리받아 설치하지 ì•Šìœ¼ì‹ ë¶„ì´ë¼ ë©´ 지금부터는 조금 ìš©ëŸ‰ì´ ë§Žê¸°ëŠ” 하ë”ë¼ë„ Smalltalk í™˜ê²½ì„ ë‚´ë¦¬ë°›ì•„ì„œ 공부를 계ì†í•˜ì‹œë¼ê³ 권합니다. 세ìƒì€ 멀티미디어화 ë˜ì–´ê°€ê³ 있지만 ì•„ì§ ë„ ìš°ë¦¬ì˜ ì •ê²¨ìš´ í†µì‹ í™˜ê²½ì€ íŒŒëž€ ë°”íƒ•ì— í°ìƒ‰ 글ìžë§Œ 나타낼 수 있기 ë•Œ 문ì—, ê·¸ë¦¼ì„ ê³ë“¤ì´ê³ ì‹¶ì€ í•„ìžì˜ ê°„ì ˆí•œ 마ìŒì´ ë°˜ì˜ë˜ì§€ 못하기 때문입 니다. :) 1.5.1. ì•Œë¦¼íŒ ------------- Smalltalk 환경ì—ì„œ 가장 중요한 ì°½ì€ "알림íŒ"(transcript)입니다. ì›ëž˜ 'transcript'ë¼ëŠ” 낱ë§ì˜ ëœ»ì€ 'ë² ê»´ë‚¸ 것, 사본, 등본'ì¸ë°, Smalltalk를 ê¹Šì´ ê³µë¶€í•˜ì§€ 못한 í•„ìžë¡œì¨ëŠ” 왜 transcriptë¼ëŠ” 낱ë§ì´ ì´ ì°½ì— ë¶™ê²Œ ë˜ ì—ˆëŠ”ì§€ë¥¼ ì´í•´í•˜ê¸°ê°€ ì–´ë µìŠµë‹ˆë‹¤. ì•„ë¬´ëž˜ë„ Smalltalk ì‹œìŠ¤í…œì˜ ìƒíƒœê°€ ì´ ì°½ì— ê·¸ëŒ€ë¡œ ë°˜ì˜ë˜ê¸° ë•Œë¬¸ì´ ì•„ë‹Œê°€ ìƒê°í•©ë‹ˆë‹¤. 여하튼 ì´ ì°½ì€ Smalltalk 환경ì—ì„œ 가장 중요한 창입니다. ì´ ì°½ì´ ì—´ë¦¼ìœ¼ ë¡œì¨ ë°”ë¡œ Smalltalk í™˜ê²½ì´ ì‹œìž‘ë˜ëŠ” 것ì´ê³ , ì´ ì°½ì´ ë‹«íž˜ìœ¼ë¡œì¨ Smalltalkê°€ 종료ë˜ëŠ” 것입니다. 즉 ì´ ì°½ì€ Smalltalk 환경과 ë™ê³ ë™ë½í•œë‹¤ ê³ í•´ë„ ê³¼ì–¸ì´ ì•„ë‹ ì •ë„ë¡œ, Smalltalk í™˜ê²½ì´ ì‹¤í–‰ë˜ì–´ 있다면 ì–¸ì œë“ ì§€ ì—´ë ¤ìžˆëŠ” 창입니다. ì´ ì°½ì€ ë’¤ì—ì„œ ì„¤ëª…í• 'ì¼í„°'(workspace)와 비슷한 ê¸°ëŠ¥ì„ í•©ë‹ˆë‹¤. 그러나 알림íŒì´ 'ì¼í„°'와 구별ë˜ëŠ” 가장 í° íŠ¹ì„±ì€, Smalltalk 환경ì—ì„œ 사용ìžì— 게 ì•Œë ¤ì•¼ í• ê²ƒì´ ìžˆìœ¼ë©´ ì–¸ì œë“ ì§€ ì´ ì°½ì— í‘œì‹œëœë‹¤ëŠ” 것입니다. í”„ë¡œê·¸ëž¨ì„ ì‹¤í–‰í•˜ëŠ”ë° ì¤‘ëŒ€í•œ ìž˜ëª»ì´ ìƒê²¼ë‹¤ê±°ë‚˜, 새로운 꾸러미를 불러왔 다거나 ì´ë¯¸ ìžˆë˜ ê¾¸ëŸ¬ë¯¸ë‚˜ ê°ì²´ë¥¼ 지울 ë•Œ ë¬¸ì œê°€ 있었다는 등 ì´ ì•Œë¦¼íŒì— 는 Smalltalk í™˜ê²½ì´ ìš°ë¦¬ì—게 ì•Œë ¤ì•¼ í• ì—¬ëŸ¬ 가지 사í•ë“¤ì´ 기ë¡ë©ë‹ˆë‹¤. ë¬¼ë¡ ì—¬ëŸ¬ë¶„ì´ ì´ ì•Œë¦¼íŒì— 지시를 ë³´ë‚´ì–´ ì—¬ëŸ¬ë¶„ë§Œì˜ ê¸€ì¤„ì„ ì°ê²Œ í• ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤ë§Œ, ê·¸ê²ƒì€ ì¡°ê¸ˆ 뒤로 ë¯¸ë£¨ê² ìŠµë‹ˆë‹¤. Smalltalk í™˜ê²½ì„ ë낼 ë•Œ File > Exit Dolphin ëª…ë ¹ì„ ë‚´ë¦¬ëŠ” ëŒ€ì‹ ì•Œë¦¼íŒ ì„ ë‹«ê²Œ ë˜ë©´ Smalltalk í™˜ê²½ì„ ë낼 수 있습니다. 1.5.2. ì¼í„° ----------- ì¼í„°(workspace)란 Smalltalk 환경ì—ì„œ ì•Œë¦¼íŒ ë‹¤ìŒìœ¼ë¡œ 중요한 창입니다. ì—¬ëŸ¬ë¶„ì€ ì¼í„°ì—ì„œ ë¬´ì—‡ì„ í•©ë‹ˆê¹Œ? :) ì¼ì„ 하지요? ì¼ì— ì„±ê²©ì— ë”°ë¼ ì¢€ 다 ë¥´ê² ì§€ë§Œ, ëª¸ì„ ë§Žì´ ì›€ì§ì—¬ì•¼ 하는 ì¼ì´ë¼ë©´, ë•€ì„ í˜ë¦¬ë©´ì„œ ë¬¼ê±´ì„ ë‚˜ë¥´ê¸° ë„ í•˜ê³ ë›°ê¸°ë„ í•˜ë©´ì„œ ì´ ì¼í„°ë¥¼ 누빕니다. 머리를 쓰는 ì¼ì´ë¼ë©´ ì´ ì¼í„° ì—ì„œ ê¸€ì„ ì“°ê¸°ë„ í•˜ê³ ì§€ìš°ê¸°ë„ í•©ë‹ˆë‹¤. ì—¬ëŸ¬ë¶„ì´ íšŒì‚¬ì˜ ì‚¬ìž¥ì´ë¼ë©´ ì¼í„° ì—ì„œ 아랫사람들ì—게 여러 가지 지시를 내립니다. ê·¸ë¦¬ê³ ì§€ì‹œë¥¼ ë°›ì€ ì‚¬ëžŒ ë“¤ì€ ìžì‹ ì´ ì²˜ë¦¬í•œ ì¼ì˜ 결과를 사장ì—게 ë˜ëŒë ¤ ë³´ë‚´ì¤ë‹ˆë‹¤. ì´ë ‡ë“¯ ì¼í„° 는 분주한 곳입니다. Smalltalkì˜ ì¼í„° ë˜í•œ 마찬가지입니다. 여기서 ì—¬ëŸ¬ë¶„ì€ ê¸°ë³¸ì 으로 ê¸€ì„ ì“¸ 수 있습니다. ì´ ê¸€ì´ Smalltalkì—게 내리는 ëª…ë ¹ì´ ë ìˆ˜ë„ ìžˆê³ , ëª…ë ¹ ì„ ì„¤ëª…í•˜ëŠ” í’€ì´ê¸€ì´ ë ìˆ˜ë„ ìžˆìœ¼ë©°, 그냥 아무런 관계없는 ê¸€ì´ ë ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. ì¼í„°ì—ì„œ ì—¬ëŸ¬ë¶„ì€ Smalltalkì—ì„œ ëª…ë ¹ì„ ë‚´ë¦¬ê³ ê·¸ 결과를 시험합니다. ê·¸ ë¦¬ê³ í”„ë¡œê·¸ëž¨ì˜ ì–´ë–¤ ë¶€ë¶„ì„ ë§Œë“¤ê¸° ì „ì— ì—¬ê¸°ì„œ 기본ì 으로 여러 가지 명 ë ¹ì„ ë‚´ë ¤ë´„ìœ¼ë¡œì¨ ë…¼ë¦¬ë¥¼ 세워 나갈 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 새로운 ì¼í„°ë¥¼ 만들기 위해서는 File > New 메뉴를 사용하거나, ë„구 모ìŒì— ì„œ "í° ì¢…ì´ê°€ ê·¸ë ¤ì§„ 그림"ì„ ëˆ„ë¥´ë©´ ë©ë‹ˆë‹¤. 알림íŒì´ ì˜¤ì§ í•˜ë‚˜ë°–ì— ì¡´ìž¬ í• ìˆ˜ ì—†ëŠ”ë° ë¹„í•´, ì¼í„°ëŠ” ì—¬ëŸ¬ë¶„ì´ í•„ìš”í•œ ìˆ˜ë§Œí¼ ë§Žì´ ë§Œë“¤ 수 있습니다. ê·¸ë¦¬ê³ ê°ê°ì˜ ì¼í„°ì— 기ë¡ëœ ê¸€ë“¤ì„ ë”°ë¡œë”°ë¡œ ì €ìž¥í•˜ê±°ë‚˜ 불러올 수 있습니 다. 그러므로 ì–´ë–¤ ëª…ë ¹ì„ ì‹¤í–‰í•œ ë’¤ì— ë‚˜íƒ€ë‚˜ëŠ” 여러 가지 결과와 ë”불어 ì—¬ëŸ¬ë¶„ì´ ë‚´ë¦° ëª…ë ¹ì„ ë”°ë¡œ í•˜ë‚˜ì˜ íŒŒì¼ë¡œ ì €ìž¥í•´ 둘 수 있다는 ë§ìž…니다. ì•žì„œ 우리는 알림íŒì— 지시를 ë‚´ë¦¼ìœ¼ë¡œì¨ ìš°ë¦¬ê°€ ì›í•˜ëŠ” ê¸€ì¤„ì„ ì°ì„ 수 있 ë‹¤ê³ í–ˆìŠµë‹ˆë‹¤. 그럼 다ìŒê³¼ ê°™ì´ ëª…ë ¹í•´ ë³´ì‹ì‹œì˜¤. ê¸€ì‡ ë¥¼ 사용해 ì„œ 아래 ëª…ë ¹ì„ ì‹¤í–‰í•˜ì‹ì‹œì˜¤. (Smalltalk ëª…ë ¹ì„ ì‹¤í–‰í•˜ëŠ” ë°©ë²•ì— ì–´ë ¤ì›€ì„ ê²ªëŠ” 분ì´ë¼ë©´ "1.3" 마디를 참조하시기 ë°”ëžë‹ˆë‹¤.) Transcript show: '안녕하세요?'. ☞ 안녕하세요? "알림íŒì— ì´ ë‚´ìš©ì´ í‘œì‹œëœë‹¤." ---<ìž ê¹!>---------------------------------------------------------- ë² ë¼ê¸°ëŠ” 하지 맙시다! 앞으로 ì´ ê¸€ì„ ì§„í–‰í•˜ë©´ì„œ 무수히 ë§Žì€ Smalltalkì˜ ëª…ë ¹ì´ ì†Œê°œë 것입니 다. 그래서 ì €ëŠ” 여러분ì—게 부íƒì„ 드릴까 합니다. ì´ ê¸€ì—ì„œ ì œê³µë˜ëŠ” Smalltalk ëª…ë ¹ì„ ë³µì‚¬í•˜ì—¬ ì¼í„°ì— 붙여 넣어서 실행하 시지 ë§ì•˜ìœ¼ë©´ 하는 ê²ƒì´ ì œ 부íƒìž…니다. 좀 번거ë¡ë”ë¼ë„ 지금 ì—¬ëŸ¬ë¶„ì´ ì½ê³ 있는 ëª…ë ¹ì„ ê·¸ëŒ€ë¡œ ì¼í„°ì— ê¸€ì‡ íŒìœ¼ë¡œ ì³ ë„£ê³ ì‹¤í–‰í•˜ì—¬ 결과를 관찰하는 ê²ƒì´ í›¨ì”¬ 좋습니다. 단순히 복사해서 붙 ì—¬ 넣는 것 보다 ì‹¤ì œë¡œ ê¸€ì‡ íŒì—ì„œ ëª…ë ¹ì„ ì¹˜ê²Œ ë˜ë©´, ì´ ê¸€ì—ì„œ ì¼ë‹¨ ëª…ë ¹ ì„ ì½ì–´ì„œ ë¨¸ë¦¬ì— ê¸°ì–µë˜ê²Œ ë˜ê³ , ê¸°ì–µëœ ê²ƒì„ ê¸€ì‡ íŒìœ¼ë¡œ 치면서 ì¼í„°ì— 나 타난 ëª…ë ¹ì„ ë³´ê²Œ ë˜ê³ , ëª…ë ¹ì„ ì‹¤í–‰í•˜ë©´ì„œ 세 번째로 ëª…ë ¹ì„ ë³´ê²Œ ë©ë‹ˆë‹¤. 그러나 ëª…ë ¹ì„ ë³µì‚¬í•˜ê³ ë¶™ì´ëŠ” ê²ƒì€ ì „í˜€ ì´ëŸ¬í•œ 효과를 ë³¼ 수가 없습니다. ê¸€ì„ ì–´ë–»ê²Œ ì½ê³ 어떻게 실행하는지는 ì „ì 으로 여러분ì—게 ë‹¬ë ¤ìžˆìŠµë‹ˆë‹¤. 그러나 좀 ë” íš¨ê³¼ì ì¸ ê³µë¶€ë¥¼ 위해서는 ëª¨ë“ Smalltalk ëª…ë ¹ì„ ì—¬ëŸ¬ë¶„ì´ ìŠ¤ 스로 ì³ ë„£ìœ¼ë©° 실행해야 합니다. 맹목ì 으로 ëª…ë ¹ì„ ì³ ë„£ëŠ” ê²ƒì´ ì•„ë‹ˆë¼, ë„대체 ì´ ëª…ë ¹ì´ ì–´ë–¤ ì˜ë¯¸ì¸ì§€ë¥¼ ìƒê°í•˜ë©´ì„œ ìž…ë ¥í•˜ë©´ Smalltalk 공부는 ìƒê° 외로 매우 쉬워질 것입니다. ì´ëŠ” í•„ìžê°€ ì²˜ìŒ "Smalltalk Tutorial"ì„ ê³µë¶€í• ë•Œ ì§ì ‘ 경험한 것ì´ë¯€ë¡œ, í•œ 번 ë¯¿ì–´ë³´ì…”ë„ ì¢‹ì„ ê²ƒìž…ë‹ˆë‹¤. ---------------------------------------------------------- 어떻습니까? 방금 실행한 ëª…ë ¹ì˜ ê²°ê³¼ê°€ 그대로 알림íŒì— 나타났습니다. ì´ ë ‡ê²Œ ì¼í„°ì—ì„œ ì—¬ëŸ¬ë¶„ì€ Smalltalkì—게 ëª…ë ¹ì„ ë‚´ë¦´ 수 있습니다. ë˜í•œ ë‹¤ìŒ ê³¼ ê°™ì€ ëª…ë ¹ì„ ì‚¬ìš©í•˜ì—¬ ì¼í„°ì— ëª…ë ¹ì˜ ìˆ˜í–‰ 결과를 ì¶œë ¥í• ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 3 + 4. ☞ 7 ì´ì²˜ëŸ¼ ì¼í„°ëŠ” ì—¬ëŸ¬ë¶„ì˜ Smalltalk 프로그래ë°ì— 있어서 가장 ìžì£¼ ì ‘í•˜ê²Œ ë˜ëŠ” ì°½ì´ë¯€ë¡œ, ê·¸ 사용 ë°©ë²•ì„ í™•ì‹¤ížˆ ìµí˜€ë‘는 ê²ƒì´ ì¢‹ì„ ê²ƒìž…ë‹ˆë‹¤. ì°¸ê³ ë¡œ ì¼í„°ì—ì„œ í• ìˆ˜ 있는 ëŒ€ë¶€ë¶„ì˜ ì¼ì„ 알림íŒì—ì„œë„ í• ìˆ˜ 있습니다. ê·¸ë ‡ì§€ë§Œ 관례ì 으로 Smalltalkì—ì„œ ëŒ€ë¶€ë¶„ì˜ ìž‘ì—…ì€ ì•Œë¦¼íŒì´ ì•„ë‹Œ ì¼í„°ì— ì„œ 수행합니다. 알림íŒì—는 주로 알림 사í•ì´ 기ë¡ë˜ë„ë¡ í•˜ê³ , Smalltalk 환경 ì „ì²´ì— ì˜í–¥ì„ 줄 ëª…ë ¹ì´ ìžˆë‹¤ë©´ ì´ '알림íŒ'ì—ì„œ 실행하는 ê²ƒì´ ê´€ë¡€ ë¡œ ë˜ì–´ 있습니다. 1.5.3. ê°ì²´ íƒìƒ‰ê¸° ------------------ ê°ì²´ íƒìƒ‰ê¸°(object inspector)는 ëª…ë ¹ì„ ì‹¤í–‰í• ë–„ 나 글 ì‡ ëŒ€ì‹ ê¸€ì‡ ë¥¼ ì‚¬ìš©í• ë•Œ 나타나는 창입니다. ì´ ì°½ì€ ê¸°ë³¸ì 으로 복잡한 구조를 ê°€ì§€ê³ ìžˆëŠ” ê°ì²´ì˜ ë‚´ìš©ì„ ì¢€ ë” ìž˜ê²Œ 쪼개어 íƒìƒ‰í•˜ê¸° 편리 하ë„ë¡ ë§Œë“¤ì–´ì§„ ë„구입니다. ì•žì—ì„œ 우리가 íƒìƒ‰ê¸°ë¥¼ 사용한 예를 ìƒê°í•´ ë³´ì‹ì‹œì˜¤. ì•„ëž˜ì˜ ëª…ë ¹ì€ Smalltalk í™˜ê²½ì— ë“¤ì–´ 있는 ëª¨ë“ ê°ˆëž˜(class)ë“¤ì„ ê°€ë‚˜ë‹¤ 순서로 ëŠ˜ì–´ë†“ì€ ëª¨ë“¬ì„ ë˜ëŒë¦¬ëŠ” ëª…ë ¹ìž…ë‹ˆë‹¤. Class allClasses asSortedCollection ☞ "ê°ì²´ íƒìƒ‰ê¸° 열림" ìœ„ì˜ ëª…ë ¹ì„ ê¸€ì‡ ë¡œ 실행해 ë³´ë©´ "Inspecting a SortedCollection" ì´ë¼ëŠ” ì œëª©ì´ ë¶™ì€ ì°½ì´ ì—´ë¦´ 것입니다. ìœ„ì˜ ëª…ë ¹ì„ ì‹¤í–‰í•˜ê²Œ ë˜ë©´ 500 ê°œ ê°€ 넘는 ì›ì†Œë“¤ì´ 들어 있는 ëª¨ë“¬ì´ ê²°ê³¼ê°’ìœ¼ë¡œ ëŒì•„오게 ë˜ëŠ”ë° ì´ë¥¼ 좀 ë” ì‰½ê²Œ íƒìƒ‰í•˜ê¸° 위해서는 ê°ì²´ íƒìƒ‰ê¸°ë¥¼ 사용하는 ê²ƒì´ íŽ¸ë¦¬í•©ë‹ˆë‹¤. ê°ì²´ íƒìƒ‰ê¸°ëŠ” ë‘ ë¶€ë¶„ìœ¼ë¡œ ì´ë£¨ì–´ì§€ëŠ”ë°, 왼쪽ì—는 ê·¸ ê°ì²´ì— ì†í•´ìžˆëŠ” 부 분 ë¶€ë¶„ë“¤ì˜ ì´ë¦„ì´ í‘œì‹œë˜ê³ , 오른쪽ì—는 현재 ë‹ì´ëœ ë¶€ë¶„ì˜ ê°’ì´ í‘œì‹œë© ë‹ˆë‹¤. 맨 ìœ„ì˜ "self"는 íƒìƒ‰í•˜ê³ 있는 ê°ì²´ ìžì‹ ì„ ë‚˜íƒ€ëƒ…ë‹ˆë‹¤. ê°ì²´ íƒìƒ‰ê¸°ëŠ” 복잡한 êµ¬ì¡°ì˜ ê°ì²´ë¥¼ 효율ì 으로 ë“¤ì—¬ë‹¤ë³´ëŠ”ë° ë§¤ìš° í° ëª«ì„ í•˜ê³ ìžˆìŠµë‹ˆë‹¤. 1.5.4. 갈래씨줄 íƒìƒ‰ê¸° ---------------------- ìž, ì—¬ëŸ¬ë¶„ì´ ì§€ê¸ˆ ì–´ë””ì— ìžˆë˜ì§€ Tools > Class Hierarchy Browser 메뉴를 실행시키거나 ê¸€ì‡ íŒì—ì„œ 를 누르면 '갈래씨줄 íƒìƒ‰ê¸°'Class Hierarchy Browser)를 불러낼 수 있습니다. 갈래씨줄 íƒìƒ‰ê¸°ë¥¼ 줄여서 '갈래 íƒìƒ‰ê¸°'ë¼ê³ ë„ ë¶€ë¦…ë‹ˆë‹¤. 갈래는 홀로 ë–¨ì–´ì ¸ì„œ 있는 ê²ƒì´ ì•„ë‹ˆë¼ ë‹¤ë¥¸ 갈래와 관계를 ë§ºê³ ìžˆëŠ”ë°, ì´ ê°ˆëž˜ì”¨ì¤„ íƒìƒ‰ê¸°ëŠ” ì´ëŸ¬í•œ ê°ˆëž˜ë“¤ì˜ ì”¨ì¤„(hierarchy)ì„ ì§šì–´ê°€ë©° 갈래들 ì„ íƒìƒ‰í• ë•Œ 사용하는 ë„구입니다. ëª¨ë‘ í¬ê²Œ ë‚´ 부분으로 ì´ë£¨ì–´ì§„ 갈래 íƒìƒ‰ê¸°ê°€ 매우 복잡해 ë³´ì´ê² 지만, ì´ ì°½ì— ìµìˆ™í•´ì§ˆ 때쯤ì´ë©´ ì—¬ëŸ¬ë¶„ì€ Smalltalkì˜ ì ˆë°˜ ì´ìƒì„ 공부한 ì…ˆì´ ë©ë‹ˆë‹¤. Smalltalkì—서는 ëª¨ë“ ê²ƒì´ ê°ì²´ìž…니다. 그러므로 프로그래ë°ì„ í• ë•Œì—ë„ ì´ëŸ¬í•œ ê°ì²´ë¥¼ 사용하거나 아니면 새로 만들어야 합니다. ì´ ì¼ì„ ì´ '갈래 íƒìƒ‰ê¸°'ì—ì„œ í• ìˆ˜ 있기 때문ì—, 'ì¼í„°'와 ë”불어 프로그래ë°ì„ í• ë•Œ 가장 ìžì£¼ 사용ë˜ëŠ” ë„구ì´ê¸°ë„ 합니다. 1.5.5. 길수 íƒìƒ‰ê¸° ------------------ 우리가 Smalltalkì—게 ì–´ë–¤ ëª…ë ¹ì„ ë‚´ë¦¬ë©´ Smalltalk는 길수(method)를 ë’¤ì ¸ ì„œ ì´ ëª…ë ¹ì„ ì–´ë–»ê²Œ ì‹¤í–‰í•´ì•¼í• ì§€ë¥¼ 알아냅니다. 길수 íƒìƒ‰ê¸°ëŠ” ì´ëŸ¬í•œ 길 ìˆ˜ë“¤ì„ ë”°ë¡œ 모아서 íƒìƒ‰í• ë•Œ ì“°ì´ëŠ” ë„구입니다. 다ìŒì˜ ëª…ë ¹ì€ ê¸¸ìˆ˜ ì¤‘ì— ì„œ 'Dolphin'ì´ë¼ëŠ” 낱ë§ì´ 들어간 ê²ƒì„ ì§€ê¸ˆ ì“°ê³ ìžˆëŠ” 본(image)ì—ì„œ 죄다 찾아내는 ëª…ë ¹ìž…ë‹ˆë‹¤. 약 3M ì´ìƒ ë˜ëŠ” 바탕글(source code)ì—ì„œ 글귀를 ì°¾ 는 것ì´ë¯€ë¡œ 몇 ì´ˆ ì •ë„ ì‹œê°„ì´ ê±¸ë¦½ë‹ˆë‹¤. SmalltalkSystem current browseContainingSource: 'Dolphin' ☞ "길수 íƒìƒ‰ê¸° 열림" ìƒê°ë³´ë‹¤ ë§Žì€ ê¸¸ìˆ˜ì— "Dolphin"ì´ë¼ëŠ” 글귀가 í¬í•¨ë˜ì–´ìžˆìŠµë‹ˆë‹¤. ì´ ê¸¸ìˆ˜ íƒìƒ‰ê¸°ëŠ” í¬ê²Œ ë‘ ë¶€ë¶„ìœ¼ë¡œ ë‚˜ëˆ„ì–´ì ¸ 있습니다. 위쪽 ì°½ì—는 길수 ì´ë¦„ë“¤ì´ í‘œì‹œë˜ì–´ ìžˆê³ ê°ê°ì˜ 길수를 ë‹ì´í• 수 있ë„ë¡ ë˜ì–´ìžˆìŠµë‹ˆë‹¤. ê·¸ë¦¬ê³ ì•„ëž˜ 쪽 ì°½ì—는 위쪽 ì°½ì—ì„œ ë‹ì´ë˜ì–´ìžˆëŠ” ê¸¸ìˆ˜ì˜ ë°”íƒ•ê¸€ì´ í‘œì‹œë©ë‹ˆë‹¤. 길수 íƒ ìƒ‰ê¸°ëŠ” ì•žì„œ ë§í•œ 것과 ê°™ì´ ì£¼ë¡œ 여러 갈래(class)ì—ì„œ ì¡°ê±´ì— ë§žëŠ” 길수를 뽑아내어 ë‚´ìš©ì„ ì‚´íŽ´ë³´ê³ ìž í• ë•Œ 사용합니다. 1.5.6. 꾸러미 íƒìƒ‰ê¸° -------------------- Smalltalk í™˜ê²½ì˜ Tools > Package Browser 메뉴를 ì„ íƒí•˜ë©´ 꾸러미 íƒìƒ‰ê¸° 를 ì—´ 수 있습니다. 꾸러미(package)ì—는 Smalltalkì˜ ê°ˆëž˜, ê°ì²´, ìžì› (resource) ë“±ì´ í•¨ê»˜ ê¾¸ë ¤ì ¸ì„œ 들어있습니다. 주로 꾸러미는 í•˜ë‚˜ì˜ ì»¤ë‹¤ëž€ í”„ë¡œê·¸ëž¨ì„ ë§Œë“¤ ë•Œ, ê·¸ 프로그램과 ê´€ê³„ëœ ì—¬ëŸ¬ 가지 ê°ì²´ë“¤ì„ ë„£ì–´ë†“ê³ ê´€ 리하기 위해서 사용ë©ë‹ˆë‹¤. 꾸러미 íƒìƒ‰ê¸°ëŠ” ì´ëŸ¬í•œ 꾸러미를 새로 만들거나 ì´ë¯¸ ìžˆë˜ ê¾¸ëŸ¬ë¯¸ë¥¼ 들여오거나, 지우거나 ê³ ì¹˜ëŠ” ì¼ì„ 합니다. 꾸러미 íƒìƒ‰ê¸°ëŠ” í¬ê²Œ 세 부분으로 ë˜ì–´ìžˆìŠµë‹ˆë‹¤. ì™¼ìª½ì— ì„¸ë¡œë¡œ 길게 ë˜ì–´ 있는 ì°½ì€ í˜„ìž¬ Dolphin Smalltalk í™˜ê²½ì— ì„¤ì¹˜ë˜ì–´ìžˆëŠ” ê¾¸ëŸ¬ë¯¸ë“¤ì„ ëŠ˜ì–´ë†“ ëŠ ê²ƒìž…ë‹ˆë‹¤. 오른쪽 ìœ—ë¶€ë¶„ì€ í˜„ìž¬ ê¾¸ëŸ¬ë¯¸ì— ë“¤ì–´ìžˆëŠ” ê²ƒë“¤ì„ ì‚´íŽ´ë³´ê¸° 위 í•œ 곳으로ì¨, 갈래, 길수, ë„“ì€ ê¼¬ë¦¬í‘œ(global variables), ìžì› ë“±ì„ ê°ê° 따로따로 ë³¼ 수 있는 ê³ ë¦„(tab)ì´ ë‹¬ë ¤ìžˆìŠµë‹ˆë‹¤. 오른쪽 ì•„ëž«ë¶€ë¶„ì€ ìœ„ì—ì„œ ë‹ì´ëœ ë‚´ìš©ì„ ì‹¤ì œë¡œ 보여주는 곳입니다. 갈래가 ë‹ì´ë˜ì–´ìžˆë‹¤ë©´ 갈래꼴 (class definition)ì„, 길수가 ë‹ì´ë˜ì–´ 있다면 바탕글 ë“±ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. 꾸러미 íƒìƒ‰ê¸°ëŠ” Smalltalk 환경ì—ì„œ 움ì§ì´ëŠ” ëª¨ë“ ê°ì²´ë¥¼ 관리하는 매우 중요한 ë„구입니다. 1.5.7. 창맵씨 ------------- 창맵씨(View Composer)는 ì‚¬ìš©ìž ì ‘ì† í™˜ê²½(User Interface)를 만드는 ë„구 입니다. Tools > View Composer 메뉴를 ì„ íƒí•˜ë©´ ì´ ì°½ì„ ì—´ 수 있습니다. 여기서 ì—¬ëŸ¬ë¶„ì€ ì°½(window)ì´ë‚˜ 대화 ìƒìž(Dialog box)를 만들어서 프로그 ëž¨ì„ ì‚¬ìš©í•˜ëŠ” 최종사용ìžê°€ ìžë£Œë¥¼ ìž…ë ¥í• ìˆ˜ 있ë„ë¡ í•´ ì¤ë‹ˆë‹¤. ë„“ì€ ë¶€ë¶„ì´ ì‹¤ì œë¡œ ì°½ì„ ì„¤ê³„í• ë•Œ 사용하는 부분ì´ê³ , ì•„ëž˜ì— ìœ„ì¹˜í•œ 세 ê°œì˜ ì°½ì€ ê°ê° 현재 ì°½ì˜ ë¼ˆëŒ€, 현재 ì„ íƒëœ ê°ì²´ê°€ 가지는 ê¼´(aspect), ê·¸ ë¦¬ê³ ë°”ë¡œ ì™¼ìª½ì— ë‹ì´ë˜ì–´ìžˆëŠ” ê¼´ì´ ê°–ê³ ìžˆëŠ” ê°’ì„ í‘œì‹œí•˜ëŠ” 부분입니다. 창맵씨ì—는 '연모통'(tool box)ë¼ê³ 하는 ë”¸ë¦¼ì°½ì´ ë– ìžˆìŠµë‹ˆë‹¤. ì´ ì°½ì—는 ì°½ì„ ë§Œë“¤ ë•Œ 필요한 여러 가지 부품 ìžì›ì´ 들어있습니다. 글씨 꼬리표 (label), ìž…ë ¥ ìƒìž(edit box), 단추(push button)는 ë¬¼ë¡ ì´ë¯¸ 만들어진 ì°½ ë„ ì—¬ê¸°ì— í‘œì‹œë©ë‹ˆë‹¤. Delphi나 Visual Basicì—서는 ì°½ì„ ì„¤ê³„í•˜ëŠ” ê²ƒì— ìƒë‹¹ížˆ ë§Žì€ ë¹„ì¤‘ì„ ë‘¡ë‹ˆ 다. ë¬¼ë¡ Smalltalkì—ì„œë„ ì°½ 만들기는 매우 중요한 위치를 차지하지만, 기 본ì 으로 ì°½ì„ ì„¤ê³„í•˜ê¸° ì „ì— ë¨¼ì € ê°ì²´ë¥¼ 만들어야 합니다. ë”°ë¼ì„œ 앞으로 창맵씨를 사용하기까지 참으로 긴 ì—¬ì •ì´ ì—¬ëŸ¬ë¶„ì„ ê¸°ë‹¤ë¦¬ê³ ìžˆì„ ê²ƒìž…ë‹ˆë‹¤. 1.5.8. ìžì› íƒìƒ‰ê¸° ------------------ Tools > Resource Browser를 ì„ íƒí•˜ë©´ ìžì› íƒìƒ‰ê¸°ë¥¼ ì—´ 수 있습니다. ì•žì„œ 창맵씨를 설명하면서 '연모통'ì— ëŒ€í•´ì„œ ì´ì•¼ê¸°í•œ ì ì´ ìžˆìŠµë‹ˆë‹¤. ì—°ëª¨í†µì€ ì°½ì„ ë§Œë“¤ ë•Œ 쓸 수 있는 여러 가지 부품 ìžì›ë“¤ì´ ë“¤ì–´ìžˆë‹¤ê³ í–ˆëŠ”ë°, ìžì› íƒìƒ‰ê¸°ëŠ” ì´ëŸ¬í•œ ìžì›ì„ 관리하는 ì¼ì„ 합니다. 새로운 ìžì›ì„ 만들거나 ì´ ë¯¸ 있는 ìžì›ì˜ ì´ë¦„ì„ ë°”ê¾¸ê¸°ë„ í•˜ê³ , ìžì›ì´ ì—°ê²°ëœ ê°ˆëž˜ì˜ ìƒíƒœë¥¼ 바꾸기 ë„ í•©ë‹ˆë‹¤. 창맵씨와 ë”불어 ìžì› íƒìƒ‰ê¸°ë„ ì‚¬ìš©ìž ì ‘ì† í™˜ê²½ì„ ë§Œë“œëŠ”ë° ë§¤ ìš° 중요한 ì—í• ì„ ìˆ˜í–‰í•˜ê³ ìžˆìŠµë‹ˆë‹¤. 1.5.9. ë°œìžì·¨ 창과 벌래잡개 --------------------------- ì‚¬ëžŒì€ ëˆ„êµ¬ë‚˜ 실수를 í•˜ê¸°ë§ˆë ¨ìž…ë‹ˆë‹¤. ì €ë„ ê·¸ë ‡ê³ ì—¬ëŸ¬ë¶„ë„ ê·¸ëŸ´ ê²ë‹ˆë‹¤. Smalltalkì—게 ëª…ë ¹ì„ ë‚´ë¦´ ë•Œì—ë„ ì—¬ëŸ¬ë¶„ì´ë‚˜ ì €ë‚˜ 실수를 í• ë•Œê°€ 있습니 다. "ë°œìžì·¨ ì°½"(walkback window)ì€ Smalltalk í”„ë¡œê·¸ëž¨ì´ ì‹¤í–‰ë˜ëŠ” ìƒíƒœì— ì„œ ì–´ë–¤ 중대한 ë¬¸ì œê°€ ë°œìƒí–ˆì„ ë•Œ, 지금까지 ì–´ë–¤ ê¸¸ìˆ˜ë“¤ì´ ì–´ë–»ê²Œ ì‹¤í–‰ë˜ ì–´ì™”ëŠ”ì§€ì˜ ìžì·¨ë¥¼ í‘œì‹œí•˜ê³ , 사용ìžê°€ ì•Œë§žì€ ì¡°ì¹˜ë¥¼ ì·¨í• ìˆ˜ 있ë„ë¡ ë•ëŠ” 창입니다. ì•„ëž˜ì˜ ëª…ë ¹ì„ ê¸€ì‡ ë¡œ 실행시켜 봅시다. 5 hello ☞ "ë°œìžì·¨ ì°½ 열림" 위 ëª…ë ¹ì„ ì‹¤í–‰í•˜ìžë§ˆìž "SmallInteger does not understand #hello"ë¼ëŠ” ì œ ëª©ì´ ë¶™ì€ ë°œìžì·¨ ì°½ì´ í‘œì‹œë 것입니다. ì´ ë‚´ìš©ì¸ì¦‰ìŠ¨ "SmallInteger는 helloë¼ëŠ” 지시를 알아듣지 못했다"는 것입니다. 즉 "5 hello"ë¼ëŠ” ëª…ë ¹ì„ Smalltalkê°€(ì •í™•ížˆëŠ” ìˆ«ìž '5'ê°€) 알아듣지 못했다는 ë§ìž…니다. ê·¸ë¦¬ê³ ì•„ëž˜ì— ë‚˜íƒ€ë‚œ ìž‘ì€ ìƒìž ì•ˆì— ì—¬íƒœê¹Œì§€ ëª…ë ¹ì„ ì‹¤í–‰í•œ ë°œìžì·¨ë¥¼ í‘œ 시합니다. --------------------------------------- SmallInteger(Object)>>doesNotUnderstand: UndefinedObject>>{unbound}doIt CompiledExpression>>value: SmalltalkWorkspace>>evaluateRange:ifFail: SmalltalkWorkspace>>evaluateItIfFail: SmalltalkWorkspace>>evaluateIt ....(하략) --------------------------------------- 여러분 ëŒ€ë¶€ë¶„ì´ ì•„ì§ ìœ„ì˜ ë‚´ìš©ì´ ë¬´ì—‡ì„ ì˜ë¯¸í•˜ëŠ”지 ì •í™•í•˜ê²Œ ì´í•´í•˜ì§€ 못 í–ˆì„ ê²ƒìž…ë‹ˆë‹¤. 그러나 Smalltalkì— ìµìˆ™í•œ ì‚¬ëžŒë“¤ì€ ìœ„ì˜ ì •ë³´ë¥¼ ë³´ê³ , 대 ì²´ ì–´ë–¤ 경로를 ë”°ë¼ì„œ ëª…ë ¹ì´ ì‹¤í–‰ë˜ì—ˆìœ¼ë©° 어디서 ë¬¸ì œê°€ ë°œìƒí—€ëŠ”지를 추 ì¸¡í• ìˆ˜ 있게 ë©ë‹ˆë‹¤. ë¬¼ë¡ ëŒ€ë¶€ë¶„ì˜ ê²½ìš°ëŠ” ë°œìžì·¨ ì°½ì˜ ì œëª©ë§Œ ë³´ê³ ì„œë„ ë¬¸ì œì˜ ì›ì¸ì„ íŒŒì•…í• ìˆ˜ 있습니다. 지금과 ê°™ì€ ê²½ìš°ì—는 우리가 내린 ëª…ë ¹ ì„ ì•Œì•„ë“£ì§€ 못했다는 ê²ƒì´ ë¬¸ì œì´ê² 지요. ì´ ë°œìžì·¨ ì°½ì˜ ì•„ëž˜ìª½ì— ë„¤ ê°œì˜ ë‹¨ì¶”ê°€ 있습니다. ì´ ì¤‘ì—ì„œ ì€ ë¬¸ì œë¥¼ ë¬´ì‹œí•˜ê³ ê³„ì† í”„ë¡œê·¸ëž¨ì„ ì‹¤í–‰ì‹œí‚¬ ë•Œ ì“°ê³ , 는 지금 실 행시킨 ëª…ë ¹ ì‹¤í–‰ì„ ëë‚´ë¼ëŠ” 것ì´ê³ , 마지막으로 ì€ í˜„ìž¬ 실행ë˜ê³ 있는 ëª…ë ¹ì— ëŒ€í•œ ì •ë³´ë¥¼ 깡그리 ì§€ì›Œë²„ë¦¬ê³ ëª…ë ¹ ì‹¤í–‰ì„ ì¤‘ë‹¨í• ë•Œ 사용합 니다. 여기서 단추를 누르면 "ë²Œë ˆìž¡ê°œ"(debugger) ì°½ì´ ë‚˜ì˜µë‹ˆë‹¤. ì´ ì°½ ì€ ì—¬ëŸ¬ ê°œì˜ ëª…ë ¹ì„ í•˜ë‚˜ì”© 하나씩 실행하면서 ëª…ë ¹ì„ ì‹¤í–‰í• ë•Œ 마다 바뀌 는 여러 ê°ì²´ì˜ ìƒíƒœë¥¼ 관찰하면서 ë¬¸ì œì˜ ì›ì¸ì„ íƒìƒ‰í• ë•Œ 사용하는 ë„구 입니다. 쉽게 ë§í•´ì„œ, íƒì •ë“¤ì´ ì‚¬ê±´ì´ ì¼ì–´ë‚œ ê²ƒì„ ë˜ì§šìœ¼ë©´ì„œ ì›ì¸ì„ 찾는 것과 ë¹„ìŠ·í•˜ë‹¤ê³ í•˜ê² ìŠµë‹ˆë‹¤. ë²Œë ˆìž¡ê°œ ì°½ì€ ê·¸ 구조와 ë™ìž‘ì´ ë§¤ìš° 복잡하 게 ì´ë£¨ì–´ì ¸ 있어서, Smalltalkì—ì„œ ëª…ë ¹ì´ ì–´ë–¤ ë°©ì‹ìœ¼ë¡œ 실행ë˜ëŠ”지를 ì•Œ 아야만 ì œëŒ€ë¡œ í™œìš©í• ìˆ˜ 있는 ë„구입니다. 그러므로 ì§€ê¸ˆì€ ë‹¨ìˆœížˆ ë²Œë ˆìž¡ 개가 ì´ëŸ° 것ì´êµ¬ë‚˜ ì •ë„로만 ì´í•´í•´ ë‘ë©´ ë 것입니다. ë‚˜ì¤‘ì— ë²Œë ˆìž¡ê°œë¥¼ 어떻게, ì–¸ì œ, 왜 사용해야 í•˜ëŠ”ì§€ì— ëŒ€í•´ì„œ ìžì„¸í•˜ê²Œ ì´ì•¼ê¸°í• 기회가 ìžˆì„ ê²ƒìž…ë‹ˆë‹¤. ---<ìž ê¹!>---------------------------------------------------------- 다른 Smalltalkì—서는... 기본ì 으로 ëª¨ë“ Smalltalk í™˜ê²½ì€ ì•Œë¦¼íŒê³¼ ì¼í„°, 갈래씨줄 íƒìƒ‰ê¸°, ê°ì²´ íƒìƒ‰ê¸°, ë°œìžì·¨ ì°½, ë²Œë ˆìž¡ê°œë¥¼ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤. ê·¸ë¦¬ê³ ì—¬ê¸°ì— ë”í•´ì„œ ê° ê°ì˜ Smalltalk마다 조금씩 다른 ê¸°ëŠ¥ì„ ê°€ì§€ëŠ” ì°½ì´ ì¶”ê°€ë˜ì–´ 있습니다. Dolphinì˜ ê²½ìš° 꾸러미 íƒìƒ‰ê¸°ë‚˜ 창맵씨, ìžì› íƒìƒ‰ê¸°ê°€ 있으며, Smalltalk Expressë¼ëŠ” Smalltalk 환경ì—서는 Disk Browserê°€ ìžˆë‹¤ê³ í•©ë‹ˆë‹¤. ---------------------------------------------------------- ---<ìž ê¹!>---------------------------------------------------------- Windows와 ê°™ì´ ê·¸ë¦¼ ìœ„ì£¼ì˜ ì‚¬ìš©ìž í™˜ê²½(GUI)ì—서는 마우스가 필수ì ì¸ ìž… ë ¥ìž¥ì¹˜ë¡œ ìƒê°ë˜ê³ 있습니다. ë¬¼ë¡ ì´ê²ƒì€ 맞는 ë§ìž…니다. 그러나 마우스가 ì–¸ì œë‚˜ 편한 ê²ƒë§Œì€ ì•„ë‹™ë‹ˆë‹¤. ì–´ë–¤ 때는 ê¸€ì‡ íŒì´ 마우스보다 íŽ¸í• ê²½ìš°ê°€ 있으니까요. Smalltalkë¡œ ìž‘ì—…ì„ í•˜ë‹¤ë³´ë©´ 여러 ê°œì˜ ì°½ì´ ì—´ë ¤ìžˆê³ ê°ê°ì˜ ì°½ì„ ì™”ë‹¤ê°” 다해야 하는 ì¼ì´ 잦습니다. ì´ëŸ´ ë•Œ ì¼ì¼ì´ ìž‘ì—… í‘œì‹œì¤„ì— ìžˆëŠ” ì°½ ì œëª©ì„ ëˆŒëŸ¬ì„œ ì´ë™í•˜ëŠ” 것보다는 ì´ë‚˜ ê¸€ì‡ ë¥¼ 눌러서 ì´ ë™í•˜ëŠ” ê²ƒì´ í›¨ì”¬ 편합니다. ê¸€ì‡ ë¥¼ 누른 ìƒíƒœì—ì„œ ê¸€ì‡ ë¥¼ 눌러 ë³´ì‹ì‹œì˜¤. ê·¸ë¦¬ê³ ê¸€ì‡ ì—ì„œ ì†ì„ 떼어 ë³´ì‹ì‹œì˜¤. 그러면 화면 ê°€ìš´ë° ìž‘ì€ ì°½ì´ ëœ¨ê³ , 현재 ì—´ë ¤ 있는 ì°½ë“¤ì´ í‘œì‹œë 것입니다. ì€ ì˜¤ë¥¸ 쪽으로 ì´ë™í•˜ê³ , ì€ ì™¼ìª½ìœ¼ë¡œ ì´ë™í•©ë‹ˆë‹¤. ì´ëŠ” Windows 3.1 때부터 ìžˆë˜ 'ìž‘ì—… ì „í™˜'기능ì¸ë°, 특히 Smalltalk처럼 ë§Žì€ ì°½ì„ ê°€ì§€ ê³ ìž‘ì—…í•´ì•¼ í• ë•Œ 편리하게 ì‚¬ìš©í• ìˆ˜ ìžˆì„ ê²ƒìž…ë‹ˆë‹¤. ---------------------------------------------------------- ========================================================== 지금까지 우리는 Smalltalk란 대체 ì–´ë–¤ 언어ì´ê³ , 어떻게 ë™ìž‘하며, ë˜í•œ Smalltalk í™˜ê²½ì„ ì–´ë–»ê²Œ ì„¤ì¹˜í•˜ê³ ìœ ì§€í•˜ëŠ”ì§€ì— ëŒ€í•´ì„œ 알아보았습니다. ê·¸ ë¦¬ê³ Smalltalk í™˜ê²½ì´ ì–´ë–»ê²Œ ìƒê²¼ëŠ”ì§€ë„ ë‘˜ëŸ¬ë³´ì•˜ìŠµë‹ˆë‹¤. ì´ ê³¼ì •ì—ì„œ ìš° 리는 몇 가지 짧지만 Smalltalkì˜ íŠ¹ì§•ì´ ìž˜ 드러난 몇 ê°œì˜ ëª…ë ¹ë“¤ì„ ì‹¤í–‰ í•´ 봄으로ì¨, Smalltalk í™˜ê²½ì— ì¹œí•´ì§ˆ 수 있ë„ë¡ í–ˆìŠµë‹ˆë‹¤. ì´ì œ 여기까지 온 ì—¬ëŸ¬ë¶„ì€ Smalltalk í™˜ê²½ì— ëŒ€í•´ì„œ ì–´ëŠ ì •ë„ ìµìˆ™í•´ 있어 야 합니다. Smalltalk를 ì‹œìž‘í•˜ê³ ëë‚´ê³ , ëª…ë ¹ì„ ë‚´ë¦¬ëŠ” ì¼ ë“±ì€ Smalltalk 를 공부하면서 가장 기본ì 으로 ì•Œê³ ìžˆì–´ì•¼ í• ì‚¬í•ë“¤ì´ê¸° 때문입니다. ì´ì œ ì´ëŸ° ê²ƒë“¤ì„ ë°”íƒ•ìœ¼ë¡œ ë‹¤ìŒ ê°€ë¦„[ç« ]ì—서부터는 Smalltalk 언어와 ê°ì²´ì§€í–¥ ì— ëŒ€í•´ì„œ 본격ì 으로 알아보ë„ë¡ í•˜ê² ìŠµë‹ˆë‹¤. 계ì†... }}} ---- ["SmallTalk/강좌FromHitel"]