https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&feed=atom&action=history
SqueakByExample:5.5 - Revision history
2024-03-29T11:06:22Z
Revision history for this page on the wiki
MediaWiki 1.38.1
https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&diff=1650&oldid=prev
Onionmixer: 번역수정
2013-09-17T02:34:21Z
<p>번역수정</p>
<p><b>New page</b></p><div>==모든 동작은 메시지를 보낼 때 일어난다==<br />
<br />
이 규칙은 스몰토크 프로그래밍의 핵심이라 할 수 있습니다.<br />
<br />
절차적 프로그래밍에서는, 호출자가 프로시저를 호출할 때 코드 일부를 선택합니다. 그리고 호출자는 이름을 이용해서 실행할 프로시저 또는 함수를 선택하죠.<br />
<br />
객체지향 프로그래밍에서, 우리는 "메서드 호출"을 하지 않고, "메시지 전송"을 사용합니다. 이러한 용어의 선택은 중요합니다. 객체 지향 프로그래밍에서 각각의 객체는 그 자신이 각각 책임을 가집니다. 프로시저를 사용해서 객체에서 할일을 지시하지 않죠. 대신, 메시지를 보내어 어떤 일을 해달라고 정중하게 요청합니다. 메시지는 코드의 일부가 아닙니다: 단지 이름이고 인수의 목록일 뿐 입니다. 수신자는 요청받은 메시지의 내용에 따라 자신 스스로에게서 메서드를 선택하고 어떻게 응답할지를 결정합니다<ref name="역자주1">[http://ta.onionmixer.net/wordpress/?p=172 이부분]의 내용을 참고</ref>. 각각의 객체가 동일한 메시지에 응답하기 위해 각자 메서드를 가지고 있기 때문에, 메세지를 받는 시점에서 메서드는 동적으로 선택됩니다.<br />
<br />
<br />
{| style="border: 1px solid black;"<br />
|-<br />
|3+4||⇒ 7||''"'''integer 3''' 에 인자 '''4''' 와 함께 메시지 '''+''' 를 보낸다"''<br />
|-<br />
|(1@2) + 4||⇒ 5@6||''"'''point (1@2)''' 에 인자 '''4''' 와 함께 메시지 '''+''' 를 보낸다"''<br />
|}<br />
<br />
<br />
결국, 메시지는 다양한 객체로 보낼 수 있으며 각각의 객체는 메세지에 응답하는 각각의 메서드를 가지게 됩니다. 우리는 + 4 메시지에 응답하는 방법인, Smallinteger 3 또는 Point 1@2 를 별도로 취급하지 않습니다. 각 클래스들은, +를 사용할 자체 메서드를 갖고 있으며, 그 메서드를 사용하여 + 4 라는 메시지에 응답합니다.<br />
<br />
메시지 보내기를 기초로한 스몰토크 모델의 결과로서 스몰토크는, 너무나 많은 일을 해야하는 절차적인 메서드보다는, 다른 객체에 작업을 넘기거나 작은 크기의 여러 메서드를 가지는 객체를 권장합니다.<br />
<br />
Joseph Pelrine는 이 원리를 다음과 같이 간결하게 표현하였습니다:<br />
<br />
<br />
<center>{{HighlightDoubleBox|<br />
다른 녀석에게 맏길 수 있는 일을 일부러 하지 마세요<ref name="역자주1">원문을 직역하면 "객체가 처리할 수 있는 요소를 다른 곳에 두지 마십시오" 이런 내용이 됩니다. 워낙 말이 괴악해서 의역을 진행했네요</ref><br />
}}</center><br />
<br />
<br />
수많은 객체 지향 언어에서는 객체에 대한 정적 및 동적 연산을 제공하지만, 스몰토크에서는 동적 메시지 전송만 존재합니다. 정적 클래스 연산이 없는 대신,인스턴스, 클래스, 객체는 클래스에 메세지를 보내는 방법을 사용할 수 있습니다.<br />
<br />
스몰토크에서 ''거의'' 모든 작업은 메시지 전송으로 이루어집니다. 하지만 몇가지 일부동작은 반드시 필요합니다:<br />
<br />
* 변수 선언은 메시지 전송이 아닙니다. 사실, 변수 선언은 실행되는 요소도 아닙니다. 변수를 선언하면 단지 객체 참조에 사용할 공간을 할당하는 일만 일어날 뿐입니다.<br />
* 할당은 메시지 전송이 아닙니다. 변수 할당은 변수를 선언한 범위내에서 "변수가 존재하도록" 하는 작업입니다.<br />
* 반환은 메시지 전송이 아닙니다. 계산된 결과를 간단하게 송신자로 반환하는 작업입니다.<br />
* 프리미티브는 메시지 전송이 아닙니다. 프리미티브는 가상머신에서 실행됩니다.<br />
<br />
위의 몇 가지 예외를 제외하고, 거의 모든 작업은 메시지 전송으로 이루어집니다. 특별히,스몰토크의 클래스에서는 에서는 "공용 필드(public영역)"가 존재하지 않기 때문에, 다른 객체의 인스턴스 변수를 업데이트 하는 방법은, 객체에 메시지를 보내어 객체 내부의 필드를 업데이트하도록 메시지를 보내는것 외에는 없습니다. 물론, 객체의 모든 인스턴스 변수를 위해 setter와 getter 메서드를 제공하는 것은 좋은 객체지향 방식이 아닙니다. Joseph Perlrine은 이 내용을 매우 훌륭하게 표현했습니다.<br />
<br />
<br />
<center>{{HighlightDoubleBox|누구도 당신의 데이터를 함부로 손대지 못하게 하십시오.}}</center><br />
<br />
<br />
<br />
==Notes==<br />
<references /><br />
<br />
[[Category:SqueakByExample]]</div>
Onionmixer
https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&diff=1647&oldid=prev
Onionmixer: 번역수정
2013-03-06T12:23:04Z
<p>번역수정</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:23, 6 March 2013</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l3">Line 3:</td>
<td colspan="2" class="diff-lineno">Line 3:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>이 규칙은 스몰토크 프로그래밍의 핵심이라 할 수 있습니다.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>이 규칙은 스몰토크 프로그래밍의 핵심이라 할 수 있습니다.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>절차적 <del style="font-weight: bold; text-decoration: none;">프로그래밍에서</del>, <del style="font-weight: bold; text-decoration: none;">실행해야 할 </del>코드 <del style="font-weight: bold; text-decoration: none;">조각의 선택은, 절차상 호출자를 사용하여 만들 때 합니다</del>. <del style="font-weight: bold; text-decoration: none;">발신자는, 이름으로 정적으로 </del>실행할 <del style="font-weight: bold; text-decoration: none;">절차 </del>또는 함수를 <del style="font-weight: bold; text-decoration: none;">선택합니다</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>절차적 <ins style="font-weight: bold; text-decoration: none;">프로그래밍에서는</ins>, <ins style="font-weight: bold; text-decoration: none;">호출자가 프로시저를 호출할 때 </ins>코드 <ins style="font-weight: bold; text-decoration: none;">일부를 선택합니다</ins>. <ins style="font-weight: bold; text-decoration: none;">그리고 호출자는 이름을 이용해서 </ins>실행할 <ins style="font-weight: bold; text-decoration: none;">프로시저 </ins>또는 함수를 <ins style="font-weight: bold; text-decoration: none;">선택하죠</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>객체지향 프로그래밍에서, 우리는 "메서드 호출"을 하지 않고, "메시지 전송"을 사용합니다. 용어의 선택은 중요합니다. 각 오브젝트는 그 <del style="font-weight: bold; text-decoration: none;">자신의 </del>책임을 <del style="font-weight: bold; text-decoration: none;">갖고 있습니다</del>. <del style="font-weight: bold; text-decoration: none;">우리는 몇몇 절차를 오브젝트에 적용함으로써, 오브젝트가 무엇을 해야 할지 말하지 않습니다</del>. <del style="font-weight: bold; text-decoration: none;">그 대신에</del>, <del style="font-weight: bold; text-decoration: none;">우리는 오브젝트에게 </del>메시지를 <del style="font-weight: bold; text-decoration: none;">전송함으로써, 우리를 위해 오브젝트가 </del>어떤 일을 <del style="font-weight: bold; text-decoration: none;">수행해줄 것을 공손하게 </del>요청합니다. 메시지는 코드의 <del style="font-weight: bold; text-decoration: none;">조각이 </del>아닙니다: <del style="font-weight: bold; text-decoration: none;">메시지는 아무것도 아니고, </del>단지 <del style="font-weight: bold; text-decoration: none;">이름과 </del>인수의 <del style="font-weight: bold; text-decoration: none;">목록입니다</del>. 수신자는 <del style="font-weight: bold; text-decoration: none;">요청 받은 작업을 실행하기 위해 그 자체의 </del>메서드를 <del style="font-weight: bold; text-decoration: none;">선택하여 </del>어떻게 <del style="font-weight: bold; text-decoration: none;">응답해야 할지를 </del>결정합니다. 동일한 메시지에 응답하기 위해, <del style="font-weight: bold; text-decoration: none;">다양한 오브젝트들은 아마도 다른 메서드들을 가질 수 있지만, 메시지를 수신하였을 때, 반드시 </del>동적으로 <del style="font-weight: bold; text-decoration: none;">메서드가 선택되어야 합니다</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>객체지향 프로그래밍에서, 우리는 "메서드 호출"을 하지 않고, "메시지 전송"을 사용합니다. <ins style="font-weight: bold; text-decoration: none;">이러한 </ins>용어의 선택은 중요합니다. <ins style="font-weight: bold; text-decoration: none;">객체자향 프로그래밍에서 </ins>각 오브젝트는 그 <ins style="font-weight: bold; text-decoration: none;">자신이 각각 </ins>책임을 <ins style="font-weight: bold; text-decoration: none;">가집니다</ins>. <ins style="font-weight: bold; text-decoration: none;">프로시저를 사용해서 오브젝트에세 할일을 지시하지 않죠</ins>. <ins style="font-weight: bold; text-decoration: none;">대신</ins>, 메시지를 <ins style="font-weight: bold; text-decoration: none;">보내어 </ins>어떤 일을 <ins style="font-weight: bold; text-decoration: none;">해달라고 정중하게 </ins>요청합니다. 메시지는 코드의 <ins style="font-weight: bold; text-decoration: none;">일부가 </ins>아닙니다: 단지 <ins style="font-weight: bold; text-decoration: none;">이름이고 </ins>인수의 <ins style="font-weight: bold; text-decoration: none;">목록일 뿐 입니다</ins>. 수신자는 <ins style="font-weight: bold; text-decoration: none;">요청받은 메시지의 내용에 따라 자신 스스로에게서 </ins>메서드를 <ins style="font-weight: bold; text-decoration: none;">선택하고 </ins>어떻게 <ins style="font-weight: bold; text-decoration: none;">응답할지를 </ins>결정합니다<ins style="font-weight: bold; text-decoration: none;"><ref name="역자주1">[http://ta</ins>.<ins style="font-weight: bold; text-decoration: none;">onionmixer.net/wordpress/?p=172 이부분]의 내용을 참고</ref>. 각각의 오브젝트가 </ins>동일한 메시지에 응답하기 위해 <ins style="font-weight: bold; text-decoration: none;">각자 메서드를 가지고 있기 때문에</ins>, <ins style="font-weight: bold; text-decoration: none;">메세지를 받는 시점에서 메서드는 </ins>동적으로 <ins style="font-weight: bold; text-decoration: none;">선택됩니다</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l16">Line 16:</td>
<td colspan="2" class="diff-lineno">Line 16:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">결론적으로</del>, <del style="font-weight: bold; text-decoration: none;">우리는 동일한 메시지를 </del>다양한 <del style="font-weight: bold; text-decoration: none;">오브젝트들에 보낼 </del>수 있으며<del style="font-weight: bold; text-decoration: none;">, </del>각각의 <del style="font-weight: bold; text-decoration: none;">오브젝트들은 메시지에 응답하기 위해 그 자신의 </del>메서드를 <del style="font-weight: bold; text-decoration: none;">가질 수 있을 것입니다</del>. 우리는 +4 메시지에 응답하는 방법인, Smallinteger 3 또는 Point 1@<del style="font-weight: bold; text-decoration: none;">2를 말하지 </del>않습니다. <del style="font-weight: bold; text-decoration: none;">각각은</del>, +를 사용할 자체 메서드를 갖고 있으며, 그 메서드를 사용하여 +<del style="font-weight: bold; text-decoration: none;">4에 </del>응답합니다. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">결국</ins>, <ins style="font-weight: bold; text-decoration: none;">메시지는 </ins>다양한 <ins style="font-weight: bold; text-decoration: none;">오브젝트에 보내질 </ins>수 있으며 각각의 <ins style="font-weight: bold; text-decoration: none;">오브젝트는 메세지에 응답하기위한 각각의 </ins>메서드를 <ins style="font-weight: bold; text-decoration: none;">가지게 됩니다</ins>. 우리는 + 4 메시지에 응답하는 방법인, Smallinteger 3 또는 Point 1@<ins style="font-weight: bold; text-decoration: none;">2 를 별도로 취급하지 </ins>않습니다. <ins style="font-weight: bold; text-decoration: none;">각 클래스들은</ins>, +를 사용할 자체 메서드를 갖고 있으며, 그 메서드를 사용하여 + <ins style="font-weight: bold; text-decoration: none;">4 라는 메시지에 </ins>응답합니다.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>메시지 <del style="font-weight: bold; text-decoration: none;">보내기에 기인한 </del>스몰토크 모델의 <del style="font-weight: bold; text-decoration: none;">결과들 중 한가지는</del>, 너무나 <del style="font-weight: bold; text-decoration: none;">많은 책임을 갖고 있는 것으로 추정되는 거대한 절차 </del>메서드보다는, 다른 <del style="font-weight: bold; text-decoration: none;">오브젝트들에 작업들을 위임하거나, 매우 작은 </del>메서드들을 <del style="font-weight: bold; text-decoration: none;">갖는 경향이 있는 오브젝트들이 소재한 위치에서, 하나의 형식을 권장한다는 것입니다</del>. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>메시지 <ins style="font-weight: bold; text-decoration: none;">보내기를 기초로한 </ins>스몰토크 모델의 <ins style="font-weight: bold; text-decoration: none;">결과로서 스몰토크는</ins>, 너무나 <ins style="font-weight: bold; text-decoration: none;">많은것을 해야하는 절차적인 </ins>메서드보다는, 다른 <ins style="font-weight: bold; text-decoration: none;">오브젝트에 작업을 넘기거나 작은크기의 </ins>메서드들을 <ins style="font-weight: bold; text-decoration: none;">가지는 오브젝트를 권장합니다</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Joseph Pelrine는 다음과 같이 <del style="font-weight: bold; text-decoration: none;">이 원리를 </del>간결하게 표현하였습니다:</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Joseph Pelrine는 <ins style="font-weight: bold; text-decoration: none;">이 원리를 </ins>다음과 같이 간결하게 표현하였습니다:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l28">Line 28:</td>
<td colspan="2" class="diff-lineno">Line 28:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">많은 오브젝트 </del>지향 <del style="font-weight: bold; text-decoration: none;">언어는 오브젝트를 위해 </del>정적<del style="font-weight: bold; text-decoration: none;">, </del>동적 연산을 제공하지만, 스몰토크에서는 <del style="font-weight: bold; text-decoration: none;">오직 </del>동적 메시지 <del style="font-weight: bold; text-decoration: none;">보내기만 제공됩니다</del>. 정적 클래스 <del style="font-weight: bold; text-decoration: none;">연산을 제공하는 대신에</del>, <del style="font-weight: bold; text-decoration: none;">실제적으로</del>, <del style="font-weight: bold; text-decoration: none;">클래스는 오브젝트이기에</del>, <del style="font-weight: bold; text-decoration: none;">우리는 단순히 </del>클래스에 <del style="font-weight: bold; text-decoration: none;">메시지를 보내어 작업을 수행합니다</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">수많은 객체 </ins>지향 <ins style="font-weight: bold; text-decoration: none;">언어에서는 객체에 대한 </ins>정적 <ins style="font-weight: bold; text-decoration: none;">및 </ins>동적 연산을 제공하지만, 스몰토크에서는 동적 메시지 <ins style="font-weight: bold; text-decoration: none;">전송만 존재합니다</ins>. 정적 클래스 <ins style="font-weight: bold; text-decoration: none;">연산이 없는 대신</ins>,<ins style="font-weight: bold; text-decoration: none;">인스턴스</ins>, <ins style="font-weight: bold; text-decoration: none;">클래스</ins>, <ins style="font-weight: bold; text-decoration: none;">오브젝트는 </ins>클래스에 <ins style="font-weight: bold; text-decoration: none;">메세지를 보내는 방법을 사용할 수 있습니다</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>스몰토크에서 ''거의'' 모든 작업은 메시지 <del style="font-weight: bold; text-decoration: none;">보내기로 </del>이루어집니다. 하지만 <del style="font-weight: bold; text-decoration: none;">일부 몇 가지 행동은 </del>반드시 <del style="font-weight: bold; text-decoration: none;">취해야 합니다</del>:</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>스몰토크에서 ''거의'' 모든 작업은 메시지 <ins style="font-weight: bold; text-decoration: none;">전송으로 </ins>이루어집니다. 하지만 <ins style="font-weight: bold; text-decoration: none;">몇가지 일부동작은 </ins>반드시 <ins style="font-weight: bold; text-decoration: none;">필요합니다</ins>:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* 변수 선언은 메시지 <del style="font-weight: bold; text-decoration: none;">보내기가 </del>아닙니다. 사실, 변수 <del style="font-weight: bold; text-decoration: none;">공표는 심지어 실행 가능하지도 않습니다</del>. 변수를 <del style="font-weight: bold; text-decoration: none;">선언하는 것은 </del>단지 공간을 <del style="font-weight: bold; text-decoration: none;">다른 오브젝트 참조가 할당하도록 만드는 것입니다</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* 변수 선언은 메시지 <ins style="font-weight: bold; text-decoration: none;">전송이 </ins>아닙니다. 사실, 변수 <ins style="font-weight: bold; text-decoration: none;">선언은 실행이 되는 요소도 아닙니다</ins>. 변수를 <ins style="font-weight: bold; text-decoration: none;">선언하면 </ins>단지 <ins style="font-weight: bold; text-decoration: none;">오브젝트 참조를 위한 </ins>공간을 <ins style="font-weight: bold; text-decoration: none;">할당하는 일만 일어납니다</ins>.</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* 할당은 메시지 <del style="font-weight: bold; text-decoration: none;">보내기가 </del>아닙니다. <del style="font-weight: bold; text-decoration: none;">변수에 대한 할당은 변수 이름이 그 변수의 정의 범위 내에서 있는 그대로 묶이도록 합니다</del>. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* 할당은 메시지 <ins style="font-weight: bold; text-decoration: none;">전송이 </ins>아닙니다. <ins style="font-weight: bold; text-decoration: none;">변수를 할당하는것은 변수를 선언한 범위내에서 "존재하도록" 하는 작업입니다</ins>.</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* 리턴은 메시지 <del style="font-weight: bold; text-decoration: none;">보내기가 </del>아닙니다. <del style="font-weight: bold; text-decoration: none;">리턴은 </del>단순히 <del style="font-weight: bold; text-decoration: none;">연산된 결과가 발신자서 반환하도록 만들 뿐입니다</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* 리턴은 메시지 <ins style="font-weight: bold; text-decoration: none;">전송이 </ins>아닙니다. <ins style="font-weight: bold; text-decoration: none;">반환은 메시지 전송이 아닙니다. 반환은 </ins>단순히 <ins style="font-weight: bold; text-decoration: none;">송신자로 계산된 결과를 반환하는 작업입니다</ins>.</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* 프리미티브는 메시지 <del style="font-weight: bold; text-decoration: none;">보내기가 </del>아닙니다. 프리미티브는 가상머신에서 실행됩니다.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* 프리미티브는 메시지 <ins style="font-weight: bold; text-decoration: none;">전송이 </ins>아닙니다. 프리미티브는 가상머신에서 실행됩니다.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">이 약간의 예외들 외에</del>, 거의 모든 작업은 메시지 <del style="font-weight: bold; text-decoration: none;">보내기로 </del>이루어집니다. 특별히, <del style="font-weight: bold; text-decoration: none;">스몰토크에서는 “공용 필드”가 </del>존재하지 않기 때문에, 다른 오브젝트의 인스턴스 변수를 업데이트 하는 <del style="font-weight: bold; text-decoration: none;">유일한 방법이란</del>, 오브젝트에 메시지를 보내어 <del style="font-weight: bold; text-decoration: none;">그 자신의 </del>필드를 <del style="font-weight: bold; text-decoration: none;">업데이트 하도록 요청하는 것 뿐입니다</del>. 물론, 오브젝트의 모든 인스턴스 변수를 위해 setter와 getter 메서드를 제공하는 것은 좋은 객체지향 방식이 아닙니다. Joseph <del style="font-weight: bold; text-decoration: none;">Perlrine 또한 </del>이 내용을 매우 훌륭하게 <del style="font-weight: bold; text-decoration: none;">표현하였습니다</del>. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">위의 몇가지 예외를 제외하고</ins>, 거의 모든 작업은 메시지 <ins style="font-weight: bold; text-decoration: none;">전송으로 </ins>이루어집니다. 특별히,<ins style="font-weight: bold; text-decoration: none;">스몰토크의 클래스에서는 에서는 "공용 필드(public영역)"가 </ins>존재하지 않기 때문에, 다른 오브젝트의 인스턴스 변수를 업데이트 하는 <ins style="font-weight: bold; text-decoration: none;">방법은</ins>, 오브젝트에 메시지를 보내어 <ins style="font-weight: bold; text-decoration: none;">오브젝트내의 </ins>필드를 <ins style="font-weight: bold; text-decoration: none;">업데이트하도록 메시지를 보내는것 외에는 없습니다</ins>. 물론, 오브젝트의 모든 인스턴스 변수를 위해 setter와 getter 메서드를 제공하는 것은 좋은 객체지향 방식이 아닙니다. Joseph <ins style="font-weight: bold; text-decoration: none;">Perlrine은 </ins>이 내용을 매우 훌륭하게 <ins style="font-weight: bold; text-decoration: none;">표현했습니다</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><center>{{HighlightDoubleBox|누구도 여러분의 데이터를 손대지 못하게 하십시오.}}</center></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><center>{{HighlightDoubleBox|누구도 여러분의 데이터를 <ins style="font-weight: bold; text-decoration: none;">함부로 </ins>손대지 못하게 하십시오.}}</center></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Notes==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Notes==</div></td></tr>
</table>
Onionmixer
https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&diff=1646&oldid=prev
Onionmixer: 번역수정
2013-03-06T11:57:18Z
<p>번역수정</p>
<p><b>New page</b></p><div>==모든 동작은 메시지를 보낼 때 일어난다==<br />
<br />
이 규칙은 스몰토크 프로그래밍의 핵심이라 할 수 있습니다.<br />
<br />
절차적 프로그래밍에서, 실행해야 할 코드 조각의 선택은, 절차상 호출자를 사용하여 만들 때 합니다. 발신자는, 이름으로 정적으로 실행할 절차 또는 함수를 선택합니다.<br />
<br />
객체지향 프로그래밍에서, 우리는 "메서드 호출"을 하지 않고, "메시지 전송"을 사용합니다. 용어의 선택은 중요합니다. 각 오브젝트는 그 자신의 책임을 갖고 있습니다. 우리는 몇몇 절차를 오브젝트에 적용함으로써, 오브젝트가 무엇을 해야 할지 말하지 않습니다. 그 대신에, 우리는 오브젝트에게 메시지를 전송함으로써, 우리를 위해 오브젝트가 어떤 일을 수행해줄 것을 공손하게 요청합니다. 메시지는 코드의 조각이 아닙니다: 메시지는 아무것도 아니고, 단지 이름과 인수의 목록입니다. 수신자는 요청 받은 작업을 실행하기 위해 그 자체의 메서드를 선택하여 어떻게 응답해야 할지를 결정합니다. 동일한 메시지에 응답하기 위해, 다양한 오브젝트들은 아마도 다른 메서드들을 가질 수 있지만, 메시지를 수신하였을 때, 반드시 동적으로 메서드가 선택되어야 합니다.<br />
<br />
<br />
{| style="border: 1px solid black;"<br />
|-<br />
|3+4||⇒ 7||''"'''integer 3''' 에 인자 '''4''' 와 함께 메시지 '''+''' 를 보낸다"''<br />
|-<br />
|(1@2) + 4||⇒ 5@6||''"'''point (1@2)''' 에 인자 '''4''' 와 함께 메시지 '''+''' 를 보낸다"''<br />
|}<br />
<br />
<br />
결론적으로, 우리는 동일한 메시지를 다양한 오브젝트들에 보낼 수 있으며, 각각의 오브젝트들은 메시지에 응답하기 위해 그 자신의 메서드를 가질 수 있을 것입니다. 우리는 +4 메시지에 응답하는 방법인, Smallinteger 3 또는 Point 1@2를 말하지 않습니다. 각각은, +를 사용할 자체 메서드를 갖고 있으며, 그 메서드를 사용하여 +4에 응답합니다. <br />
<br />
메시지 보내기에 기인한 스몰토크 모델의 결과들 중 한가지는, 너무나 많은 책임을 갖고 있는 것으로 추정되는 거대한 절차 메서드보다는, 다른 오브젝트들에 작업들을 위임하거나, 매우 작은 메서드들을 갖는 경향이 있는 오브젝트들이 소재한 위치에서, 하나의 형식을 권장한다는 것입니다. <br />
<br />
Joseph Pelrine는 다음과 같이 이 원리를 간결하게 표현하였습니다:<br />
<br />
<br />
<center>{{HighlightDoubleBox|<br />
다른 녀석에게 맏길 수 있는 일을 일부러 하지 마세요<ref name="역자주1">원문을 직역하면 "객체가 처리할 수 있는 요소를 다른 곳에 두지 마십시오" 이런 내용이 됩니다. 워낙 말이 괴악해서 의역을 진행했네요</ref><br />
}}</center><br />
<br />
<br />
많은 오브젝트 지향 언어는 오브젝트를 위해 정적, 동적 연산을 제공하지만, 스몰토크에서는 오직 동적 메시지 보내기만 제공됩니다. 정적 클래스 연산을 제공하는 대신에, 실제적으로, 클래스는 오브젝트이기에, 우리는 단순히 클래스에 메시지를 보내어 작업을 수행합니다.<br />
<br />
스몰토크에서 ''거의'' 모든 작업은 메시지 보내기로 이루어집니다. 하지만 일부 몇 가지 행동은 반드시 취해야 합니다:<br />
<br />
* 변수 선언은 메시지 보내기가 아닙니다. 사실, 변수 공표는 심지어 실행 가능하지도 않습니다. 변수를 선언하는 것은 단지 공간을 다른 오브젝트 참조가 할당하도록 만드는 것입니다.<br />
* 할당은 메시지 보내기가 아닙니다. 변수에 대한 할당은 변수 이름이 그 변수의 정의 범위 내에서 있는 그대로 묶이도록 합니다. <br />
* 리턴은 메시지 보내기가 아닙니다. 리턴은 단순히 연산된 결과가 발신자서 반환하도록 만들 뿐입니다.<br />
* 프리미티브는 메시지 보내기가 아닙니다. 프리미티브는 가상머신에서 실행됩니다.<br />
<br />
이 약간의 예외들 외에, 거의 모든 작업은 메시지 보내기로 이루어집니다. 특별히, 스몰토크에서는 “공용 필드”가 존재하지 않기 때문에, 다른 오브젝트의 인스턴스 변수를 업데이트 하는 유일한 방법이란, 오브젝트에 메시지를 보내어 그 자신의 필드를 업데이트 하도록 요청하는 것 뿐입니다. 물론, 오브젝트의 모든 인스턴스 변수를 위해 setter와 getter 메서드를 제공하는 것은 좋은 객체지향 방식이 아닙니다. Joseph Perlrine 또한 이 내용을 매우 훌륭하게 표현하였습니다. <br />
<br />
<br />
<center>{{HighlightDoubleBox|누구도 여러분의 데이터를 손대지 못하게 하십시오.}}</center><br />
<br />
==Notes==<br />
<references /><br />
<br />
[[Category:SqueakByExample]]</div>
Onionmixer
https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&diff=1641&oldid=prev
Onionmixer: 메세지 > 메시지 수정
2012-09-21T08:56:02Z
<p>메세지 > 메시지 수정</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 08:56, 21 September 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l10">Line 10:</td>
<td colspan="2" class="diff-lineno">Line 10:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| style="border: 1px solid black;"</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| style="border: 1px solid black;"</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|3+4||⇒ 7||''"'''integer 3''' 에 인자 '''4''' 와 함께 <del style="font-weight: bold; text-decoration: none;">메세지 </del>'''+''' 를 보낸다"''</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>|3+4||⇒ 7||''"'''integer 3''' 에 인자 '''4''' 와 함께 <ins style="font-weight: bold; text-decoration: none;">메시지 </ins>'''+''' 를 보낸다"''</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|(1@2) + 4||⇒ 5@6||''"'''point (1@2)''' 에 인자 '''4''' 와 함께 <del style="font-weight: bold; text-decoration: none;">메세지 </del>'''+''' 를 보낸다"''</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>|(1@2) + 4||⇒ 5@6||''"'''point (1@2)''' 에 인자 '''4''' 와 함께 <ins style="font-weight: bold; text-decoration: none;">메시지 </ins>'''+''' 를 보낸다"''</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>
Onionmixer
https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&diff=1640&oldid=prev
Onionmixer at 04:53, 30 August 2012
2012-08-30T04:53:38Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 04:53, 30 August 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l5">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>절차상의 프로그래밍(procedural programming)에서, 실행해야 할 코드 조각의 선택은, 절차가 발신자(caller)를 사용하여 만들어 질 때 해야 합니다. 발신자는, 이름으로 정적으로 실행할 절차 또는 함수를 선택합니다.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>절차상의 프로그래밍(procedural programming)에서, 실행해야 할 코드 조각의 선택은, 절차가 발신자(caller)를 사용하여 만들어 질 때 해야 합니다. 발신자는, 이름으로 정적으로 실행할 절차 또는 함수를 선택합니다.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>객체 지향 프로그래밍에서, 우리는 <del style="font-weight: bold; text-decoration: none;">“call methods”</del>:(메시지 부르기)를 하지 않고, <del style="font-weight: bold; text-decoration: none;">“Send message”</del>(메시지 보내기)를 사용합니다. 용어의 선택은 중요합니다. 각 오브젝트는 그 자신의 책임을 갖고 있습니다. 우리는 몇몇 절차를 오브젝트에 적용함으로써, 오브젝트가 무엇을 해야 할지 말하지 않습니다. 그 대신에, 우리는 오브젝트에게 메시지를 발송함으로써, 우리를 위해 오브젝트가 어떤 일을 수행해줄 것을 공손하게 요청합니다. 메시지는 코드의 조각이 아닙니다: 메시지는 아무것도 아니고, 단지 이름과 인수의 목록입니다. 수신자(receiver)는 요청 받은 작업을 실행하기 위해 그 자체의 <del style="font-weight: bold; text-decoration: none;">메소드를 </del>선택하여 어떻게 응답해야 할지를 결정합니다. 동일한 메시지에 응답하기 위해, 다양한 오브젝트들은 아마도 다른 <del style="font-weight: bold; text-decoration: none;">메소드들을 </del>가질 수 있지만, 메시지를 수신하였을 때, 반드시 동적으로 <del style="font-weight: bold; text-decoration: none;">메소드가 </del>선택되어야 합니다.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>객체 지향 프로그래밍에서, 우리는 <ins style="font-weight: bold; text-decoration: none;">"call methods"</ins>:(메시지 부르기)를 하지 않고, <ins style="font-weight: bold; text-decoration: none;">"Send message"</ins>(메시지 보내기)를 사용합니다. 용어의 선택은 중요합니다. 각 오브젝트는 그 자신의 책임을 갖고 있습니다. 우리는 몇몇 절차를 오브젝트에 적용함으로써, 오브젝트가 무엇을 해야 할지 말하지 않습니다. 그 대신에, 우리는 오브젝트에게 메시지를 발송함으로써, 우리를 위해 오브젝트가 어떤 일을 수행해줄 것을 공손하게 요청합니다. 메시지는 코드의 조각이 아닙니다: 메시지는 아무것도 아니고, 단지 이름과 인수의 목록입니다. 수신자(receiver)는 요청 받은 작업을 실행하기 위해 그 자체의 <ins style="font-weight: bold; text-decoration: none;">메서드를 </ins>선택하여 어떻게 응답해야 할지를 결정합니다. 동일한 메시지에 응답하기 위해, 다양한 오브젝트들은 아마도 다른 <ins style="font-weight: bold; text-decoration: none;">메서드들을 </ins>가질 수 있지만, 메시지를 수신하였을 때, 반드시 동적으로 <ins style="font-weight: bold; text-decoration: none;">메서드가 </ins>선택되어야 합니다.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l16">Line 16:</td>
<td colspan="2" class="diff-lineno">Line 16:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>결론적으로, 우리는 동일한 메시지를 다양한 오브젝트들에 보낼 수 있으며, 각각의 오브젝트들은 메시지에 응답하기 위해 그 자신의 <del style="font-weight: bold; text-decoration: none;">메소드를 </del>가질 수 있을 것입니다. 우리는 +4 메시지에 응답하는 방법인, Smallinteger 3 또는 Point 1@2를 말하지 않습니다. 각각은, +를 사용할 자체 <del style="font-weight: bold; text-decoration: none;">메소드를 </del>갖고 있으며, 그 <del style="font-weight: bold; text-decoration: none;">메소드를 </del>사용하여 +4에 응답합니다. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>결론적으로, 우리는 동일한 메시지를 다양한 오브젝트들에 보낼 수 있으며, 각각의 오브젝트들은 메시지에 응답하기 위해 그 자신의 <ins style="font-weight: bold; text-decoration: none;">메서드를 </ins>가질 수 있을 것입니다. 우리는 +4 메시지에 응답하는 방법인, Smallinteger 3 또는 Point 1@2를 말하지 않습니다. 각각은, +를 사용할 자체 <ins style="font-weight: bold; text-decoration: none;">메서드를 </ins>갖고 있으며, 그 <ins style="font-weight: bold; text-decoration: none;">메서드를 </ins>사용하여 +4에 응답합니다. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>메시지(message sends)에 기인한 스몰토크 모델의 결과들 중 한가지는, 너무나 많은 책임을 갖고 있는 것으로 추정되는 거대한 절차 <del style="font-weight: bold; text-decoration: none;">메소드</del>(procedural <del style="font-weight: bold; text-decoration: none;">method</del>)보다는, 다른 오브젝트들에 작업들을 위임하거나, 매우 작은 <del style="font-weight: bold; text-decoration: none;">메소드들을 </del>갖는 경향이 있는 오브젝트들이 소재한 위치에서, 하나의 형식을 권장한다는 것입니다. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>메시지(message sends)에 기인한 스몰토크 모델의 결과들 중 한가지는, 너무나 많은 책임을 갖고 있는 것으로 추정되는 거대한 절차 <ins style="font-weight: bold; text-decoration: none;">메서드</ins>(procedural <ins style="font-weight: bold; text-decoration: none;">메서드</ins>)보다는, 다른 오브젝트들에 작업들을 위임하거나, 매우 작은 <ins style="font-weight: bold; text-decoration: none;">메서드들을 </ins>갖는 경향이 있는 오브젝트들이 소재한 위치에서, 하나의 형식을 권장한다는 것입니다. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Joseph Pelrine는 다음과 같이 이 원리를 간결하게 표현하였습니다:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Joseph Pelrine는 다음과 같이 이 원리를 간결하게 표현하였습니다:</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l38">Line 38:</td>
<td colspan="2" class="diff-lineno">Line 38:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* 프리미티브(Primitives)는 메시지 보내기가 아닙니다. 프리미티브는 가상머신에서 실행됩니다.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* 프리미티브(Primitives)는 메시지 보내기가 아닙니다. 프리미티브는 가상머신에서 실행됩니다.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>이 약간의 예외들 외에, 거의 모든 작업은 메시지 보내기로 이루어집니다. 특별히, 스몰토크에서는 “공적 필드”가 존재하지 않기 때문에, 다른 오브젝트의 인스턴스 변수를 업데이트 하는 유일한 방법이란, 오브젝트에 메시지를 보내어 그 자신의 필드를 업데이트 하도록 요청하는 것 뿐입니다. 물론, 오브젝트의 모든 인스턴스 변수를 위해 setter와 getter <del style="font-weight: bold; text-decoration: none;">메소드를 </del>제공하는 것은 좋은 오브젝트 지향 형식(object-oriented style)이 아닙니다. Joseph Perlrine 또한 이 내용을 매우 훌륭하게 표현하였습니다. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>이 약간의 예외들 외에, 거의 모든 작업은 메시지 보내기로 이루어집니다. 특별히, 스몰토크에서는 “공적 필드”가 존재하지 않기 때문에, 다른 오브젝트의 인스턴스 변수를 업데이트 하는 유일한 방법이란, 오브젝트에 메시지를 보내어 그 자신의 필드를 업데이트 하도록 요청하는 것 뿐입니다. 물론, 오브젝트의 모든 인스턴스 변수를 위해 setter와 getter <ins style="font-weight: bold; text-decoration: none;">메서드를 </ins>제공하는 것은 좋은 오브젝트 지향 형식(object-oriented style)이 아닙니다. Joseph Perlrine 또한 이 내용을 매우 훌륭하게 표현하였습니다. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>
Onionmixer
https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&diff=1639&oldid=prev
Onionmixer: 스타일 수정
2012-08-22T12:47:14Z
<p>스타일 수정</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:47, 22 August 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l41">Line 41:</td>
<td colspan="2" class="diff-lineno">Line 41:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><<del style="font-weight: bold; text-decoration: none;">syntaxhighlight lang="text"</del>></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><<ins style="font-weight: bold; text-decoration: none;">center</ins>><ins style="font-weight: bold; text-decoration: none;">{{HighlightDoubleBox|</ins>누구도 여러분의 데이터를 손대지 못하게 하십시오.<ins style="font-weight: bold; text-decoration: none;">}}</ins></<ins style="font-weight: bold; text-decoration: none;">center</ins>></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>누구도 여러분의 데이터를 손대지 못하게 하십시오.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></<del style="font-weight: bold; text-decoration: none;">syntaxhighlight</del>></div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Notes==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Notes==</div></td></tr>
</table>
Onionmixer
https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&diff=1638&oldid=prev
Onionmixer: 스타일 수정
2012-08-22T12:46:17Z
<p>스타일 수정</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:46, 22 August 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l23">Line 23:</td>
<td colspan="2" class="diff-lineno">Line 23:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><<del style="font-weight: bold; text-decoration: none;">syntaxhighlight lang="text"</del>></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><<ins style="font-weight: bold; text-decoration: none;">center</ins>><ins style="font-weight: bold; text-decoration: none;">{{HighlightDoubleBox|</ins></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>다른 녀석에게 맞길 수 있는 일을 일부러 하지 마라</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>다른 녀석에게 맞길 수 있는 일을 일부러 하지 마라<ins style="font-weight: bold; text-decoration: none;"><br></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>(객체가 처리할 수 있는걸 다른곳에 두지 마세요)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>(객체가 처리할 수 있는걸 다른곳에 두지 마세요)</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></<del style="font-weight: bold; text-decoration: none;">syntaxhighlight</del>></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">}}</ins></<ins style="font-weight: bold; text-decoration: none;">center</ins>></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>
Onionmixer
https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&diff=1637&oldid=prev
Onionmixer at 03:33, 14 August 2012
2012-08-14T03:33:05Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 03:33, 14 August 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l24">Line 24:</td>
<td colspan="2" class="diff-lineno">Line 24:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="text"></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="text"></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">당신은 다른것에게 push(밀어내기)할 </del>수 있는 <del style="font-weight: bold; text-decoration: none;">어떤것도 </del>하지 <del style="font-weight: bold; text-decoration: none;">마시기 바랍니다</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">다른 녀석에게 맞길 </ins>수 있는 <ins style="font-weight: bold; text-decoration: none;">일을 일부러 </ins>하지 <ins style="font-weight: bold; text-decoration: none;">마라</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>(객체가 처리할 수 있는걸 다른곳에 두지 마세요)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>(객체가 처리할 수 있는걸 다른곳에 두지 마세요)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td></tr>
</table>
Onionmixer
https://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.5&diff=1636&oldid=prev
Onionmixer: SBE 모든것은메세지전송으로이루어집니다 페이지 추가
2012-08-14T03:32:28Z
<p>SBE 모든것은메세지전송으로이루어집니다 페이지 추가</p>
<p><b>New page</b></p><div>==모든 것은 메시지 전송으로 이루어 집니다.==<br />
<br />
이 규칙은 스몰토크에서 프로그래밍의 본질을 꿰뚫습니다(essence).<br />
<br />
절차상의 프로그래밍(procedural programming)에서, 실행해야 할 코드 조각의 선택은, 절차가 발신자(caller)를 사용하여 만들어 질 때 해야 합니다. 발신자는, 이름으로 정적으로 실행할 절차 또는 함수를 선택합니다.<br />
<br />
객체 지향 프로그래밍에서, 우리는 “call methods”:(메시지 부르기)를 하지 않고, “Send message”(메시지 보내기)를 사용합니다. 용어의 선택은 중요합니다. 각 오브젝트는 그 자신의 책임을 갖고 있습니다. 우리는 몇몇 절차를 오브젝트에 적용함으로써, 오브젝트가 무엇을 해야 할지 말하지 않습니다. 그 대신에, 우리는 오브젝트에게 메시지를 발송함으로써, 우리를 위해 오브젝트가 어떤 일을 수행해줄 것을 공손하게 요청합니다. 메시지는 코드의 조각이 아닙니다: 메시지는 아무것도 아니고, 단지 이름과 인수의 목록입니다. 수신자(receiver)는 요청 받은 작업을 실행하기 위해 그 자체의 메소드를 선택하여 어떻게 응답해야 할지를 결정합니다. 동일한 메시지에 응답하기 위해, 다양한 오브젝트들은 아마도 다른 메소드들을 가질 수 있지만, 메시지를 수신하였을 때, 반드시 동적으로 메소드가 선택되어야 합니다.<br />
<br />
<br />
{| style="border: 1px solid black;"<br />
|-<br />
|3+4||⇒ 7||''"'''integer 3''' 에 인자 '''4''' 와 함께 메세지 '''+''' 를 보낸다"''<br />
|-<br />
|(1@2) + 4||⇒ 5@6||''"'''point (1@2)''' 에 인자 '''4''' 와 함께 메세지 '''+''' 를 보낸다"''<br />
|}<br />
<br />
<br />
결론적으로, 우리는 동일한 메시지를 다양한 오브젝트들에 보낼 수 있으며, 각각의 오브젝트들은 메시지에 응답하기 위해 그 자신의 메소드를 가질 수 있을 것입니다. 우리는 +4 메시지에 응답하는 방법인, Smallinteger 3 또는 Point 1@2를 말하지 않습니다. 각각은, +를 사용할 자체 메소드를 갖고 있으며, 그 메소드를 사용하여 +4에 응답합니다. <br />
<br />
메시지(message sends)에 기인한 스몰토크 모델의 결과들 중 한가지는, 너무나 많은 책임을 갖고 있는 것으로 추정되는 거대한 절차 메소드(procedural method)보다는, 다른 오브젝트들에 작업들을 위임하거나, 매우 작은 메소드들을 갖는 경향이 있는 오브젝트들이 소재한 위치에서, 하나의 형식을 권장한다는 것입니다. <br />
<br />
Joseph Pelrine는 다음과 같이 이 원리를 간결하게 표현하였습니다:<br />
<br />
<br />
<syntaxhighlight lang="text"><br />
당신은 다른것에게 push(밀어내기)할 수 있는 어떤것도 하지 마시기 바랍니다<br />
(객체가 처리할 수 있는걸 다른곳에 두지 마세요)<br />
</syntaxhighlight><br />
<br />
<br />
많은 오브젝트 지향 언어는 오브젝트를 위해 정적, 동적 연산을 제공하지만, 스몰토크에서는 오직 동적 메시지 보내기만 제공됩니다. 정적 클래스 연산(static class permeation)을 제공하는 대신에, 실제적으로, 클래스는 오브젝트이기에, 우리는 단순히 클래스에 메시지를 보내어 작업을 수행합니다.<br />
<br />
스몰토크에서 거의 모든 작업은은 메시지 보내기로 이루어집니다. 하지만 소수의 몇 가지 행동은 반드시 취해야 합니다:<br />
<br />
* 변수 공표(variable declaration)은 메시지 보내기가 아닙니다. 사실, 변수 공표는 심지어 실행 가능하지도 않습니다. 변수를 공표하는 것은 단지 공간을 다른 오브젝트 참조(object reference)에 위해 할당되도록 만드는 것입니다.<br />
* 할당(Assignments)은 메시지 보내기가 아닙니다. 변수에 대한 할당은 변수 이름이 그 변수의 정의 범위 내에서 신선하게 묶이도록 합니다. <br />
* 리턴은 메시지 보내기가 아닙니다. 리턴은 단순히 연산된 결과가 발신자(sender)에 리턴 되도록 만들 뿐입니다.<br />
* 프리미티브(Primitives)는 메시지 보내기가 아닙니다. 프리미티브는 가상머신에서 실행됩니다.<br />
<br />
이 약간의 예외들 외에, 거의 모든 작업은 메시지 보내기로 이루어집니다. 특별히, 스몰토크에서는 “공적 필드”가 존재하지 않기 때문에, 다른 오브젝트의 인스턴스 변수를 업데이트 하는 유일한 방법이란, 오브젝트에 메시지를 보내어 그 자신의 필드를 업데이트 하도록 요청하는 것 뿐입니다. 물론, 오브젝트의 모든 인스턴스 변수를 위해 setter와 getter 메소드를 제공하는 것은 좋은 오브젝트 지향 형식(object-oriented style)이 아닙니다. Joseph Perlrine 또한 이 내용을 매우 훌륭하게 표현하였습니다. <br />
<br />
<br />
<syntaxhighlight lang="text"><br />
누구도 여러분의 데이터를 손대지 못하게 하십시오.<br />
</syntaxhighlight><br />
<br />
==Notes==<br />
<references /><br />
<br />
[[Category:SqueakByExample]]</div>
Onionmixer