SqueakByExample:1.4
워크스페이스와 Transcript
모든 열린 창을 닫습니다. 도구 플랩(the Tools flap)을 열기 위해 스퀵 환경에서 맨 오른쪽에 있는 Tools(도구) 탭을 클릭합니다.
여러분은 (그림 1.9)에 나온 스퀵의 몇몇 중요 도구(the key tools)들을 위한 아이콘들을 보게 되실 것입니다. transcript와 워크스페이스(workspace)를 드레그합니다.
transcript와 워크스페이스를 움직여 크기를 조정하고, 워크스페이스와 transcript가 정확히 겹치도록 만듭니다.
여러분은 모서리들 중 하나를 드레그하거나, “morphic handles”(모프의 핸들)을 불러오기 위해 창을 파랑-클릭하고 노란색 하단 아래쪽 핸들을 드레그함으로써 창 크기를 재조정 할 수 있습니다.
오직 한 개의 창은, 활성화되어 있을 때 항상 위에 위치하게 되고 그 라벨이 강조됩니다. 마우스 커서는 타이핑을 원하는 장소에 있는 창에 반드시 위치해 있어야 합니다.
transcript는 시스템 메시지를 로그하기 위해 종종 사용되는 오브젝트입니다. transcript는 “시스템 콘솔(system console)”의 한 종류입니다. transcript는 매우 느리므로, 만약 여러분이 transcript를 열고 특정한 연산을 위해 쓰기를 할 경우, 10배나 더 느려진다는 것을 염두 해 두어야 합니다. 그 뿐만 아니라, transcript는 스레드(thread)로부터 안전하지 못하므로, 만약 다중 오브젝트를(multiple objects) transcript에 동시에 기록할 경우 이상한 문제들을 경험할 수 있습니다.
작업 공간은 여러분이 실험하기를 원하는 스몰토크 코드 조각을 타이핑하는 작업에 유용합니다.
여러분은 또한 단순히, 할일 목록(to-do lists) 또는 누군가가 여러분의 이미지를 사용할 때를 위한 설명서와 같은, 기억을 원하는 임시 텍스트를 타이핑 하는 용도로 워크스페이스를 사용할 수 있습니다. 워크스페이스는 이전에 우리가 다운로드 한 표준 이미지와 같은 경우처럼, 종종 캡쳐한 이미지 같은 문서를 붙잡고 있기 위한 용동에 종종 사용됩니다. (그림 1.2를 보십시오)
Transcript show: 'hello world'; cr.
여러분이 방금 타이핑한 텍스트의 다양한 지점들에서 워크스페이스 더블 클릭을 시도합니다. 클릭한 장소에 기초하여, 어떻게 전체 단어, 전체 문자열(string) 또는 전체 텍스트가 선택되는지에 주목합니다.
여러분이 타이핑한 텍스트를 선택하고 노랑 버튼을 클릭합니다. do it (d)을 선택합니다.
transcript 창(그림 1.10)에 어떻게 “hello world”가 나타나는지를 주목합니다.
다시 동일 작업을 시도합니다. 메뉴 아이템에 있는 do it (d) 에 있는 (d)는 키보드 바로가기(short cut)가 해야 할 작업이 CMD-d라는 것을 말합니다. 이것에 대한 좀더 많은 내용은 다음 섹션에서 살펴보겠습니다!)
여러분은 방금 자신의 스몰토크 표현식(expression)을 평가한 것입니다! 즉 transcript 오브젝트에 메시지와 cr[개행 문자(carrige return)] 앞에 “hello world”라는 “메시지 쇼”를 보낸 것입니다. 그 다음 transcript는 이 메시지로 무엇을 해야 할지 결정했으며, “show”(쇼)를 취급하기 위한 그 자신의 메소드를 살펴보았습니다: 그리고 cr은 메시지를 보내게 되고, 적합하게 반응하였습니다.
만약 여러분이 스몰토크 사용자와 한동안 대화를 해보셨다면, 그들이 “연산 요청(call an operation)” 또는 “메소드 불러내기(invoke a method)”와 같은 표현식을 사용하지 않고, 그 대신 “메시지 보내기(send a message)”를 말할 것이라는 것을 재빨리 눈치채셨을 것입니다. 이것은 오브젝트가 그 자체의 동작에 책임을 갖고 있다는 생각을 반영합니다. 여러분은 오브젝트가 할 작업을 결코 말하면 안되고, 대신 오브젝트에 메시지를 보내어 오브젝트에게 무엇을 할지 물어보아야 합니다. 여러분이 아니라, 오브젝트가 여러분의 메시지에 응답하기 위한 적합한 메소드를 선택합니다.