~cpp
����������������������������������������
ì œ 목:[강좌] Smalltalk 배우기 #2 ê´€ë ¨ìž�료:ì—†ì�Œ
보낸�:김찬�(안드래아) 1998-11-23 10:40 조회:392 1/34
───────────────────────────────────────
Smalltalk 배우기 #2
1998. 11. 22. 김찬�
mailto:andrea92@hitel.net
======================================
1. Smalltalk� 소개
1.1. 프로그램과 프로그래� 언어
→1.2. Smalltalk� 설치
1.3. Smalltalk 맛보기 프로그램
........
=======================================
1. Smalltalk� 소개
------------------------------
───────────────────────────────────────
1.2. Smalltalk� 설치
~~~~~~~~~~~~~~~~~~~~~
Smalltalk를 사용하여 프로그램ì�„ 짜기 위해서는 ìš°ì„ ì—¬ëŸ¬ë¶„ì�˜ 시스템ì—�
Smalltalk 환경� 설치�어있어야 합니다. �단 우리들� Object Arts사�
Dolphin Smalltalk를 ì‚¬ìš©í• ê²ƒì�´ë¯€ë¡œ, ìž�료실ì—�서 Dolphin Smalltalk를 ë‚´
리받�시다.
ì›�래 Dolphin Smalltalk는 ìƒ�용과 공개용 Smalltalk 환경ì�„ ê°™ì�´ ë°°í�¬í•˜ê³
있습니다. Dolphin Smalltalk 1.1�� 공개용�며, 2.1�� �용입니다. 현
재 í•„ìž�ê°€ ì‚¬ìš©í•˜ê³ ìžˆê³ ë˜�한 ìž�료실ì—� ì˜¬ë ¤ì§„ 환경ì�€ 1.1íŒ�입니다. 그러므
로 여러분ì�´ 마ì�ŒëŒ€ë¡œ ì „ì†¡ 받아서 ì‚¬ìš©í• ìˆ˜ 있ì�„ 것입니다.
ì›�래 Object Artsì—�서 ì œê³µí•˜ëŠ” ë°°í�¬íŒ�ì�˜ 파ì�¼ ì�´ë¦„ì�€ Dolphin981Setup.Exe
ì�´ì§€ë§Œ, ìž�료실ì�˜ 파ì�¼ëª… 길ì�´ ì œí•œ 때문ì—� 위ì�˜ 실행 파ì�¼ì�„ 다시 WinZip으
로 압축하여 올린 것입니다. 그러므로 Dolphin Smalltalk를 설치하기 위해서
는 다ì�Œê³¼ ê°™ì�€ ê³¼ì •ì�„ 거치면 ë�©ë‹ˆë‹¤.
1. �료실�서 Dolphin Smalltalk와 Dolphin Education Center를 찾
아서 내리받으ì‹ì‹œì˜¤.
2. 내리받� 파�� zip 압축파��므로 WinZip 등과 같� 긴 파�
ì�´ë¦„ì�„ ì§€ì›�하는 ì••ì¶• 프로그램ì�„ 사용하여 ì••ì¶•ì�„ 푸ì‹ì‹œì˜¤.
3. ì••ì¶•ì�´ 풀리면 실행 파ì�¼ 하나가 나오는ë�°, ì�´ê²ƒì�„ 실행시키ì‹ì‹œ
오. �� 풀림 파��므로 실행파�� 실행하면 바로 설치 화면
으로 넘어갑니다.
4. 다른 ì�‘ìš© 프로그램ì�„ ì„¤ì¹˜í• ë•Œì²˜ëŸ¼ 그냥 <Next> 단추를 누르면
바로 바로 넘어갑니다. ê³ ì¹ ì‚¬í•ì�´ 있는 사람ì�´ë�¼ë©´ 알맞게 ê³
치면 �니다.
5. 설치를 마무리하면 Dolphin Smalltalk� 바로 가기를 시작 메뉴
ì—� ë„£ì�„ 것ì�¸ê°€ë¥¼ 묻습니다. 여러분ì�´ 알아서 하면 ë� 것입니다.
ì�´ë ‡ê²Œ 하면 설치ì�˜ ì „ ê³¼ì •ì�´ 다 ë��나게 ë�©ë‹ˆë‹¤. 특별히 ì„¤ì •í•´ 줄 것ì�´ ì—†
기 때문ì—� 매우 쉽게 설치를 í• ìˆ˜ 있ì�„ 것입니다. 나중ì—� 필요하다면 ì–¸ì œ
ë“ ì§€ Dolphin Smalltalk를 ì œì–´íŒ�ì�˜ "프로그램 추가/ì‚ì œ"를 통해서 ì œê±°í•
수 있습니다.
Dolphin Smalltalk를 시작하기 위해서는 "시작 → 프로그램 → Dolphin
Smalltalk 98"� 가리킨 다� 안� 들어있는 "Dolphin Smalltalk 98" 아�콘
� 실행하면 �니다.
---<ìž ê¹�!>-----------------------------------------------------------
처ì�Œ Dolphin Smalltalk를 설치하여 ì‹¤í–‰í• ë•Œì—� 화면ì—� ê²½ê³ ìƒ�ìž�ê°€ 나타납
니다. 대강ì�˜ ë‚´ìš©ì�€, 지금 ì‚¬ìš©í•˜ê³ ìžˆëŠ” Dolphin Smalltalk는 ì•„ì§� 등ë¡�
ì ˆì°¨ë¥¼ 거치지 않았기 때문ì—� 프로그램ì�˜ 실행 결과를 ì €ìž¥í• ìˆ˜ 없다는 것
입니다. ì €ìž¥ 기능ì�„ ì‚¬ìš©í•˜ë ¤ë©´ Object Arts사ì—�서 무료로 배부하는 등ë¡�
번호를 발급 받아야 하는�, �� 관해서는 조금 뒤� �세히 설명합니다.
--------------------------------------------------------------------
1.3. Smalltalk 맛보기 프로그램
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ì�´ì œ Smalltalkì�˜ 설치를 마쳤으므로 설치ë�œ Smalltalk 환경ì�„ 실행시켜 ë´…
시다. 그러면 "Transcript"와 "Workspace"ë�¼ëŠ” ì œëª©ì�„ 가진 ë‘� ê°œì�˜ ì°½ì�´ 뜰
것입니다. ì�´ ë‘� ê°œì�˜ ì°½ì�€ 모ë‘� Smalltalkì�˜ ëª…ë ¹ì–´ë¥¼ 실행시킬 수 있는 기
능ì�„ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤. 그러나 지금 우리가 주목해야 í• ì°½ì�€ 'Untitled -
Workspace'�는 �름� 가진 창입니다. � 창�는 아마 "Welcome to Dolphin
Smalltalk/98"ì�´ë�¼ëŠ” í�° ì œëª©ê³¼ 함께 ì œë²• 긴 문장들ì�´ 들어 있ì�„ 것입니다.
� 문장들�는 여러분� Smalltalk 프로그램� 실행하는� �숙해지��, 그
ë¦¬ê³ Smalltalk 프로그래ë°�ì—� 대한 í�¥ë¯¸ë¥¼ ëŠ�ë‚„ 수 있ë�„ë¡� 짤막한 Smalltalk
프로그램들ì�´ ì‹¤ë ¤ 있습니다. ì�´ì œ 여기서는 ì�´ ì°½ì—� 들어 있는 Smalltalk
프로그램ì�„ ì‹¤í–‰í•˜ê³ ê·¸ 결과를 알아보는 방법ì�„ 알아봄으로ì�¨, Smalltalk
ëª…ë ¹ì�˜ 실행방법과 Smalltalk 프로그래ë°�ì�˜ ìƒ�김새를 ì–´ëŠ� ì •ë�„ íŒŒì•…í• ìˆ˜
있게 í•˜ê² ìŠµë‹ˆë‹¤.
여러분ì�´ ë³´ê³ ìžˆëŠ” Workspace를 "ì�¼í„°"ë�¼ê³ 부릅니다. 여기는 여러분ì�´
Smalltalk 시스템ì—� ëª…ë ¹ì�„ 내리거나, ì�´ë¯¸ 만들어진 프로그램ì�˜ 결과를 확
�하는 곳입니다. �터는 '메모장'�나 '워드패드'와 비슷한 �작 방법� 가
ì§€ê³ ìžˆìŠµë‹ˆë‹¤. 즉 í�”히 사용하는 í…�스트 문서 편집기와 비슷한 ë�™ìž‘ ë°©ì‹�ì�„
ê°€ì§€ê³ ìžˆë‹¤ëŠ” ë§�입니다.
� 창� 여러분� 마�대로 글� 쓸 수 있으며, ��(block)를 씌워서 한 번
ì—� 여러 ê°œì�˜ 글ìž�들ì�„ 복사 ë˜�는 ì�´ë�™í• 수 있습니다. 단지 ì�¼í„°ê°€ ì�¼ë°˜ í…�
스트 편집기와 다른 ì �ì�€, ì�´ê³³ì—�는 Smalltalkì�˜ ëª…ë ¹ë“¤ì�´ ë“¤ì–´ê°€ê³ , ì�´ 명
ë ¹ì�„ ì‹¤í–‰í• ìˆ˜ 있다는 것입니다.
ì�¼ë‹¨ 마우스나 ê¸€ì‡ íŒ�으로 밀대(scroll bar)를 사용해서 아래와 ê°™ì�€ 문장ì�´
ë³´ì�´ë�„ë¡� 화면ì�„ 아래로 ë§�ì•„ 내리ì‹ì‹œì˜¤.
----------------------------------------------------------
"First evaluated by Smalltalk in October 1972, and by Dolphin in
February 1995. With a bit of luck the answer will be 7."
3 + 4.
----------------------------------------------------------
위ì—� ë³´ì�´ëŠ” 문장ì�€ Smalltalkì—�서 ì‹¤í–‰í• ìˆ˜ 있는 ëª…ë ¹ìž…ë‹ˆë‹¤. ì�´ 위ì�˜ 다
른 문장들ì�€ Smalltalkì�˜ ëª…ë ¹ì�„ ì–´ë–¤ ë°©ì‹�으로 실행하는 것ì�¸ì§€, ê·¸ë¦¬ê³ ì‹¤
í–‰ 결과를 어떻게 얻어낼 수 있는지ì—� 대해서 ì„¤ëª…í•˜ê³ ìžˆìŠµë‹ˆë‹¤.
ìž�, ì�´ì œë¶€í„° 우리는 Smalltalk ëª…ë ¹ì�„ ë‚´ë ¤ë³´ê²Œ ë� 것입니다. ë°©í–¥ ê¸€ì‡ ë¥¼
�용하여 커서를
3 + 4.
ê°€ 있는 줄로 ì�´ë�™í•˜ì‹ì‹œì˜¤. '.' 바로 ë’¤ì—� 커서를 위치시키는 것입니다.
ì�´ì œ ê¸€ì‡ íŒ�ì—�서 <Ctrl-D>를 누르ì‹ì‹œì˜¤. ê·¸ë¦¬ê³ í™”ë©´ì�„ 살펴봅시다. 커서가
놓였� �리� ��(block)가 씌워진 "7"��는 글�가 나타났습니다.
3 + 4. ☞ 7
여기서 ë�©ì�´ì—� 둘러싸ì�¸ 체로 나타난 "7"ì�€ 방금 우리가 실행시킨 ëª…ë ¹ì�˜ ê²°
과입니다. "3 + 4"ë�¼ëŠ” ëª…ë ¹ì�„ 실행하였ë�”니 "7"ì�´ë�¼ëŠ” 결과가 나왔다는 ë§�
입니다.
ì�´ì²˜ëŸ¼ Smalltalkì—�서는 ëª…ë ¹ì�„ 실행하면 ê·¸ 결과가 ì–¸ì œë‚˜ ë�©ì�´ê°€ 씌워진
체로 나타납니다. ë”°ë�¼ì„œ ì�´ ìƒ�태ì—�서 바로 ê¸€ì‡ íŒ�ì�˜ <Delete> ê¸€ì‡ ë‚˜ <Back
Space>ê¸€ì‡ ë¥¼ ì�´ìš©í•˜ì—¬ ë�©ì�´ë¥¼ 지우게 ë�˜ë©´, ë�©ì�´ê°€ 씌워진 ëª…ë ¹ì�˜ 실행 ê²°
ê³¼ë�„ ì—시 지워지게 ë�˜ëŠ” 것입니다.
방금 우리가 실행한 ëª…ë ¹ì�€ 1972ë…„ 10ì›”ì—� Smalltalk 시스템ì—�게 처ì�Œìœ¼ë¡œ
ë‚´ë ¤ì§„ ëª…ë ¹ì�´ë�¼ê³ 합니다. Object Arts사는 1995ë…„ 2ì›”ì—� ìž�사ì�˜ Dolphin
Smalltalkì—�서 ì�´ ëª…ë ¹ì�„ 실행했다는군요.
ì�´ì œ 다ì�Œ ëª…ë ¹ì�„ ì‹¤í–‰í• ì°¨ë¡€ìž…ë‹ˆë‹¤.
200 factorial.
위ì�˜ 문장 ë��ì—� 커서를 갖다 ë†“ê³ , 앞서 사용했ë�˜ <Ctrl-D> ê¸€ì‡ ë¥¼ 사용해서
ëª…ë ¹ì�„ 실행시켜봅시다. 어떻게 ë�˜ì—ˆìŠµë‹ˆê¹Œ?
200 factorial.
☞788657867364790503552363213932185062295135977687173263294742533244359
44996340334292030428401198462390417721213891963883025764279024263710506
19266249528299311134628572707633172373969889439224456214516642402540332
91864131227428294853277524242407573903240321257405579568660226031904170
32406235170085879617892222278962370389737472000000000000000000000000000
0000000000000000000000
지금 여러분ì�€ 200!, 즉 200ì�˜ 계승ì�„ 구한 것입니다. ì •ë§� 어마어마한 ìž�릿
수� 결과가 산출�었습니다. 대단하지 않습니까? 아마 C++나 Java 언어�서
기본으로 ì œê³µí•˜ëŠ” 기능만으로 위와 ê°™ì�€ 결과를 ì–»ìœ¼ë ¤ë©´ ìƒ�당한 ë…¸ë ¥ì�´ í•„
요했� 것입니다.
---<ìž ê¹�!>----------------------------------------------------------
계승?
계승(階乘, factorial)ì�´ëž€ nì�´ 하나ì�˜ ìž�연수ì�¼ 때, 1ì—�서 n까지ì�˜ ëª¨ë“ ìž�
연수ì�˜ ê³±ì�„ nì—� 대하여 ì�¼ì»«ëŠ” ë§�입니다(한글학회, 1994, 우리ë§�í�°ì‚¬ì „).
�를테면 5!는 5x4x3x2x1, 즉 120� �는 것입니다.
----------------------------------------------------------
그럼 Smalltalk�서 200!� 구하는� 과연 얼마나 시간� 걸릴까요? 바로 다
ì�Œì�˜ ëª…ë ¹ì�„ 실행하면 결과를 알 수 있습니다. <Ctrl-D>를 사용하ì‹ì‹œì˜¤.
Time millisecondsToRun: [200 factorial]. ☞ 1
와우! 200!ì�„ 구하는ë�° 1msì •ë�„ì�˜ 시간밖ì—� 걸리지 ì•ŠëŠ”ë‹¤ê³ ê·¸ëŸ¬ëŠ”êµ°ìš”.
1ms초는 1000ë¶„ì�˜ 1ì´ˆì�´ë¯€ë¡œ, 매우 ë¹ ë¥¸ ì†�ë�„로 200!ì�„ êµ¬í• ìˆ˜ 있다는 것ì�„
알 수 있습니다.
좀 ë�” 세밀하게 ì¸¡ì •í• ìˆ˜ë�„ 있습니다. 다ì�Œ ëª…ë ¹ì�„ 실행해 ë³´ì‹ì‹œì˜¤. (ì�´ì œ
ê°� ëª…ë ¹ì�„ 실행하기 위해서는 해당 ëª…ë ¹ ë��ì—� 커서를 ìœ„ì¹˜í•˜ê³ <Ctrl-D>글ì‡
를 누른다는 것쯤ì�€ ê¸°ì–µí•˜ê³ ê³„ì‹œê² ì§€ìš”?)
Time microsecondsToRun: [200 factorial]. ☞ 1024
위ì�˜ ëª…ë ¹ì�€ 200!ì�„ 구하는ë�° 걸린 시간ì�„ 100ë§Œ ë¶„ì�˜ 1ì´ˆ 단위로 구하는 명
ë ¹ìž…ë‹ˆë‹¤. í•„ìž�ì�˜ 경우는 약 1024㎲ì�˜ 시간ì�´ ê±¸ë ¸ìŠµë‹ˆë‹¤. ë¬¼ë¡ ì—¬ê¸°ì„œ 여러
ë¶„ì�´ ì§�ì ‘ 실행했ì�„ 때ì�˜ 결과는 다를 수 있습니다. ì�´ 결과는 시간값ì�´ê¸°
때문ì—� ëª…ë ¹ì�„ ì‹¤í–‰í•˜ê³ ìžˆëŠ” 컴퓨터ì�˜ ì†�ë�„ì—� 매우 민ê°�하게 ë°˜ì�‘합니다.
여기서 중요한 것� �러한 시간값� 아닙니다. 필요하다면 Smalltalk�서는
100ë§Œ ë¶„ì�˜ 1ì´ˆ 단위로 ëª…ë ¹ 실행 시간ì�„ ì¸¡ì •í• ìˆ˜ 있다는 것ì�´ 중요한 것
�지요.
ì�´ì œ Smalltalkì�˜ 내부를 한 번 ë“¤ì—¬ë‹¤ë³´ê² ìŠµë‹ˆë‹¤. Smalltalk 환경ì—�는 ë§Žì�€
수ì�˜ ê°�ì²´(object)ê°€ 있으며, ì�´ë“¤ ê°�체는 ì €ë§ˆë‹¤ì�˜ 갈래(class)ì—� ì†�í•´ 있
습니다. 아래ì�˜ ëª…ë ¹ì�„ 실행시키면 현재 Smalltalk 환경ì—� ì–´ë–¤ 갈래들ì�´ 있
는지를 한 눈� 알 수 있습니다.
Class allClasses asSortedCollection.
☞ a SortedCollection(_FPIEEE_RECORD AbstractCardContainer
AbstractToTextConverter ACCEL AcceleratorPresenter AcceleratorTable
....(중략)....
DWORDBytes DWORDField EDITSTREAM ... etc ...
�번�� 참 많� 결과가 화면� 표시�었습니다. 그런� 맨 마지막 줄� 보
ì‹ì‹œì˜¤. "... etc ..."로 ë��났습니다. ì�´ëŠ” 지금 화면ì—� 표시ë�œ 것보다 훨씬
ë�” ë§Žì�€ 수ì�˜ 갈래가 존재한다는 ë§�입니다. ë˜�한 방금 실행한 ëª…ë ¹ì�˜ 결과를
ì œëŒ€ë¡œ 알아보기가 ì–´ë ¤ì› ìŠµë‹ˆë‹¤. 왜 그랬ì�„까요? 그것ì�€ 바로 갈래ì�˜ ì�´ë¦„
들� 그냥 줄줄� 늘어놓았기 때문입니다.
지금까지 살펴본 것처럼 Smalltalkì—�서 ì–´ë–¤ ëª…ë ¹ì�„ 실행한 ë’¤ì—�는 ì–¸ì œë‚˜
결과가 남습니다. 그 중�는 "3 + 4."� 경우와 같� 간단한 결과를 남기는
경우� 있지만 지금� 경우처럼 복잡한 결과를 남기는 경우� 많습니다.
ì�´ì™€ ê°™ì�´ 복잡한 결과를 좀 ë�” 쉽게 보기 위해서, 지금까지와는 다른 ëª…ë ¹
ì�˜ ëª…ë ¹ 실행 방법ì�´ 준비ë�˜ì–´ 있습니다.
위ì—�서 내린 ëª…ë ¹ì�„ 한 번 ë�” 실행해 봅시다. ì—시 ëª…ë ¹ì�˜ ë��ì—� 커서를 놓ê³
ê¸€ì‡ íŒ�ì—�서 <Ctrl-I>를 누르ì‹ì‹œì˜¤. <Ctrl-D>ê°€ 아니ë�¼ <Ctrl-I>ë�¼ëŠ” ì �ì�„
주ì�˜í•´ 주ì‹ì‹œì˜¤.
Class allClasses asSortedCollection. ☞ "Inspector 창 열림"
어떻습니까? "Inspecting a SortedCollection"ì�´ë�¼ëŠ” ì œëª©ì�˜ ì°½ì�´ 화면ì—� 나
타났습니다. 지금 나타난 창� "�체 �색기"(object inspector), 혹� 간단
히 "íƒ�색기"(inspector)ë�¼ê³ 부릅니다.
ì°½ì�˜ 왼쪽ì—�는 self부터 시작하여 몇 ê°œì�˜ í•목들ì�´ 있으며, ê·¸ ë°‘ì—�는 1,
2, 3,...처럼 번호가 ë§¤ê²¨ì ¸ 있습니다. ê·¸ë¦¬ê³ ì˜¤ë¥¸ìª½ì—�는 왼쪽ì—�서 ë�‹ì�´ë�œ
í•목ì�˜ 결과를 표시하는 부분ì�´ 있습니다. 처ì�Œì—�는 "self"ë�¼ëŠ” í•목ì�´ ì„ íƒ�
ë�˜ì–´ìžˆì�„ 것ì�´ê³ , 오른쪽ì—�는 방금 우리가 <Ctrl-D>로 ëª…ë ¹ì�„ 실행했ì�„ 때와
똑같� 결과가 나타났� 것입니다.
다른 í•목들ì�€ ë‚´ë²„ë ¤ë‘�ê³ , 1, 2, 3,...처럼 번호가 매겨진 í•목들ì�„ ë�‹ì�´í•´
봅시다. 그러면 ê°� í•목ì—� 하나씩ì�˜ 낱ë§�ì�´ 오른쪽 ì°½ì—� ë³´ì�¼ 것입니다. ì�´
것ì�´ 지금 Smalltalk 환경ì—�서 ì‚¬ìš©í• ìˆ˜ 있는 갈래(class)입니다. 맨 마지
막 í•목ì�€ ì�€ 몇 번입니까? í•„ìž�ì�˜ 경우는 567입니다. ê²°êµ ì�´ ë§�ì�€,
Smalltalk 시스템�는 500개가 넘는 갈래가 존재한다는 �입니다. 갈래들�
한 번 ì‰ í›‘ì–´ë³´ì•˜ìœ¼ë©´ ì�´ì œëŠ” ì—´ë ¤ìžˆëŠ” íƒ�색기를 닫으ì‹ì‹œì˜¤.
계ì†� ëª…ë ¹ì–´ë¥¼ 실행시켜봅시다. 아래ì�˜ ëª…ë ¹ì�€ Smalltalk 환경ì—� ë�„대체 몇
ê°œì�˜ ê°�ì²´(object)들ì�´ 존재하는지를 ë³´ì—¬ì¤�니다. <Ctrl-I>를 ì“°ì§€ ë§�ê³
<Ctrl-D>로 실행하ì‹ì‹œì˜¤.
Object allSubinstances size. ☞ 44121
í•„ìž�ì�˜ 경우ì—�는 44121ê°œì�˜ ê°�ì²´ê°€ ìžˆë‹¤ê³ ë³´ê³ ë�˜ì—ˆìŠµë‹ˆë‹¤. 여러분ì�˜ 경우ì—�
는 좀 다른 숫ìž�ê°€ ë‚˜íƒ€ë‚ ì§€ë�„ ëª¨ë¥´ê² ìŠµë‹ˆë‹¤ë§Œ, 여하튼 현재 ë�Œì•„ê°€ê³ ìžˆëŠ”
Smalltalk 환경ì—� ì �ì–´ë�„ 4만개가 넘는 ê°�체들ì�´ 서로 ë§¡ì�€ ë°” 임무를 수행
하면서 ë�Œê³ 있습니다.
'ê°�ì²´'니 '갈래'니 하는 ë§�ì�´ ìƒ�소하ì‹ë‹ˆê¹Œ? ì�´ì œë¶€í„° ì �ì � ëª…ë ¹ì�˜ ì�˜ë¯¸ë¥¼
파악하기가 ì–´ë ¤ì›Œì§‘ë‹ˆê¹Œ? ì „í˜€ ì‹ ê²½ 쓸 필요가 없습니다. Smalltalk를 공부
하면서 차차 ìž�세하게 알게 ë� 것ì�´ê¸° 때문입니다. 지금ì�€ 단지 Smalltalkì�˜
ëª…ë ¹ì�„ ì‹¤í–‰í•˜ê³ ê²°ê³¼ë¥¼ 알아보는 방법ì—�ë§Œ ì´ˆì �ì�„ 맞춥시다.
지금까지 우리는 몇 가지ì�˜ Smalltalk ëª…ë ¹ì�„ 실행해 보았습니다. 여기서
Smalltalk ëª…ë ¹ì�„ 실행하는 방법ì—� 대해서 지금까지 알아본 것ì�„ 간단하게
ì •ë¦¬í•˜ê³ ë„˜ì–´ê°€ë�„ë¡� í•˜ê² ìŠµë‹ˆë‹¤.
1. 실행해야 í• ëª…ë ¹ ë��ì—� 커서를 놓는다.
2. <Ctrl-D>ê¸€ì‡ ë¥¼ ìž…ë ¥í•˜ë©´ ëª…ë ¹ì�´ 실행ë�˜ê³ 결과가 나타난다.
3. 나타난 결과가 지나치게 복잡하면 <Ctrl-I>를 사용하여 "�색기"
를 통해서 결과를 살펴볼 수 있다.
ì •ë¦¬ê°€ ë�˜ì‹ë‹ˆê¹Œ? ì•„ì§�까지 ì�´í•´ê°€ 잘 안 가시는 분들ì�€ 여기서 ìž ì‹œ 휴ì‹�ì�„
취하ì‹ì‹œì˜¤. ê·¸ë¦¬ê³ ì²˜ì�Œë¶€í„° 차근차근 다시 한 번 ì œ 글ì�„ ë”°ë�¼ê°€ë©´ì„œ ëª…ë ¹
� 실행시켜 봅시다.
ìž�, 그럼 ì�´ì œ 다ì�Œì�˜ ëª…ë ¹ì�„ ì‹¤í–‰ì‹œì¼œë³´ê² ìŠµë‹ˆë‹¤.
<바탕글 1> 간단한 디지털 시계
digitalClockProcess := [[
Processor sleep: 1000.
(DesktopView current canvas)
font: (Font name: 'Arial' pointSize: 36) bold;
text: Time now printString at: 10@10;
free
] repeat] fork.
----------------------------------------------------------
지금까지 우리는 한 줄 짜리 Smalltalk ëª…ë ¹ì�„ 실행해 보았습니다. 그런ë�°
위ì�˜ <바탕글 1>ì�€ ì�¼ê³± 줄로 ì�´ë£¨ì–´ì§„ ëª…ë ¹ìž…ë‹ˆë‹¤. ì�´ ëª…ë ¹ì�„ 그럼 어떻게
ì‹¤í–‰í• ìˆ˜ 있ì�„까요?
방법ì�€ 간단합니다. 위ì�˜ ì�¼ê³± 줄ì—� 모ë‘� ë�©ì�´ë¥¼ 씌우ì‹ì‹œì˜¤. ë�©ì�´ë¥¼ 씌우는
방법�
1. 마우스를 �용하여 �어서 ��를 씌우는 방법.
2. ëª…ë ¹ì�˜ 첫 글ìž�ì—� 커서를 ë†“ê³ , <Shift>를 누르면서 ë°©í–¥ ê¸€ì‡ ë¥¼
�용하는 방법
등� 있습니다. 둘 중�서 여러분� 편리한 것� 골�서 사용하시기 바�니
다. 어쨌건 중요한 것ì�€ 위ì�˜ ì�¼ê³± 줄ì—�서 한 글ìž�ë�„ 빼놓지 ë§�ê³ ë�©ì�´ë¥¼ 씌
워야 한다는 것입니다.
ë�©ì�´ë¥¼ ì”Œì› ìœ¼ë©´ ì�´ì œëŠ” 앞ì—�서 한 것처럼 <Ctrl-D>를 ìž…ë ¥í•˜ì—¬ ëª…ë ¹ì�„ 실행
시켜 ë³´ê² ìŠµë‹ˆë‹¤. 어떻게 ë�˜ì—ˆìŠµë‹ˆê¹Œ?
<바탕글 1>
☞ a Process(a CompiledExpression, priority: 5, state: #ready)
�곱 줄� ��를 씌운 다� <Ctrl-D>를 누르�마� 위� 결과를 뿌리면서
화면 왼쪽 구�� �지막하게 현재 시간� 표시�는 것� 볼 수 있습니다.
시간ì�´ 나타나는 ìž�리ì—� 다른 그림ì�´ ê·¸ë ¤ì§€ë�”ë�¼ë�„ ê³§ ê·¸ 그림ì�€ 지워지ê³
ê·¸ ìž�리ì—� 시간ì�´ 나타납니다. 아주 í�¼ì§€ë§‰í•˜ê²Œ ë§�입니다. ê²°ê³¼ì �으로 <바탕
글 1>� 간단한 디지털 시계를 만들어서 화면� 보�는 프로그램�었습니다.
ê·¸ë ‡ì§€ë§Œ ì–¸ì œë‚˜ ì €ë ‡ê²Œ í�¼ì§€ë§‰í•œ 시계가 표시ë�˜ì–´ìžˆìœ¼ë©´ 때로는 ë¶ˆíŽ¸í• ë•Œ
ê°€ 있ì�„ 것입니다. ìž�, ì�´ì œ 우리가 방금 표시한 디지털 시계를 ì—†ì• ë�„ë¡� í•©
시다. 다ì�Œ ëª…ë ¹ì�„ 실행하ì‹ì‹œì˜¤. 한 줄 짜리 ëª…ë ¹ì�´ë¯€ë¡œ ë�©ì�´ë¥¼ 씌울 í•„ìš”
는 없습니다. 그냥 ëª…ë ¹ì�˜ ë��ì—� 커서를 ë†“ê³ <Ctrl-D>를 눌러보ì‹ì‹œì˜¤.
digitalClockProcess terminate. ï¿¢
UserLibrary default invalidate: nil lpRect: nil bErase: true.
☞ true
※ 줄 ë��ì—� 'ï¿¢' 표시가 ë�˜ì–´ 있는 것ì�€ 한 줄ì—� 쓸 수 있는 글ìž�수ì�˜ ì œí•œ
때문� 어쩔 수 없� � 줄 ��으로 갈�서 나타낸 것� �미합니다.
그러므로 � 표시가 있다는 것� 바로 다� 줄과 �어서 한 줄임� 나타
냅니다.
위ì�˜ ëª…ë ¹ì�„ 실행하면 여태ê»� 표시ë�˜ë�˜ 시계는 ì—†ì–´ì§€ê³ 'true'를 결과값으
로 받게 �니다.
앞서 우리는 ë‘� 가지 ëª…ë ¹ì�„ 실행해 보았습니다. 하나는 <바탕글 1>로ì�¨ í™”
ë©´ì—� 시계를 ë³´ì�´ëŠ” ëª…ë ¹ì�´ê³ , 나머지 하나는 ë�™ìž‘í•˜ê³ ìžˆëŠ” 시계를 멈추어
서 지우는 ëª…ë ¹ì�´ì—ˆìŠµë‹ˆë‹¤. 그런ë�° ì�´ ëª…ë ¹ì�„ 실행한 ë’¤ì—� 나타나는 결과값
� 무엇�었습니까? 둘 다 사실 우리�게는 별로 쓸모 없는 결과입니다. 우
리는 시계를 ë³´ì�´ê³ ì—†ì• ëŠ” 것ì�´ 중요하지, ì‹¤ì œë¡œ ì�´ ëª…ë ¹ì�´ 실행ë�˜ê³ 난
뒤� 어떤 결과를 �터� 표시하는지는 별로 관심� 없습니다.
ì�´ëŸ´ 때 Smalltalkì—�서 ëª…ë ¹ì�„ 실행하는 세 번째ì�˜ 방법ì�´ 있습니다. ì�´ê²ƒì�€
바로 <Ctrl-E> ê¸€ì‡ ìž…ë‹ˆë‹¤. ëª…ë ¹ì–´ë¥¼ ì‹¤í–‰í•˜ê³ ë‚˜ì„œ ë³´ê³ ë�˜ëŠ” 결과를 êµ³ì�´
ì�¼í„° 화면ì—� í‘œì‹œí•˜ê³ ì‹¶ì§€ 않ì�„ 때 사용합니다.
우리가 방금 실행했ë�˜ <바탕글 1>ê³¼ "UserLibrary"로 시작하는 ëª…ë ¹ì�„, ì�´ë²ˆ
ì—�는 <Ctrl-D> ëŒ€ì‹ <Ctrl-E>를 사용하여 실행시켜 ë³´ì‹ì‹œì˜¤. 한결 ê¹”ë�”하게
실행�는 것� 볼 수 있습니다.
ìž�, 다시 한 번 ì •ë¦¬í•©ì‹œë‹¤. Smalltalkì—�서 ëª…ë ¹ì�„ 실행하는 방법ì�€...
---<ì •ë¦¬>----------------------------------------------------------
Smalltalkì�˜ ëª…ë ¹ 실행법
* <Ctrl-D>: 가장 ì�¼ë°˜ì �ì�¸ 형태. ëª…ë ¹ì�„ ì‹¤í–‰í•˜ê³ ë‚˜ì„œ 결과를 ë³´ì�¸ë‹¤.
* <Ctrl-I>: ëª…ë ¹ì�„ ì‹¤í–‰í•˜ê³ ë‚œ 결과가 ë³µìž¡í• ë•Œ, 결과값ì�„ íƒ�색한다.
* <Ctrl-E>: ëª…ë ¹ 실행 ìž�ì²´ì—� ì�˜ë¯¸ê°€ ìžˆê³ ê²°ê³¼ëŠ” ë¬´ì‹œí•˜ê³ ì‹¶ì�„ 때 쓴다.
----------------------------------------------------------
---<다른 Smalltalk>---------------------------------------
Dolphin Smalltalkê°€ 아닌 다른 Smalltalk 환경ì�˜ 경우 ëª…ë ¹ 실행 방법ì�´ 다
를 수 있습니다. ì�¼ë‹¨ ì�´ì—� 대해서는 나중ì—� ëª…ë ¹ 실행ì�„ 중ì �ì �으로 다루는
마당ì—�서 ìž�세하게 ì„¤ëª…í• ê²ƒìž…ë‹ˆë‹¤.
----------------------------------------------------------
ìž�, 그럼 계ì†�해서 Smalltalkê°€ 어디까지 í• ìˆ˜ 있는지를 시험해 봅시다. ì•„
래 ëª…ë ¹ì�€ 여러분ì�´ ë“£ê³ ì‹¶ì�€ ì�Œì„±(wave) 파ì�¼ì�„ 연주해 ì¤�니다.
(Sound fromFile: 'xxxxx.wav') woofAndWait; woofAndWait.
위ì—�서 'xxxxx.wav'를 ìž�ì‹ ì�´ ì—°ì£¼í•˜ê³ ì‹¶ì�€ 파ì�¼ ì�´ë¦„으로 바꾸어 주면 ë�©
니다. 위ì�˜ ëª…ë ¹ ì—시 실행ë�œ 후ì�˜ 결과값 보다는 ëª…ë ¹ 실행 ìž�ì²´ê°€ 중요하
므로, <Ctrl-E>를 사용하여 실행시켜 봅시다. 필�는
(Sound fromFile: 'C:\Windows\Media\Ding.wav') woofAndWait; woofAndWait.
로 ê³ ì³�서 실행해 보았습니다. 여하튼 위ì�˜ ëª…ë ¹ì�€ 우리가 ì§€ì •í•œ ì�Œì„± 파ì�¼
� � 번 연주해 주는 �� 합니다. 우와! Smalltalk�서 멀티미디어까지???
다ì�Œ ëª…ë ¹ì�€ ì�´ë¯¸ 프로그래ë°� 언어를 ì ‘í•´ë³¸ 사람들ì—�게 ì�˜ë¯¸ê°€ 있ì�„ì§€ë�„ 모
ë¥´ê² ìŠµë‹ˆë‹¤. 100ê°œì�˜ ì›�소를 가진 ë°°ì—´ì�„ 만들어 내는 ëª…ë ¹ìž…ë‹ˆë‹¤.
(1 to: 100) collect: [:i | i]. ☞ #(1 2 ...(중략)... 99 100)
결과가 너무 많습니까? <Ctrl-D>를 사용하지 ë§�ê³ <Ctrl-I>를 사용하여 íƒ�색
í•´ 봅시다. (ë°°ìš´ 것ì�„ 잘 ì�¨ë¨¹ëŠ” 것ì�´ ì •ë§� ì¤‘ìš”í•˜ê² ì§€ìš”?) 위ì�˜ ëª…ë ¹ì�€ 1
부터 100 까ì�˜ 수 100개가 들어 있는 ë°°ì—´(array)ì�„ 만들어 내는 ëª…ë ¹ìž…ë‹ˆ
다. 'ë°°ì—´'ì�€ 간단히 ë§�해서 번호가 ë¶™ì�€ '통'ì�´ë�¼ê³ ìƒ�ê°�하면 ë�˜ê² 습니다.
ìž�, ì�´ì œ 처ì�Œë³´ë‹¤ëŠ” Smalltalk ëª…ë ¹ 실행ì—� ë§Žì�´ ì�µìˆ™í•´ì¡Œì�„ 것입니다. ì�´
ì œëŠ” 좀 ë�” 부드럽게 진행해 나갈 수 ìžˆê² ìŠµë‹ˆë‹¤. ìž�, ë��까지 í•´ 봅시다.
지금� �요��면 TV�서 복권 추첨� 합니다. � 때가 복권� 산 사람들�
í�¬ë¹„ê°€ 엇갈리는 순간ì�´ê² 지요 아래ì�˜ ëª…ë ¹ì�€ 주íƒ�복권ì�„ 추첨하여 여섯 ê°œ
ì�˜ 번호를 ë‹´ì�€ 배열―앞ì—�서 ë°°ì—´ì�€ '번호가 ë¶™ì�€ 통'쯤으로 ì�´í•´í•˜ë�¼ê³ ë§�
씀드린 것, 기억하ì‹ë‹ˆê¹Œ?―ì�„ 결과값으로 넘겨ì¤�니다.
(Random new next: 6) collect: [:n | (n * 49) rounded].
☞ #(37 48 22 19 22 24 ) "첫 번째 실행"
☞ #(4 36 20 37 24 5 ) "� 번째 실행"
☞ #(18 43 28 15 41 22 ) "세 번째 실행"
...(중략)...
위ì�˜ ëª…ë ¹ì�€ ì‹¤í–‰í• ë•Œë§ˆë‹¤ 서로 다른 번호를 나타냅니다. ì‹ ê¸°í•˜ì§€ 않습니까? ì—¬
러분ì�´ ì¦�겨하ë�˜ 게임ì—�서 매번 다른 ìƒ�황ì�´ ì—°ì¶œë�˜ëŠ” 것ë�„ ì�´ì™€ ê°™ì�€ ì›�리가 ì �
용�었기 때문입니다.
위ì�˜ ëª…ë ¹ì�€ 다 좋지만 한 가지 ê²°ì �ì�´ 있습니다. ê°€ë�”가다가 ë‘� ê°œ ì�´ìƒ�ì�˜ ê°™ì�€
수가 나올 í™•ë¥ ì�´ 있다는 것입니다. (첫 번째 실행 결과를 잘 ë³´ì‹ì‹œì˜¤.) ì‹¤ì œë¡œ
복권ì�„ ì¶”ì²¨í• ë•Œì—�는 ê°™ì�€ 숫ìž�ê°€ ë‘� 번 ì�´ìƒ� 나오면 다시 추첨ì�„ 합니다. 그래
서 중복ë�œ 수가 나오지 않ë�„ë¡� 하는ë�°ìš”... 아래ì�˜ ëª…ë ¹ì�€ 바로 ì�´ëŸ¬í•œ ì›�리를 ê·¸
대로 ì �용한 예입니다. ëª…ë ¹ì�´ ë‘� 줄 ì�´ìƒ�ì�´ë¯€ë¡œ ê¸€ì‡ íŒ�ì�´ë‚˜ 마우스로 ë�©ì�´ë¥¼ 씌
ìš´ 후 실행하ì‹ì‹œì˜¤.
<바탕글 2> 복권 추첨 프로그램
r := Random new.
s := Set new.
[ s size = 6 ] whileFalse: [s add: (r next * 49) rounded].
s asSortedCollection asArray.
[ 실행 결과
☞ #(15 18 21 25 31 39 ) "첫 번째 실행"
☞ #(6 11 21 26 27 31 ) "� 번째 실행"
...(중략)...
----------------------------------------------------------
<바탕글 2>는 단순히 중복� 숫�만 나오지 않는 것� 아니�, 작� 수�서
í�° 수로, 즉 오름차순으로 ì •ë ¬ë�œ 결과를 남ê¹�니다. ì�´ì œ ì •ë§� 복권 추첨 프
로그램 같습니까?
지금까지는 글ìž�ë“¤í•˜ê³ ë§Œ 놀았으므로, ì�´ë²ˆì—�는 여러분ì�˜ 그림 솜씨를 마ì�Œ
ê»� ë°œíœ˜í• ìˆ˜ 있는 기회를 ë“œë¦¬ê² ìŠµë‹ˆë‹¤. 다ì�Œ ëª…ë ¹ì�„ <Ctrl-E>를 사용하여
실행하ì‹ì‹œì˜¤.
scribble := Scribble show.
화면ì—� 'a Scribble'ì�´ë�¼ëŠ” ì œëª©ì�´ 달린 노란색 ì°½ì�´ 열릴 것입니다. ì£¼ì €í•˜
ì§€ ë§�ê³ ì�´ ì°½ 위ì—� 마우스를 ë�Œì–´ì„œ 그림ì�„ ê·¸ë ¤ë´…ì‹œë‹¤. 아주 잘 ê·¸ë ¤ì§ˆ 것
입니다. 여러분ì�˜ 그림 솜씨가 여기ì—�서 ë“œëŸ¬ë‚˜ê² ì§€ìš”?
그림íŒ�ì�´ 좀 ì�°ë �합니다. 아래ì�˜ ëª…ë ¹ì�„ 한 번 실행시켜 ë³´ì‹ì‹œì˜¤. 방금 ì—¬
러분ì�´ 실행했ë�˜ ëª…ë ¹ì–´ì�˜ 결과로 만들어진 그림íŒ�ì�€ ë‹«ì§€ 않ë�„ë¡� 하ì‹ì‹œì˜¤.
EtchASketch showOn: scribble model.
위ì�˜ ëª…ë ¹ì�„ 실행하면 "Etch A Sketch"ë�¼ëŠ” 그림íŒ�ì�´ 열릴 것입니다. 그리ê³
방금 여러분ì�´ 노란색 그림íŒ�ì—� ê·¸ë ¸ë�˜ 그림ì�´ 그대로 나타납니다. 아마
Dolphin Smalltalk를 ë§Œë“ ì˜�êµì—�서는 "Etch-a-Sketch"ë�¼ëŠ” 그림íŒ�ì�´ 보편ì �
으로 사용ë�˜ê³ 있나봅니다.
지금 화면ì—�는 노란 그림íŒ�ê³¼ Etch-aSketchê°€ ë– ìžˆìŠµë‹ˆë‹¤. 둘 중 아무 ê³³ì—�
나 여러분� 그림� 그리면 다른 한 쪽� 그것� 바로 반�� �니다. 즉 둘
ì�€ 모양ì�€ 서로 다르지만 ê°™ì�€ ìž�료를 ê³µìœ í•˜ê³ ìžˆìŠµë‹ˆë‹¤. ì�´ê²ƒì�´ Dolphin
Smalltalk�서 �용 프로그램� 만드는 "MVP 짜임새"� 예를 보여주는 것입
니다. "MVP 짜임세"ì—� 대해서 ê³µë¶€í•˜ë ¤ë©´ ì•„ì§�ë�„ ë§Žì�€ ì—¬ì •ì�´ 남았지만, ê·¸
때까지 지치지 ë§�ê³ ì—´ì‹¬ížˆ 합시다.
그림ì�„ 다 ê·¸ë ¸ìœ¼ë©´ ì�´ì œ ì—´ë ¤ìžˆëŠ” ë‘� ê°œì�˜ 그림íŒ�ì�„ 닫으ì‹ì‹œì˜¤.
아래 ëª…ë ¹ì�€ "ë°œìž�ì·¨ ì°½"(walkback window)를 표시하는 ëª…ë ¹ìž…ë‹ˆë‹¤. ë°œìž�ì·¨
ì°½ì—� 대해서ë�„ 나중ì—� ìƒ�세하게 ë‹¤ë£¨ê² ì§€ë§Œ, 여기서는 단지 프로그램ì�´ ì–´ë–¤
�취로 실행�어왔는가를 나타내는 창쯤으로 ��하면 �니다.
self halt.
위ì�˜ ëª…ë ¹ì�„ 실행하면 "ë°œìž�ì·¨ ì°½"ì�´ 열립니다. 보통ì�˜ 경우 그냥
<Terminate> 단추를 누르는 것으로 ë¬¸ì œê°€ í•´ê²°ë�©ë‹ˆë‹¤. ë§Œì�¼ 다른 프로그래
� 언어를 공부해 본 사람��면 여기서 <Debug> 단추를 누름으로�
Smalltalk 환경ì�˜ ë²Œë ˆìž¡ê°œ(debugger)를 구경하실 수 있습니다. ë¬¼ë¡ ì�´ë ‡ê²Œ
해서 열린 벌래잡개는 Smalltalk 환경� 들여다볼 수 있는 중요한 �구입니
다. 그러므로 잘못 다루는 ì�¼ì�´ ì—†ë�„ë¡� 조심하ì‹ì‹œì˜¤. 나중ì—� Smalltalkì—�
대해서 ì–´ëŠ� ì •ë�„ì�˜ ì§€ì‹�ì�´ ìƒ�기면 ê·¸ 때 벌래잡개ì—� 대해서 깊ì�´ 있는 공부
를 í• ìˆ˜ 있ì�„ 것입니다. ìš´ì „ë�„ 못하면서 ìž�ë�™ì°¨ 뚜껑ì�„ 열어서 차를 ë§�ê·¸
러뜨리는 ì�¼ì�´ 있어서는 안ë�˜ê² 지요? ^^:
다ì�Œ ëª…ë ¹ì�€ Smalltalk 환경ì—�서 'Dolphin'ì�´ë�¼ëŠ” 낱ë§�ì�´ í�¬í•¨ë�œ 바탕글
(source code)를 찾아내는 ëª…ë ¹ìž…ë‹ˆë‹¤. 3MBê°€ 넘는 í�° 용량ì�˜ 파ì�¼ì�„ ë’¤ì ¸ì„œ
ë‚´ìš©ì�„ 찾는 것ì�´ê¸° 때문ì—� 몇 ì‹ì´ˆ ì •ë�„ì�˜ 시간ì�´ 걸릴 수ë�„ 있습니다. ì¡°
금만 기다리면 'Dolphin'ì�´ë�¼ëŠ” 낱ë§�ì�„ í�¬í•¨í•˜ê³ 있는 여러 가지ì�˜ 바탕글들
ì�´ 나타나게 ë� 것입니다.
SmalltalkSystem current browseContainingSource: 'Dolphin'.
"Containing Source: 'Dolphin'"�란 �름� 붙� 창� � 부분으로 �루어
ì ¸ 있습니다. 위쪽ì�€ 찾아낸 바탕글ì�„ ë‚˜íƒ€ë‚´ê³ , 아래쪽ì�€ 해당 글ì�˜ ìž�세한
내용� 표시�는 곳입니다. 과연 Smalltalk 환경�서 Dolphin��는 낱��
몇 번ì�´ë‚˜ 나왔으며, ë˜� 어디서 사용ë�˜ê³ 있는지를 한 번 살펴보시기 ë°”ëž�니
다. (ì°¸ê³ ë¡œ '바탕글'ì�„ ëª…ë ¹ì�„ ì�¨ë„£ì�€ 글ì�´ë�¼ëŠ” 뜻입니다.)
ì�´ì œ 마지막 ëª…ë ¹ìž…ë‹ˆë‹¤. 우리는 지금까지 여러 가지 ëª…ë ¹ì�„ 실행해 왔는ë�°,
ì�´ë²ˆ ëª…ë ¹ì²˜ëŸ¼ ì�°ë �한 것ì�€ ì—†ì�„ 것입니다. ì–´ëŠ� ì •ë�„로 ì�°ë �하ëƒ�ê³ ìš”? ì§�ì ‘
실행ì�„ í•´ ë³´ì‹ì‹œì˜¤. 아래ì�˜ ëª…ë ¹ì�„ 실행해 봅시다.
View destroyAll.
위ì�˜ ëª…ë ¹ì�´ 실행ë�˜ìž�마ìž� Smalltalk 환경ì�˜ ì—´ë ¤ìžˆë�˜ ëª¨ë“ ì°½ì�´ 없어지ê³
"Transcript"ë�¼ëŠ” ì�´ë¦„ì�˜ 창만 하나 ë�œë � 남아 있게 ë�˜ì—ˆìŠµë‹ˆë‹¤. ì�°ë �하지
않습니까? ^^:
방금 내린 ëª…ë ¹ì�€ 주로 Smalltalk 환경ì�„ 깨ë�—ì�´ í•˜ê³ ì‹¶ì�„ 때 사용하는 명
ë ¹ìž…ë‹ˆë‹¤. 지금까지 우리는 ë§Žì�€ ëª…ë ¹ì�„ 실행해서 결과를 ì¶œë ¥í–ˆìœ¼ë¯€ë¡œ 우리
ê°€ ê°€ì§€ê³ ë†€ì•˜ë�˜ í�”ì �(?)ì�„ 깨ë�—ì�´ 하는 것ì�´ë�¼ê³ ìƒ�ê°�하면 ë�˜ê² 습니다.
지금까지 우리는 Smalltalkì—�서 여러 가지 ëª…ë ¹ì�„ 실행해 보았습니다. 그리
ê³ ëª…ë ¹ì�„ 어떻게 실행하는지ì—� 대해서ë�„ 알아보았습니다. ëª…ë ¹ì�„ ì‹¤í–‰í• ë•Œ
ì—�는 <Ctrl-D>, <Ctrl-E>, <Ctrl-I>ì�˜ 세 가지 ê¸€ì‡ ë¥¼ 사용한다는 것ë�„ 알아
보았습니다. ë˜�한 한 줄 짜리 ëª…ë ¹ê³¼ 여러 줄ì—� 걸친 ëª…ë ¹ì�„ 실행하는 방법
� 알아보았습니다.
ì�´ì œ Smalltalkì—�서 ëª…ë ¹ì�„ 내리는 것ì�´ 별로 ì–´ë µì§€ 않ì�„ ê±°ë�¼ê³ ìƒ�ê°�합니
다. 만약 잘 ëª¨ë¥´ê² ìœ¼ë©´ Smalltalk를 ë¹ ì ¸ë‚˜ê°„ 다ì�Œ 다시 들어와서 ì�´ 글ì—�
있는 내용� 다시 한 번 따�해 보시기 바�니다.
ì�´ì œ Smalltalk를 ë��내야 하는ë�°, 앞서 ë§�ì”€ë“œë ¸ë“¯ì�´ ì €ìž¥ì�˜ ë¬¸ì œê°€ 남아 있
습니다. Smalltalk를 ë��낼 때마다 현재 Smalltalkì�˜ ìƒ�태를 ì €ìž¥í•˜ê² ëŠ�ëƒ�ê³
묻게 ë�©ë‹ˆë‹¤. 지금ì�€ ì•„ì§� 등ë¡� ì ˆì°¨ë¥¼ ë°Ÿì§€ 않았으므로 ì €ìž¥ì�€ 불가능합니
다. ì˜¤ížˆë ¤ ì�´ê²ƒì�´ ë�” 잘ë�œ ì�¼ì�¸ì§€ë�„ ëª¨ë¥´ê² ìŠµë‹ˆë‹¤. ì €ìž¥ì�´ 안 ë�œë‹¤ëŠ” ë§�ì�€
여러분� 무슨 실수를 하��� 그것� Smalltalk 환경� �향� 주지 않�
ì�„ ì�˜ë¯¸í•˜ê¸° 때문입니다. 그러므로 당분간 Smalltalkì—� ì�µìˆ™í•´ì§ˆ 때까지 ì €
장 기능 ì—†ì�´ 연습해 보는 것ë�„ ë�„움ì�´ ë� 것입니다. 등ë¡� ì ˆì°¨ì—� 관한 것ì�€
바로 다ì�Œì—� 설명ì�„ 드리ë�„ë¡� í•˜ê² ìŠµë‹ˆë‹¤.
계�...