SqueakByExample:2.3: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(내용상 오타수정)
(몇가지 사소한 수정)
Line 29: Line 29:
이 새로운 정의는 SBECell이라 불리는 하위 클래스를 만들도록 요청하는 메시지를 현존하는 클래스 SimpleSwitchMorph에 보내는 스몰토그 구문으로 구성되어 있습니다. (실제로, SBECell은 아직까지 존재하지 않으므로, 앞으로 만들 클래스의 이름을 나타내는 인수 심볼 #SBEcell을 전달하였습니다) 또한 마우스를 셀 위에서 클릭할 때, 새로운 클래스의 인스턴스가, 셀이 어떤 동작을 해야할 지를 지정하기 위해 사용할 mouseAction 인스턴스 변수를 새로운 클래스가 갖도록 구문을 입력할 것입니다.
이 새로운 정의는 SBECell이라 불리는 하위 클래스를 만들도록 요청하는 메시지를 현존하는 클래스 SimpleSwitchMorph에 보내는 스몰토그 구문으로 구성되어 있습니다. (실제로, SBECell은 아직까지 존재하지 않으므로, 앞으로 만들 클래스의 이름을 나타내는 인수 심볼 #SBEcell을 전달하였습니다) 또한 마우스를 셀 위에서 클릭할 때, 새로운 클래스의 인스턴스가, 셀이 어떤 동작을 해야할 지를 지정하기 위해 사용할 mouseAction 인스턴스 변수를 새로운 클래스가 갖도록 구문을 입력할 것입니다.


''지금까지, 여러분은 여전히 아무것도 만들지 않았습니다.'' 클래스 탬플릿 패널의 경계가 빨강색으로 바뀌어 있는 것에 주목해 주십시오. (그림 2.4) 이 빨강색은 저장하지 않은 변경사항이 있다는 것을 뜻합니다. 실제로 이 메시지를 보내려면 여러분은 반드시 {{Template:HighlightGray|accept}} 를 클릭해야 합니다.
''지금까지, 여러분은 여전히 아무것도 만들지 않은 상태입니다.'' 클래스 탬플릿 패널의 경계가 빨강색으로 바뀌어 있는 것에 주목해 주십시오. (그림 2.4) 이 빨강색은 저장하지 않은 변경사항이 있다는 것을 의미합니다. 실제로 이 (수정된)메시지를 보내려면 여러분은 반드시 {{Template:HighlightGray|accept}} 를 클릭해야 합니다.




{{CommentSqueak|클래스 정의를 수락(accept)하십시오.}}
{{CommentSqueak|클래스 정의를 Accept하십시오.}}




Line 41: Line 41:




일단 클래스 정의를 수락하면, 그 클래스가 만들어지고 브라우저의 클래스 패널(그림 2.5)에 나타납니다. 편집 패널은 클래스 정의를 보여주고, 그 밑의 작은 패널은 여러분이 클래스의 목적을 작성하는 약간의 단어를 적어줄 것을 요청할 것입니다. 이것을 클래스 주석이라 부르며, 다른 프로그래머들에게 클래스의 고급 개요<sup>high level overview</sup>를 제공하는 상당히 중요한 역할을 담당합니다. 스몰토크 사용자는 그들의 코드의 신뢰성에 매우 높은 가치를 부여하며, 메소드에 상세한 주석을 기입하는 것은 일상적이지 않습니다: 이러한 철학은 ‘코드는 그 자체로 그 역할을 증명한다’는 의미를 포함합니다(만약 코드가 코드 자체로 그 역할을 증명하지 못 할 때에는, 여러분은 그 코드가 그러한 역할을 수행할 때까지 다시 작성해야 합니다.) 클래스 주석은 그 클래스의 세부적인 설명을 포함할 필요가 없지만, 그것의 전체적인 목적을 설명하는 몇 개의 단어는 필수적입니다. 그 이유는 여러분 뒤에 어떤 프로그래머가 그 클래스를 사용한다면, 그 클래스를 들여다 보기 위해 시간을 소모해야 할 지의 여부를 알아야 할 필요가 있기 때문입니다.  
일단 클래스 정의를 수락하면, 그 클래스가 만들어지고 브라우저의 클래스 패널(그림 2.5)에 나타납니다. 편집 패널은 클래스 정의를 보여주고, 그 밑의 작은 패널은 여러분이 클래스의 목적을 의미하는 약간의 단어를 적어줄 것을 요청할 것입니다. 이것을 클래스 주석이라 부르며, 다른 프로그래머들에게 클래스의 고급 개요<sup>high level overview</sup>를 제공하는 상당히 중요한 역할을 담당합니다. 스몰토크 사용자는 그들의 코드의 신뢰성에 매우 높은 가치를 부여하며, 메소드에 상세한 주석을 기입하는 것은 일상적이지 않습니다: 이러한 철학은 '코드는 그 자체로 그 역할을 증명한다' 는 것을 의미합니다.(만약 코드가 코드 자체로 그 역할을 증명하지 못 할 때에는, 여러분은 그 코드가 그러한 역할(코드 자체가 주석)을 수행할 때까지 다시 작성해야 합니다.) 클래스 주석은 그 클래스의 세부적인 설명을 포함할 필요가 없지만, 클래스의 전체적인 목적을 설명하는 몇 개의 단어는 필수로 사용해야 합니다. 그 이유는 여러분 뒤에 어떤 프로그래머가 그 클래스를 사용한다면, 그 클래스를 살펴보기 위해 시간을 소모해야 할 지의 여부를 알아야 할 필요가 있기 때문입니다.




{{CommentSqueak|{{HighlightBold|SBEcell}}을 위한 클래스 주석을 입력하고, 그것을 수락(accept)하십시오. 그 내용은 언제든지 다시 수정하여 개선할 수 있습니다.}}
{{CommentSqueak|{{HighlightBold|SBEcell}}을 위한 클래스 주석을 입력하고, Accept를 선택 하십시오. 그 내용은 언제든지 다시 수정하여 개량할 수 있습니다.}}


==Notes==
==Notes==

Revision as of 10:08, 8 January 2013

SBECell 클래스 정의하기

물론 아직까지, 새로운 카테고리에 어떤 클래스도 들어있지 않습니다. 하지만, 새로운 클래스를 쉽게 만들 수 있도록 메인 편집 창the main editing pane이 탬플릿을 표시합니다. (그림 2.3을 보십시오)

이 템플릿은 NameofSubClass라 불리는 하위 클래스를 만들기 위해 오브젝트라 불리는 클래스에 요청을 하여, 그 클래스에 메시지를 보내는 스몰토크 구문Smalltalk expression을 보여줍니다. 새로운 클래스는 아무 변수도 갖고 있지 않지만, 카테고리 SBE-Quinto에 반드시 속해 있어야 합니다.

이제부터 정말로 원하는 클래스를 만들기 위해서 템플릿을 간단히 수정해보겠습니다.


Squeak comment.png클래스 생성 템플릿the class creation template을 수정하기 위해 아래의 과정대로 진행하십시오

  • 코드상에 보이는 Object를 SimpleSwitchMorph로 수정하십시오.
  • #NameOfSubClass로 되어있는 부분을 #SBECell로 수정하십시오.
  • mouseAction을 코드상에 보이는 instanceVariableNames에 추가하십시오.


결과는 클래스 2.1과 동일합니다.


클래스 2.1: 클래스 SBECell 정의하기

SimpleSwitchMorph subclass: #SBECell                                                                          
  instanceVariableNames: 'mouseAction'                                                                           
  classVariableNames: ''                                                                                         
  poolDictionaries: ''                                                                                            
  category: 'SBE-Quinto'


이 새로운 정의는 SBECell이라 불리는 하위 클래스를 만들도록 요청하는 메시지를 현존하는 클래스 SimpleSwitchMorph에 보내는 스몰토그 구문으로 구성되어 있습니다. (실제로, SBECell은 아직까지 존재하지 않으므로, 앞으로 만들 클래스의 이름을 나타내는 인수 심볼 #SBEcell을 전달하였습니다) 또한 마우스를 셀 위에서 클릭할 때, 새로운 클래스의 인스턴스가, 셀이 어떤 동작을 해야할 지를 지정하기 위해 사용할 mouseAction 인스턴스 변수를 새로운 클래스가 갖도록 구문을 입력할 것입니다.

지금까지, 여러분은 여전히 아무것도 만들지 않은 상태입니다. 클래스 탬플릿 패널의 경계가 빨강색으로 바뀌어 있는 것에 주목해 주십시오. (그림 2.4) 이 빨강색은 저장하지 않은 변경사항이 있다는 것을 의미합니다. 실제로 이 (수정된)메시지를 보내려면 여러분은 반드시 accept 를 클릭해야 합니다.


Squeak comment.png클래스 정의를 Accept하십시오.


그림 2.4: 클래스 생성 탬플릿(The class-creation Template)


(저장을 위해) 노랑-클릭 또는 accept를 선택하는 것 중 한가지를 실행하거나 바로가기 메뉴 CMD-s를 사용합니다. 메시지는 새로운 클래스가 컴파일 되도록 하는 SimpleSwitchMorph에 보낼 것입니다.


일단 클래스 정의를 수락하면, 그 클래스가 만들어지고 브라우저의 클래스 패널(그림 2.5)에 나타납니다. 편집 패널은 클래스 정의를 보여주고, 그 밑의 작은 패널은 여러분이 클래스의 목적을 의미하는 약간의 단어를 적어줄 것을 요청할 것입니다. 이것을 클래스 주석이라 부르며, 다른 프로그래머들에게 클래스의 고급 개요high level overview를 제공하는 상당히 중요한 역할을 담당합니다. 스몰토크 사용자는 그들의 코드의 신뢰성에 매우 높은 가치를 부여하며, 메소드에 상세한 주석을 기입하는 것은 일상적이지 않습니다: 이러한 철학은 '코드는 그 자체로 그 역할을 증명한다' 는 것을 의미합니다.(만약 코드가 코드 자체로 그 역할을 증명하지 못 할 때에는, 여러분은 그 코드가 그러한 역할(코드 자체가 주석)을 수행할 때까지 다시 작성해야 합니다.) 클래스 주석은 그 클래스의 세부적인 설명을 포함할 필요가 없지만, 클래스의 전체적인 목적을 설명하는 몇 개의 단어는 필수로 사용해야 합니다. 그 이유는 여러분 뒤에 어떤 프로그래머가 그 클래스를 사용한다면, 그 클래스를 살펴보기 위해 시간을 소모해야 할 지의 여부를 알아야 할 필요가 있기 때문입니다.


Squeak comment.pngSBEcell을 위한 클래스 주석을 입력하고, Accept를 선택 하십시오. 그 내용은 언제든지 다시 수정하여 개량할 수 있습니다.

Notes