https://trans.onionmixer.net/mediawiki/index.php?title=DeepintoPharo:Chapter_04&feed=atom&action=history
DeepintoPharo:Chapter 04 - Revision history
2024-03-29T15:17:47Z
Revision history for this page on the wiki
MediaWiki 1.38.1
https://trans.onionmixer.net/mediawiki/index.php?title=DeepintoPharo:Chapter_04&diff=4357&oldid=prev
Onionmixer: 그림 확장자 밎 파일명 조정
2014-03-30T08:06:25Z
<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:06, 30 March 2014</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;"><div>원격 통신에는 네트워크를 통해 어느 정도의 데이터 바이트를 교환하는 시스템 프로세스를 최소한 두 개 수반한다. 각 프로세스는 최소 하나의 소켓을 통해 네트워크로 접근한다 (그림 4.1 참조). 소켓은 통신 네트워크 상의 플러그로 정의할 수 있다:</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>원격 통신에는 네트워크를 통해 어느 정도의 데이터 바이트를 교환하는 시스템 프로세스를 최소한 두 개 수반한다. 각 프로세스는 최소 하나의 소켓을 통해 네트워크로 접근한다 (그림 4.1 참조). 소켓은 통신 네트워크 상의 플러그로 정의할 수 있다:</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>[[image:DeepintoPharo_Image_4-1.<del style="font-weight: bold; text-decoration: none;">png</del>|그림 4.1: 소켓을 통한 프로세스간(Inter-Process) 원격 통신]]</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>[[image:DeepintoPharo_Image_4-1.<ins style="font-weight: bold; text-decoration: none;">jpg</ins>|그림 4.1: 소켓을 통한 프로세스간(Inter-Process) 원격 통신]]</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-l196">Line 196:</td>
<td colspan="2" class="diff-lineno">Line 196:</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>[[image:DeepintoPharo_Image_4-2.<del style="font-weight: bold; text-decoration: none;">png</del>|그림 4.2: 다중 클라이언트를 동시에 지원(server)하는 소켓 서버]]</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>[[image:DeepintoPharo_Image_4-2.<ins style="font-weight: bold; text-decoration: none;">jpg|640px</ins>|그림 4.2: 다중 클라이언트를 동시에 지원(server)하는 소켓 서버]]</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-l286">Line 286:</td>
<td colspan="2" class="diff-lineno">Line 286:</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>여기서는 동시성 문제를 다루는 EchoServer 클래스를 정의한다. 이 클래스는 동시적 클라이언트 쿼리를 처리하고, UI를 freeze시키지 않는다. 그림 4.3은 EchoServer가 두 개의 클라이언트를 처리하는 방법의 예를 보여준다. </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>여기서는 동시성 문제를 다루는 EchoServer 클래스를 정의한다. 이 클래스는 동시적 클라이언트 쿼리를 처리하고, UI를 freeze시키지 않는다. 그림 4.3은 EchoServer가 두 개의 클라이언트를 처리하는 방법의 예를 보여준다. </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>[[image:DeepintoPharo_Image_4-3.<del style="font-weight: bold; text-decoration: none;">png</del>|그림 4.3: 두 개의 클라이언트를 동시에 서빙(serving)하는 에코 서버]]</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>[[image:DeepintoPharo_Image_4-3.<ins style="font-weight: bold; text-decoration: none;">jpg|640px</ins>|그림 4.3: 두 개의 클라이언트를 동시에 서빙(serving)하는 에코 서버]]</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-l409">Line 409:</td>
<td colspan="2" class="diff-lineno">Line 409:</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>SocketStream은 TCP 소켓을 캡슐화하는 읽기-쓰기 스트림으로서, 기능 메서드 집합과 함께 버퍼링을 제공함으로써 데이터 교환을 수월하게 해준다. 이는 Socket 상에서 사용하기 쉬운 API 를 제공한다. </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>SocketStream은 TCP 소켓을 캡슐화하는 읽기-쓰기 스트림으로서, 기능 메서드 집합과 함께 버퍼링을 제공함으로써 데이터 교환을 수월하게 해준다. 이는 Socket 상에서 사용하기 쉬운 API 를 제공한다. </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>[[image:DeepintoPharo_Image_4-4.<del style="font-weight: bold; text-decoration: none;">png</del>|그림 4.4: SocketStream은 Socket을 수월한 방식으로 사용하도록 해준다.]]</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>[[image:DeepintoPharo_Image_4-4.<ins style="font-weight: bold; text-decoration: none;">jpg</ins>|그림 4.4: SocketStream은 Socket을 수월한 방식으로 사용하도록 해준다.]]</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=DeepintoPharo:Chapter_04&diff=4356&oldid=prev
Onionmixer: 오류수정
2014-02-28T15:13:39Z
<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 15:13, 28 February 2014</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l208">Line 208:</td>
<td colspan="2" class="diff-lineno">Line 208:</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.6: 기본 에코(Echo) 서버.</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.6: 기본 에코(Echo) 서버.</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><syntaxhighlight lang="smalltalk"></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="smalltalk"></div></td></tr>
</table>
Onionmixer
https://trans.onionmixer.net/mediawiki/index.php?title=DeepintoPharo:Chapter_04&diff=4355&oldid=prev
Onionmixer: 주석부분 추가
2014-02-17T05:37:30Z
<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 05:37, 17 February 2014</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l27">Line 27:</td>
<td colspan="2" class="diff-lineno">Line 27:</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;">LANs1과 </del>같은 다른 네트워크 상에서 널리 사용되는 두 가지 기본 프로토콜로 TCP/IP와 UDP/IP가 있다. </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;">LAN<ref name="주석4-1">근거리 통신망</ref>과 </ins>같은 다른 네트워크 상에서 널리 사용되는 두 가지 기본 프로토콜로 TCP/IP와 UDP/IP가 있다. </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-l68">Line 68:</td>
<td colspan="2" class="diff-lineno">Line 68:</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>스크립트 4.1는 소켓 주소 생성의 두 가지 예제를 제공한다. 첫 번째는 서버명을 설명하는 문자열로부터('www.esug.org') 주소를 생성하는 반면, 나머지 하나는 서버의 IP 주소를 나타내는 문자열로부터 ('127.0.0.1') 생성한다. NetNameResolver를 사용하기 위해서는 <del style="font-weight: bold; text-decoration: none;">DNS2를 </del>이용해 네트워크로 연결된 머신이 존재해야 함을 명심한다. 유일한 예외는 로컬 호스트 주소를 검색하는 경우인데, 자신의 소프트웨어(본문에서는 Pharo)를 실행시키는 머신을 참조하는 일반 주소인 127.0.0.1를 예로 들 수 있겠다. </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>스크립트 4.1는 소켓 주소 생성의 두 가지 예제를 제공한다. 첫 번째는 서버명을 설명하는 문자열로부터('www.esug.org') 주소를 생성하는 반면, 나머지 하나는 서버의 IP 주소를 나타내는 문자열로부터 ('127.0.0.1') 생성한다. NetNameResolver를 사용하기 위해서는 <ins style="font-weight: bold; text-decoration: none;">DNS<ref name="주석4-2">도메인 네임 시스템: 기본적으로 장치명을 그 IP 주소로 매핑하는 디렉터리</ref>를 </ins>이용해 네트워크로 연결된 머신이 존재해야 함을 명심한다. 유일한 예외는 로컬 호스트 주소를 검색하는 경우인데, 자신의 소프트웨어(본문에서는 Pharo)를 실행시키는 머신을 참조하는 일반 주소인 127.0.0.1를 예로 들 수 있겠다. </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-l165">Line 165:</td>
<td colspan="2" class="diff-lineno">Line 165:</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>위에서 설명한 단계를 요약하기 위해 스크립트 4.5의 서버로부터 웹 페이지를 가져오는 예제를 이용했다. 첫째, HTTP <del style="font-weight: bold; text-decoration: none;">3쿼리를 </del>가상으로 만들었다. 쿼리에 해당하는 문자열은 GET 키워드로 시작해 서버의 루트 파일을 요청하고 있음을 알리는 슬래시가 추가되었다. 프로토콜 버전 HTTP/1.1을 따른다. 두 번째 행은 웹 서버와 그 포트의 이름을 포함한다. HTTP 쿼리의 3, 4행은 우리 클라이언트가 수락한 포맷을 나타낸다. 우리는 쿼리의 결과를 Transcript 상에 표시할 것이기 때문에 HTTP 쿼리에 (Accept: 로 시작되는 행 참조) 클라이언트가 html 포맷으로 된 텍스트를 수락함을 명시하였다. </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>위에서 설명한 단계를 요약하기 위해 스크립트 4.5의 서버로부터 웹 페이지를 가져오는 예제를 이용했다. 첫째, HTTP<ins style="font-weight: bold; text-decoration: none;"><ref name="주석4-3">웹 통신에 사용되는 하이퍼텍스트 전송 규약.</ref>쿼리를 </ins>가상으로 만들었다. 쿼리에 해당하는 문자열은 GET 키워드로 시작해 서버의 루트 파일을 요청하고 있음을 알리는 슬래시가 추가되었다. 프로토콜 버전 HTTP/1.1을 따른다. 두 번째 행은 웹 서버와 그 포트의 이름을 포함한다. HTTP 쿼리의 3, 4행은 우리 클라이언트가 수락한 포맷을 나타낸다. 우리는 쿼리의 결과를 Transcript 상에 표시할 것이기 때문에 HTTP 쿼리에 (Accept: 로 시작되는 행 참조) 클라이언트가 html 포맷으로 된 텍스트를 수락함을 명시하였다. </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-l576">Line 576:</td>
<td colspan="2" class="diff-lineno">Line 576:</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>클라이언트 측의 소켓과 소켓 스트림에 관련된 여러 절에서 우리는 웹 서버와의 상호작용을 예로 들었다. 따라서 HTTP Get 쿼리를 가상으로 만들어 서버로 전송한다. 간단하고 플랫폼에 구애 받지 않는(flatform agnostic; 크로스 플랫폼을 의미) 실험을 위해 이러한 예제를 선택하였다. 실제 규모의 애플리케이션에서 HTTP를 수반하는 상호작용은, 기본 Pharo 배포판에 속한 Zinc HTTP Client/Server 라이브러리와 같이 더 높은 수준의 라이브러리를 이용해 코딩되어야 한다. <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>클라이언트 측의 소켓과 소켓 스트림에 관련된 여러 절에서 우리는 웹 서버와의 상호작용을 예로 들었다. 따라서 HTTP Get 쿼리를 가상으로 만들어 서버로 전송한다. 간단하고 플랫폼에 구애 받지 않는(flatform agnostic; 크로스 플랫폼을 의미) 실험을 위해 이러한 예제를 선택하였다. 실제 규모의 애플리케이션에서 HTTP를 수반하는 상호작용은, 기본 Pharo 배포판에 속한 Zinc HTTP Client/Server 라이브러리와 같이 더 높은 수준의 라이브러리를 이용해 코딩되어야 한다<ins style="font-weight: bold; text-decoration: none;"><ref name="주석4-4">http://zn.stfx.eu/zn/index.html</ref></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-l657">Line 657:</td>
<td colspan="2" class="diff-lineno">Line 657:</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;">rST5와 </del>같은 객체 요구 매개자(ORB)가 해결한다. ORB는 개발자를 네트워크 문제로부터 해방시켜주므로, 원격 객체들 간에 교환되는 메시지를 이용하여 원격 통신을 표현하도록 허용한다.</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;">rST<ref name="주석4-5">http://smalltalkhub.com/#!/~CAR/rST/</ref>와 </ins>같은 객체 요구 매개자(ORB)가 해결한다. ORB는 개발자를 네트워크 문제로부터 해방시켜주므로, 원격 객체들 간에 교환되는 메시지를 이용하여 원격 통신을 표현하도록 허용한다.</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=DeepintoPharo:Chapter_04&diff=4354&oldid=prev
Onionmixer: DIP 제 4 장 Socket(소켓) 페이지 추가
2014-02-07T09:47:33Z
<p>DIP 제 4 장 Socket(소켓) 페이지 추가</p>
<a href="https://trans.onionmixer.net/mediawiki/index.php?title=DeepintoPharo:Chapter_04&diff=4354">Show changes</a>
Onionmixer