<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=AndreaSmalltalkLecture%3AQnA_08</id>
	<title>AndreaSmalltalkLecture:QnA 08 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=AndreaSmalltalkLecture%3AQnA_08"/>
	<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=AndreaSmalltalkLecture:QnA_08&amp;action=history"/>
	<updated>2026-04-21T08:12:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://workspace.onionmixer.net/wiki/index.php?title=AndreaSmalltalkLecture:QnA_08&amp;diff=753&amp;oldid=prev</id>
		<title>Onionmixer: 안드레아::질문과답-8 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=AndreaSmalltalkLecture:QnA_08&amp;diff=753&amp;oldid=prev"/>
		<updated>2013-12-05T15:07:13Z</updated>

		<summary type="html">&lt;p&gt;안드레아::질문과답-8 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;질문과 답변-8::Smaltlalk와 실행파일 배포&lt;br /&gt;
&lt;br /&gt;
==Smaltlalk와 실행파일 배포==&lt;br /&gt;
&lt;br /&gt;
좀 늦은 감은 있지만 Smalltalk로 만들어진 프로그램의 배포에 대해서 이야기를 좀할까 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Smalltalk는 Java와 비슷한 방식으로 프로그램을 실행합니다. 일터에서 입력한 글토막이나 갈래(class)의 길수(method)를 지을 때 써 주는 바탕글은 우선 번역기, 그러니까 Compiler에 의해서 바이트 명령으로 번역됩니다. 이렇게 번역된 명령을 Smalltalk 가상 기계(Virtual Machine)가 통역(interpreting)하여 결과를 실행한답니다. Java가 개발되기 전 10년이 훨씬 넘은 싯점에서 벌써 가상기계와 바이트 명령 통역기가 사용되었다는 것을 보면, Smalltalk를 만든 Xerox의 ParcPlace가 선견지명이 있다고 하겠습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
대부분의 Smalltalk는 이렇게 돌아갑니다. 그렇기 때문에 실행파일을 만들려면 별도의 도구가 필요합니다. 실행파일에는 바이트 명령 통역기와 사용자가 만든 Smalltalk 프로그램이 함께 들어 있습니다. 물론 Smalltalk의 모든 것은 객체이고 이 객체는 나름의 갈래에 딸려있으므로, 프로그램 또한 갈래와 객체들을 모아놓은 것일 것입니다. Smalltalk는 이들을 하나의 꾸러미(package)에 넣어두고, 필요하면 이 꾸러미 자체와 꾸러미에서 사용하는 갈래나 객체들을 실행파일에 한데 묶어놓는 방법을 취합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
실은 Smalltalk에서 독립실행파일을 만들 수 있게 된 것은 그리 오래되지 않았습니다. 그도그럴것이 Smalltalk 환경 자체가 다른 언어의 환경에 비해 매우 작은 크기였기 문에, Smalltalk환경 자체를 배포해도 되었었습니다. 그러나 윈도 운영체계로 넘어오면서 실행파일의 크기가 무시할 수 없을 정도가 되자 Smalltalk 환경에서 필요한 갈래와 객체들만 뽑아내어서 실행파일을 만들 수 있게 한 것이지요.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
아쉽지만 Dolphin Smalltalk에서 독립형 실행파일을 만들려면 &amp;quot;ADK&amp;quot; 즉, Application Deployment Kit이란 꾸러미를 구입해야 합니다. 물론 이 꾸러미의 가격이 약 70$ 정도밖에 안 되기 때문에 다른 환경에 비해서 비교적 저렴하게 상용제품을 만들 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
물론 독립실행파일을 만들 수 없다고 해서 현재 공개된 Dolphin Smalltalk 의 질 자체가 떨어지는 것은 아닙니다. ADK는 단지 몇 십개가 안 되는 갈래들(주로 실행파일을 만들고 정보를 관리하고 개발 환경과 실행환경을 교체해 주는 부분)로 이루어져있기 때문이지요.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dolphin이 아닌 다른 Smalltalk의 경우 역시 독립실행파일을 만들 수 있도록 해 놓았습니다. 그래도 널리 쓰이는 VisualWorks for Smalltalk나, Visual Ages for Smalltalk 역시 독립실행파일을 지원합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Smalltalk-MT 라는 시스템은 바이트 명령을 거치지 않고 바로 기계어로 번역을 합니다. 그렇기 때문에 다른 Smalltalk들 보다는 생성된 프로그램의 실행속도가 빠릅니다. 그러나 Smalltalk-MT는 ANSI에서 정한 표준 Smalltalk의 규정에 맞지않는 것들이 많다는 단점이 있습니다. 역시 30 일간 사용할 수 있는 평가판에서는 실행파일을 만들 수 없으나, 상용판에서는 실행파일을 만들 수 있습니다. 또한 Smalltalk-MT는 다중 스레드(multi thread)로 돌아가기 때문에 DLL을 만들 수 있으며, ActiveX 컨트롤의 생성도 가능하다고 들었습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Smalltalk는 내가 필요하면 얼마든지 객체의 행동을 바꾸어줄 수 있는 유연한 환경이기 때문에, ADK 없이 실행파일을 만드는 방법을 생각해보고 있습니다. 글쎄요. 그러려면 Smalltalk의 안쪽을 훤히 꿰뚫어야할터인데....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C/C++를 공부할 때에는 문법 공부가 전체의 40% 가량을 차지한다고 해도 과언이 아니지만, Smalltalk의 경우 문법 공부는 전체의 10%도 안 됩니다. 나머지 90%를 갈래다발(class library)와 객체들의 관계(framework)를 공부하는데 씁니다. 음, 앞으로 열심히 하겠습니다. 지켜봐주십시오.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:AndreaSmalltalkLecture]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>