U E D R , A S I H C RSS

Small Talk/강좌From Hitel/강�4

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 언어와  �체지향
� 대해서 본격�으로 알아보�� 하겠습니다.

                                                                계�...



Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:03
Processing time 0.0136 sec