<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=VisualWorksIntroduction%3APage06</id>
	<title>VisualWorksIntroduction:Page06 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=VisualWorksIntroduction%3APage06"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=VisualWorksIntroduction:Page06&amp;action=history"/>
	<updated>2026-04-21T12:51:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=VisualWorksIntroduction:Page06&amp;diff=2727&amp;oldid=prev</id>
		<title>Onionmixer: VisualWorksIntroduction page06 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=VisualWorksIntroduction:Page06&amp;diff=2727&amp;oldid=prev"/>
		<updated>2012-12-13T09:57:06Z</updated>

		<summary type="html">&lt;p&gt;VisualWorksIntroduction page06 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{CincomTop|{{CincomSmalltalkHeadBanner||입문서 : 시스템 브라우저(파트1)}}}}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: none; width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;width:60px;float:left;&amp;quot; | {{HeadImageOpenbook}}&lt;br /&gt;
| VisualWorks 개발환경에서는 스몰토크 이미지의 주요구성(네임스페이스, 패키지, 클래스, 프로토콜, 메서드, 퍼셀)을 표시하거나 편집하기 위한 System Browser가 있습니다. &amp;quot;이미지&amp;quot;는 이것들의 컴포넌트를 포함한 실행파일(확장자 &amp;quot;im&amp;quot;)입니다.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;width:60px;float:left;&amp;quot; | {{HeadImageCertifacate}}&lt;br /&gt;
| {{CincomSmalltalkGreenBigFont|이 입문서는 시스템 브라우저를 간단히 설명하고 예제를 해설하겠습니다.}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;width:60px;float:left;&amp;quot; | {{HeadImageDesign}}&lt;br /&gt;
| 아래의 연습은 {{HighlightBold|System Browser}}의 상단에 위치한 네 개의 창의 연동에 대해 연습하겠습니다.&lt;br /&gt;
그림 {{HighlightBold|B-1}}을 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
[[image:cincom_tutorial1_fig73a.gif|none|641px|thumb|그림 B-1. 시스템 브라우저의 화면 구성-(그림 7-4와 같음)]]&lt;br /&gt;
&lt;br /&gt;
맨 처음 창은 {{HighlightBold|패키지}}의 목록입니다. 우선 {{HighlightBold|Magnitude}}를 찾을때까지 스크롤합니다. 찾았다면 명칭 왼쪽에 있는 십자버튼을 클릭해서 전개합니다. 그리고, {{HighlightBold|Magnitude-General}}을 클릭(선택)해 주십시오. 그러면 옆 창에 다섯 가지 클래스가 목록에 표시 됩니다.&lt;br /&gt;
&lt;br /&gt;
* {{HighlightBold|Character}}&lt;br /&gt;
* {{HighlightBold|Date}}&lt;br /&gt;
* {{HighlightBold|Magnitude}}&lt;br /&gt;
* {{HighlightBold|Time}}&lt;br /&gt;
* {{HighlightBold|TimeZone}}&lt;br /&gt;
&lt;br /&gt;
이것은 {{HighlightBold|클래스}} 창입니다. 그러면 {{HighlightBold|Date}}를 클릭(선택)해 주십시오. 세 번째 창은 {{HighlightBold|프로토콜}} 목록입니다. 이 목록은 선택된 상부 창의 탭에 의존합니다. {{HighlightBold|클래스}} 탭을 클릭해 주십시오. 네 개의 프로토콜이 목록에 표시 됩니다.&lt;br /&gt;
&lt;br /&gt;
* {{HighlightBold|class initialization}}&lt;br /&gt;
* {{HighlightBold|general inquiries}}&lt;br /&gt;
* {{HighlightBold|instance creation}}&lt;br /&gt;
* {{HighlightBold|private}}&lt;br /&gt;
&lt;br /&gt;
{{HighlightBold|Instance creation}} 프로토콜을 클릭(선택)해 주십시오. 옆 창에는 여섯 개의 메서드가 목록에 표시 됩니다.&lt;br /&gt;
&lt;br /&gt;
* {{HighlightBold|fromDays:}}&lt;br /&gt;
* {{HighlightBold|newDay:month:year:}}&lt;br /&gt;
* {{HighlightBold|newDay:monthNumber:year:}}&lt;br /&gt;
* {{HighlightBold|newDay:year}}&lt;br /&gt;
* {{HighlightBold|readFrom:}}&lt;br /&gt;
* {{HighlightBold|today}}&lt;br /&gt;
&lt;br /&gt;
{{HighlightBold|today}} 메서드를 클릭(선택)해 주십시오. 텍스트가 아래 메서드 뷰에 표시됩니다. 이것은 {{HighlightBold|Date}} 클래스의 {{HighlightBold|today}} 메서드에 대한 실제 소스코드입니다.&lt;br /&gt;
&lt;br /&gt;
지금까지 설명한대로 선택하면, 화면은 아래와 같이 표시되어 있을 것입니다.&lt;br /&gt;
&lt;br /&gt;
[[image:cincom_introduction_figbrws1.gif|none|652px|thumb|그림 B-2. Date 클래스의 today 메서드]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
프로토콜 목록 상부에 있는 {{HighlightBold|인스턴스}} 탭을 클릭해 주십시오. 프로토콜 목록이 변경되었습니다. {{HighlightBold|Date}} 클래스의 인스턴스 메서드가 표시되어 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
클래스와 인스턴스라는 두 종류의 메서드의 구별을 이해하기 위해 아래와 같은 코드를 실행해 주십시오.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. 새로운 {{HighlightBold|Workspace}}를 엽니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 아래와 같은 코드를 입력해 주십시오.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Date today&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. 모든 코드를 반전(선택)하고 {{HighlightBold|&amp;lt;오퍼레이트 클릭&amp;gt;}}후 {{HighlightBold|Print}}를 선택해 주십시오.&lt;br /&gt;
&lt;br /&gt;
{{CincomSmalltalkBlueFont|코드 옆에 &amp;quot;오늘&amp;quot;의 날짜가 표시됩니다.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. 새로 아래와 같은 코드를 입력해 주십시오.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Date addDays: 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. 모든 코드를 반전(선택)하고 {{HighlightBold|&amp;lt;오퍼레이트 클릭&amp;gt;}}후 {{HighlightBold|Print}}를 선택해 주십시오.&lt;br /&gt;
&lt;br /&gt;
아래와 같은 다이얼로그 박스가 표시됩니다.&lt;br /&gt;
&lt;br /&gt;
[[image:cincom_introduction_figbrws2.gif|none|332px|thumb|그림 B-3. notifier 다이얼로그 박스]]&lt;br /&gt;
&lt;br /&gt;
{{CincomSmalltalkBlueFont|이것이 발생하는 이유는 {{HighlightBold|Date}}클래스의 클래스측 메서드에 {{HighlightBold|addDays:}} 메서드가 존재하지 않기 때문입니다. {{HighlightBold|addDays:}}는 {{HighlightBold|Date}} 클래스의 {{HighlightBold|인스턴스}}에 존재합니다. {{HighlightBold|today}} 메서드는 클래스 메서드이기 때문에 {{HighlightBold|Date}} 클래스에서 동작합니다.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. {{HighlightBold|notifier}} 다이얼로그 박스를 닫아 주십시오.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. 그리고, 아래 코드를 입력해 주십시오.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Date today addDays: 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. 모든 코드를 반전(선택)하고 {{HighlightBold|&amp;lt;오퍼레이트 클릭&amp;gt;}}후 {{HighlightBold|Print}}를 선택해 주십시오.&lt;br /&gt;
&lt;br /&gt;
{{CincomSmalltalkBlueFont|코드 옆에 &amp;quot;내일&amp;quot;의 날짜가 표시됩니다.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. 그러면 아래 코드를 입력해 주십시오&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Date tomorrow&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. 모든 코드를 반전(선택)하고 &amp;lt;오퍼레이트 클릭&amp;gt;후 프린트를 선택해 주십시오&lt;br /&gt;
&lt;br /&gt;
{{CincomSmalltalkBlueFont|{{HighlightBold|계속, 수정, 혹은 취소를 묻는 다이얼로그}} 박스가 표시됩니다. 왜냐면, {{HighlightBold|Date}} 클래스에 {{HighlightBold|tomorrow}}라는 메서드가 존재하지 않기 때문입니다. 그러면, 실행할 수 있도록 바꿔봅시다. 여기서는 {{HighlightBold|System Browser}}를 사용한 변경방법을 설명하겠습니다.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11. 프로토콜 목록 상부의 {{HighlightBold|클래스}} 탭을 클릭해 주십시오. 네 개의 프로토콜이 목록에 표시 됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12. {{HighlightBold|instance creation}} 프로토콜을 클릭(선택)해 주십시오. 표시된 메서드 목록의 여섯 개의 메서드 마지막에 {{HighlightBold|today} 메서드가 표시됩니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
13. {{HighlightBold|today}} 메서드를 클릭(선택)해 주십시오. today 메서드의 소스코드를 봐주십시오.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
14. 메서드 코드 뷰를 아래와 같이 바꿔주십시오.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
tomorrow &lt;br /&gt;
^self today addDays: 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
15. 메서드 코드 뷰에서 {{HighlightBold|&amp;lt;오퍼레이트 클릭&amp;gt;}}후 {{HighlightBold|Accept}}를 선택해 주십시오. 타이핑 미스가 없다면 입력된 코드는 &amp;quot;컴파일&amp;quot;되어 {{HighlightBold|tomorrow}} 메서드가 {{HighlightBold|Date}} 클래스의 클래스쪽 목록에 표시됩니다.&lt;br /&gt;
&lt;br /&gt;
아래 그림과 같은지 확인해 주십시오.&lt;br /&gt;
&lt;br /&gt;
[[image:cincom_introduction_figbrws3.gif|none|652px|thumb|그림 B-4. 클래스쪽의 tomorrow 메서드]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
16. {{HighlightBold|Workspace}}에 아래와 같이 코드를 입력해 주십시오.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Date tomorrow&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
17. 모든 코드를 반전(선택)하고 {{HighlightBold|&amp;lt;오퍼레이트 클릭&amp;gt;}}후 {{HighlightBold|Print}}를 선택해 주십시오&lt;br /&gt;
&lt;br /&gt;
{{CincomSmalltalkBlueFont|코드 옆에 &amp;quot;내일&amp;quot;의 날짜가 표시됩니다.}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;width:60px;float:left;&amp;quot; | {{HeadImageCertifacate}}&lt;br /&gt;
| &amp;lt;font style=&amp;quot;text-align:center;font-weight:bold; font-style: normal;font-size:110%;&amp;quot;&amp;gt;정리&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이 연습에서는 패키지, 클래스, 프로토콜, 메서드의 관계를 배웠습니다. {{HighlightBold|System Browser}}는 이것들의 관계를 확인하기 위해 사용합니다. 클래스 메서드와 인스턴스 메서드의 차이점도 인식하셨을 겁니다.&lt;br /&gt;
&lt;br /&gt;
마지막으로, {{HighlightBold|Date}}클래스의 클래스 메서드를 작성하기 위해서 {{HighlightBold|System Browser}}의 기능을 사용했습니다. 이 작업은 Inspect가 없었을지도 모릅니다. 후에 스몰토크로 프로그래밍 해간다면 믿을수 없으정도로 매력적인 존재라는 것을 인식할 수 있을 것입니다.&lt;br /&gt;
&lt;br /&gt;
스몰토크의 비주얼웍스에서는 기존의(제공된) 메서드와 클래스의 {{HighlightBold|모든}} 라이브러리에 접근할 수 있습니다. 자신의 클래스나 메서드를 작성하는 기능뿐만이 아닌, 기존의 것을 개량하는 힘도 필요합니다. 스몰토크 개발환경의 주도권은 개발자가 가지고 있습니다. 다른 언어에서 그러한 경우는 없죠.&lt;br /&gt;
|- style=&amp;quot;text-align:center;font-weight:bold; font-style: normal;font-size:120%;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;hr style=&amp;quot;color:black;background-color:black;height:4px;&amp;quot;&amp;gt; | 학습으로 돌아가기 |&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>