E D R , A S I H C RSS

Small Talk_Introduce

~cpp 	
                      Smalltalk— Œ€•œ ‡ ๊ฐ€€ •ผ๊ธฐ
                                                         98. 11. 16. ๊น€ฐฌ™
                                             mailto:andrea92@mail.hitel.net

 ๊ธ€€ SmalltalkผŠ” ”„กœ๊ทธž˜ฐ –ธ–—  Œ€•œ ‡ ๊ฐ€€ ค‘š”•œ •ผ๊ธฐฅผ  ‹๊ณ  
žˆŠต‹ˆ‹ค. Dolphin Smalltalk  98„ งŒ“  Object  ArtsผŠ” šŒ‚ฌ๊ฐ€ “  "Dolphin 
Smalltalk White pager"˜ ‚šฉ—  œ๊ฐ€ ƒ๊ฐ•œ ๊ฒƒ„ ‡ ๊ฐ€€ ง™—ฌ„œ Smalltalk
— Œ€•œ •ผ๊ธฐฅผ ‹œž‘•  ค •‹ˆ‹ค. 

‚ฌ‹ค Smalltalk— ๊€•œ ๊ตญ‚˜ žฃŒŠ”  งคšฐ นˆ••œ Žธž…‹ˆ‹ค. ƒ•˜๊ฒŒ„  šฐฆฌ 
‚˜ผ—„œŠ” C/C++ ”„กœ๊ทธž˜ฐ –ธ–˜ ฃผฅ˜ฅผ ฃจ๊ณ  žˆœผฉฐ, š”ฆˆŒ€  Delphi
™€ Visual Basic„    ๊ทธ ค‘š”„ฅผ ”•˜๊ณ  žˆŠต‹ˆ‹ค. ๊ทธŸฌ‚˜  •ž‘ ๊ฐ€–ฅ ”„
กœ๊ทธž˜ฐ –ธ–˜ กฐƒž ™„๊ฒฐŒผ๊ณ  •  ˆ˜ žˆŠ” Smalltalk— Œ€•œ žฃŒŠ” ๊ฑฐ
˜ ฐพ•„๊ธฐ – ตŠต‹ˆ‹ค. Š” ƒšฉ Smalltalk ‹œŠค…œ˜ ๊ฐ€๊ฒฉ งŒงŒน˜  •Šœผฉฐ, 
Smalltalkฅผ  „‚ฐ ๊ตœก ๊ธฐ๊€—„œ ณ„กœ ค‘š”•˜€ •Š๊ฒŒ —ฌ๊ธฐ๊ณ  žˆ๊ธฐ •Œฌธ๊ธฐ„ •‹ˆ‹ค.
๊ทธŸฌ‚˜ 90…„Œ€— “ค–„œ„œ€„ฐ ›Œฅญ•œ ๊ณต๊ฐœšฉ Smalltalk ‹œŠค…œ งŽ ฐฐฌ˜
๊ณ  žˆœผฉฐ, •„ž๊ฐ€ žฃŒ‹ค— ˜ฌฆฐ Dolphin Smalltalk —ญ‹œ ๊ทธŸฐ ›Œฅญ•œ ๊ฐœฐœ ™˜
๊ฒฝ— †•‹ˆ‹ค.

 œ ฏธ••˜‚˜งˆ  €Š” Smalltalk— ๊€•œ žฃŒฅผ กฐ๊ธˆ”ฉ ž˜‹ฟŠ” Œ€กœ  —ฌŸฌถ„—๊ฒŒ 
†Œ๊ฐœ‹œผœ “œ ๊ฒƒž…‹ˆ‹ค. ฌผก  •œ ฒˆ— งŽ€ –‘„ “œฆฌ€Š” •˜๊ฒ €งŒ,  •žœผกœ 
˜ฌฆฌŠ” žฃŒ๊ฐ€ —ฌŸฌถ„ Smalltalkฅผ ๊ณต€•˜Š”ฐ žˆ–„œ ž‘œผ‚˜งˆ „›€ ˜—ˆœผ
 •˜Š” ฐ”žจž…‹ˆ‹ค.

จผ € Smalltalk –ธ–— Œ€•œ ๊ธฐณธ ธ ƒ๊ฐ๊ณผ ฒ •™„ ๊ฐ„‹จžˆ †Œ๊ฐœ•‹ˆ‹ค. ”žˆ“ค 
Smalltalk— Œ€• ๊ฐ€€๊ธฐ ‰ฌš ˜ค•“ค ˜•œ —ฌ๊ธฐ—„œ ‹คฃจ„ก •˜๊ฒ Šต‹ˆ‹ค. ๊ทธž˜
„œ Smalltalk   –ธ–Š” ฐฐ›Œณผ  งŒ•œ  ๊ฐ€น˜๊ฐ€ žˆ‹คŠ”   ๊ฒƒ๊ณผ ถฉถ„žˆ  ‹ค œ  ‘šฉ
(application) ”„กœ๊ทธžจ„ งŒ“œŠ”ฐ ‚ฌšฉ•  ˆ˜  žˆ‹คŠ” ๊ฒƒ„ •Œ ค“œฆฌ๊ณ ž •‹ˆ
‹ค.

1. ๊ฐ€–ฅ, ๊ทธฆฌ๊ณ  Smalltalk
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90…„Œ€ ˆ—Š” จธ€•Š•„ ฅธจ(software)Š” ๊ฐ(object)™€  €’ˆ(component)ฅผ 
‚ฌšฉ•˜—ฌ งŒ“ค–งˆ ๊ฒƒผŠ” •ผ๊ธฐ๊ฐ€ „ฑ–ˆŠต‹ˆ‹ค. ๊ณผ—ฐ ˜คŠ˜‚  งŽ€ ฅธ“ค
 ๊ฐ™€ €’ˆœผกœ งŒ“ค–€๊ณ  žˆœผฉฐ, COM‚˜ CORBA™€ ๊ฐ™ ๊ฐ™€ €’ˆ„ ค‘
‹œ•˜Š” —ฌŸฌ ๊ฐ€€ ๊ธฐˆ “ค ๊ฐœฐœ ‚ฌšฉ˜๊ณ  žˆŠต‹ˆ‹ค. 80…„Œ€ ˆฐ˜— “ฑžฅ•˜—ฌ 
ฅธจ ๊ฐœฐœ— •˜‚˜˜ ‹คž€ ‚ฌ๊ฑ ˜–ฒ„ฆฐ "๊ฐ €–ฅ"(Object Oriented) ŒจŸฌ
‹คž„€ ˜คŠ˜‚ — ™€„œŠ” ‚ฌ‹คƒ ฅธ˜ “  ˜—ญ—  šฉ˜Š” ŒจŸฌ‹คž„ ˜–
ฒ„ ธŠต‹ˆ‹ค. 
 œŠ” ––๊ฒŒ •˜ งˆ ข‹€ ฅธฅผ ‹ค นจฆฌ, ๊ทธฆฌ๊ณ  งŽ งŒ“ค ˆ˜ žˆŠƒ™€ 
”ถˆ– ‚ฌšฉž˜ š”๊ตฌ— ”ฐผ ฅธฅผ –ผงˆ‚˜ ‰ฝ๊ฒŒ œ €.๊€ฆฌ•  ˆ˜ žˆŠƒ๊ฐ€ ค‘
š”•œ ฌธ œกœ Œ€‘˜—ˆœผฉฐ, ๊ฐ€–ฅ ŒจŸฌ‹คž„€ Ÿฐ ฌธ œฅผ •๊ฒฐ•  ˆ˜ žˆŠ” •˜
‚˜˜ Œ€•ˆ„  œ‹œ• ฃผ—ˆŠต‹ˆ‹ค. 

˜คŠ˜‚  งŽ ‚ฌšฉ˜๊ณ  žˆŠ” C++, Java, Object Pascal “ฑ€ ‘ ”„กœ๊ทธž˜ฐ –ธ
–— ๊ฐ €–ฅ ŒจŸฌ‹คž„„  šฉ‹œ‚จ ข‹€ ˜ˆผ๊ณ  •  ˆ˜ žˆ๊ณ˜Šต‹ˆ‹ค. ๊ทธŸฌ‚˜ 
Ÿฌ•œ ‹œ„“ค€ ๊ธฐ— žฌ•˜Š” ŒจŸฌ‹คž„ œ„— ๊ฐ €–ฅ ŒจŸฌ‹คž„„ ง”Œš  ๊ฒฐ
๊ณผฅผ ˆž˜•˜—ฌ, •„š” ƒœผกœ ณตžก•œ –ธ– …„ธฅผ งŒ“ค๊ฒŒ ˜—ˆœผฉฐ, ๊ธฐ˜  ๊ตฌ
กฐ  ”„กœ๊ทธž˜ฐ Šต๊€— ตˆ™•œ šฐฆฌ“ค—๊ฒŒ ๊ฐ €–ฅ ๊ธฐ•„ ๊ตฌ˜„•  ˆ˜ žˆŠ” ƒ
๊ฐ˜ —ฌœ ฅผ —ˆšฉ•˜€ •Š•˜Šต‹ˆ‹ค. ‚ฌžŒ“ค€ ž‹  ฏธ •Œ๊ณ  žˆŠ” ฐฉ‹Œ€กœ ”„
กœ๊ทธž˜ฐ„ •˜๊ณ , ”ฐผ„œ ๊ฐ€–ฅ –ธ–กœ  งŒ“ค–ง„ ”„กœ๊ทธžจ  „˜€ ๊ฐ€–ฅ 
‹ต€ •ˆ€ ”„กœ๊ทธžจ ˜๊ณ  งŒ ๊ฒƒž…‹ˆ‹ค. ๊ทธž˜„œ  €Š” ˆœˆ˜•˜๊ฒŒ ๊ฐ€–ฅ ธ ๊€
 —„œ ฌธ œฅผ ฐ”ผŠ” ๊ฒƒ ––จ๊นŒ •˜๊ณ  ƒ๊ฐ•˜๊ฒŒ ˜—ˆœผฉฐ, ๊ทธž˜„œ  ฐพ•„‚๊ฒŒ 
œ ๊ฒƒ ฐ”กœ Smalltalk –ธ–ž…‹ˆ‹ค.

1980…„Œ€ ˆฐ˜— ฒ˜Œ Šต„ “œŸฌ‚ธ Smalltalk ‹œŠค…œ€ ‹น‹œ˜ ฅธœ„›šŒ
(software community)— ˜•  งคšฐ ค‘š”•œ ๊ฐ€–ฅ ”„กœ๊ทธž˜ฐ ™˜๊ฒฝœผกœ —ฌ๊ฒจ
กŒ๊ณ , Smalltalk˜ –ธ– …„ธŠ” ‹คฅธ  “  ๊ฐ€–ฅ ”„กœ๊ทธž˜ฐ –ธ–˜  žฃŒ€๊ฐ€ 
˜—ˆŠต‹ˆ‹ค. ˜•œ Smalltalk ™˜๊ฒฝ—„œ ‚ฌšฉ˜Š” งŽ€ ๊ฐœ…“ค šฐฆฌ๊ฐ€ ˜„žฌ ‚ฌšฉ
•˜๊ณ  žˆŠ” Delphi‚˜ Visual Basic “ฑ—  šฉ˜๊ณ  žˆŠ” ๊ฒƒœผกœ ณผ •Œ, Ÿฌ•œ ๊ฐ
€–ฅ ธ ™˜๊ฒฝ€ งคšฐ †’€ ƒ‚ฐ„ฑ„ ๊ฐ€€๊ณ  žˆ‹คŠ” ๊ฒƒ„ —ฌฃผŠ” ข‹€  ˜ˆผ
๊ณ  •˜๊ฒ Šต‹ˆ‹ค. 

๊ทธŸผ—„ ถˆ๊ตฌ•˜๊ณ  SmalltalkŠ” ฒ”šฉ ”„กœ๊ทธž˜ฐ –ธ–กœจ ‚ฌšฉ˜๊ธฐ—Š” ‡ ๊ฐ€€
˜ žฅฒฝ„ ๊ฐ€€๊ณ  žˆ—ˆŠต‹ˆ‹ค. Dolphin SmalltalkŠ” Ÿฌ•œ žฅฒฝ“ค„ ›ฐ–„˜–„œ 
งˆนจ‚ Smalltalk„ •˜‚˜˜ ›Œฅญ•œ ๊ฐœฐœ™˜๊ฒฝ   ˆ˜ žˆ‹คŠ” ๊ฒƒ„ —ฌฃผ๊ณ  žˆŠต
‹ˆ‹ค. Š” น„‹จ Dolphin SmalltalkงŒ •„‹ˆผ, „ฆฌ ‚ฌšฉ˜๊ณ  žˆŠ”  VisualAge 
for Smalltalk‚˜ Visual Smalltalk “ฑ˜ ™˜๊ฒฝ—„ ˜‘๊ฐ™  šฉ˜๊ณ  žˆœผฉฐ, ”ฐผ
„œ Ÿฌ•œ žฅฒฝ“ค€ ถ„…žˆ •๊ฒฐ  ˆ˜ žˆ‹คŠ” ๊ฒƒ„ —ฌค‹ˆ‹ค.

 œ ”žˆ ‰๊ฐ€˜๊ณ  žˆŠ” Smalltalk— Œ€•œ žฅฒฝ“ค—Š” ––ค ๊ฒƒ žˆŠ”€ •Œ•„
๊ฒ Šต‹ˆ‹ค. Œ€€ถ„ Smalltalk— Œ€•œ ‰๊ฐ€  ค‘—Š” ˜ค••„œ น„กฏœ ๊ฒƒ“ค  งŽœผ
ฉฐ, ๊ฒƒ Smalltalk๊ฐ€ ฒ”šฉ ”„กœ๊ทธž˜ฐ –ธ–กœจ “ฐŠ”ฐ •˜‚˜˜ ‹คž€ žฅฒฝ
 ˜—ˆ˜ ๊ฒƒž…‹ˆ‹ค.


2. SmalltalkŠ” Šฆฌ‹ค
~~~~~~~~~~~~~~~~~~~~~
1981…„ 8›”— ถœ‹œœ "Smalltalk-80"€ ฒซ ฒˆงธกœ ถœ‹œœ Smalltalk  ‹œŠค…œœผกœ
จ ฐ ˜ฏธฅผ ๊ฐ€€๊ณ  žˆ—ˆŠต‹ˆ‹ค.  Smalltalk-80  œŒ€กœ Œ•„๊ฐ€ ค  ค‘Œ€˜•
๊ธ‰ ฏธ‹ˆ“จ„ฐ ƒ˜ „ฑŠฅ„ ๊ฐ€ง„  ‹œŠค…œ •„š”–ˆŠต‹ˆ‹ค. š”ฆ˜€ •„ ‡€„ 
•Š๊ฒŒ ‚ฌšฉ˜๊ณ  žˆŠ”  œผกœ ฃจ–ง„ ๊ทธฆผ(bitmap graphic)๊ณผ ๊ทธž˜”ฝ ‚ฌšฉž  ™˜
๊ฒฝGUI), “  ๊ฒƒ ๊ฐฉฐ  ๊ฐ“ค ๊ฐ„— žฌ•˜Š” ƒ†„ฑ, ๊ทธฆฌ๊ณ  ๊ธฐ–ต ๊ณต๊ฐ„
„  šจœจ œผกœ  ๊€ฆฌ•˜๊ธฐ  œ„•œ  “ฐ ˆ๊ธฐ  ˆ˜ง‘(garbage  collection)  “ฑ  ฒ˜Œ 
Smalltalk—„œ †Œ๊ฐœœ Ÿฌ•œ ๊ฐœ…„ ๊ตฌ˜„•˜๊ธฐ œ„•„œŠ” ๊ทธ ‹น‹œกœจŠ” งคšฐ  †’
€ ‚ฌ–‘˜ ‹œŠค…œ  •„š”–ˆ˜ ๊ฒƒž…‹ˆ‹ค. น„ก  Ÿฌ•œ ๊ธฐŠฅ“ค ๊ฐœธšฉ  “จ„ฐ
(PC)—„œ ๊ตฌ˜„   ˆ˜Š” žˆ—ˆ๊ฒ €งŒ,  80…„Œ€— „ฆฌ  ‚ฌšฉ˜„Œ PC—„œ  Œ•„๊ฐ€Š” 
Smalltalkฅผ ƒ๊ฐ•œ‹ค? •„งˆ … น– •˜‚˜ฅผ  ˆ˜–‰•˜Š”ฐ กฑžˆ ‡ ‹ญˆŠ”  ๊ฑธ
๊ฒƒ ”–ˆ„ ๊ฒƒž…‹ˆ‹ค.

๊ทธŸฌ‚˜ €๊ธˆ€ ‹คฆ…‹ˆ‹ค. ฅธจ(hardware)Š” ˆˆ€‹  †„กœ ฐœ „•˜—ฌ, ˜„žฌ  šฐ
ฆฌ๊ฐ€ PCกœ “ฐ๊ณ  žˆŠ” Žœ‹ฐ—„๊ธ‰˜ “จ„ฐŠ” ๊ณผ๊ฑฐ 80…„Œ€— “ฐ˜ Œ€˜•  “จ„ฐ˜ 
„ฑŠฅ„ ›จ”ฌ ›ฐ–„˜๊ณ  žˆŠต‹ˆ‹ค. ˜•œ ฅธ—ญ‹œ งŽ ฐœ‹ฌ•˜—ฌ ๊ฐ™€ ‹œŠค…œผ
€ผ„ ‹ค šจœจ ธ  ˆ˜–‰ „ฑŠฅ„  žฅ•  ˆ˜ žˆ๊ฒŒ  ˜—ˆŠต‹ˆ‹ค.  œ  น„กœ†Œ 
SmalltalkŠ” 486DX 66  •„˜ ‹œŠค…œ—„œ„ ถฉถ„žˆ ž˜ Œ•„๊ฐˆ ˆ˜ žˆ๊ฒŒ ˜—ˆœผฉฐ, 
”žˆ šฐฆฌ“ค ‚ฌšฉ•˜๊ณ  žˆŠ” Žœ‹ฐ—„๊ธ‰ “จ„ฐ—„œŠ” ”šฑ ” ตœ ˜ „ฑŠฅ„  ฐœ
œ˜•˜๊ณ  žˆŠต‹ˆ‹ค. 

†„— Œ€•„œ •ผ๊ธฐ•  •Œ ˆ˜–‰  †„(running performance)™€ ”ถˆ– น งˆ  ˆ˜ 
—†Š” ๊ฒƒœผกœŠ” ๊ฐœฐœ †„๊ฐ€ žˆŠต‹ˆ‹ค. š”ฆ˜๊ณผ ๊ฐ™ —… ฒ˜ฆฌ š”๊ตฌ๊ฐ€ ณตžก•œ ๊ฒฝ
šฐ—Š” •‹น ๊ธฐŠฅ„ ˆ˜–‰•˜Š” ฅธ—ญ‹œ งคšฐ ณตžก•˜๊ฒŒ ๊ตฌ„ฑ  ˆ˜ ฐ–— —†Šต‹ˆ
‹ค.  œŠ” '“ธงŒ•˜‹ค'๊ณ  ƒ๊ฐ˜Š” ”„กœ๊ทธžจ„ ‘˜Ÿฌ ๊ทธ ฉน˜๊ฐ€ –งˆ–งˆ•˜๊ฒŒ 
น„Œ€• ธžˆŒ„ ณผ ˆ˜ žˆŠต‹ˆ‹ค. ”ฐผ„œ Ÿฌ•œ ”„กœ๊ทธžจ –ผงŒผ น ๊ฒŒ  ‹ค–‰
˜Š”๊ฐ€„ ค‘š”•˜๊ฒ €งŒ, –ผงŒผ นจฆฌ Ÿฌ•œ ”„กœ๊ทธžจ„ งŒ“ค ˆ˜ žˆŠƒ—  Œ€•œ 
๊ฒƒ„ ƒ‹น•œ ๊€‹ฌ˜ Œ€ƒ ˜๊ณ   žˆŠต‹ˆ‹ค. —ฌŸฌถ„€ ๊ฐœฐœ•˜Š”ฐ 6๊ฐœ›”  ๊ฑธฆฌ
๊ณ , ‹ค–‰•˜Š”ฐ 3ถ„ ๊ฑธฆฌŠ” ๊ฐœฐœ ™˜๊ฒฝ๊ณผ, ๊ฐœฐœ•˜Š”ฐ 3๊ฐœ›” ๊ฑธฆฌ๊ณ  ‹ค–‰•˜Š”
ฐ 6ถ„ ๊ฑธฆฌŠ” ๊ฐœฐœ ™˜๊ฒฝ žˆ‹ค, –Š „ „ ƒ•˜๊ฒ Šต‹ˆ๊นŒ? •„งˆ Œ€€ถ„˜ 
๊ฒฝšฐ ›„žฅผ „ ƒ•  ๊ฒƒž…‹ˆ‹ค. ผ‹จ น ฅธ ‹œ๊ฐ„ •ˆ— ”„กœ๊ทธžจ˜ ๊ฐœฐœ„ ‚ †“
œผ, ‚จŠ” ‹œ๊ฐ„€ ”„กœ๊ทธžจ˜ ˆ˜–‰ †„ –ฅƒ„ œ„• ถฉถ„žˆ • ˜ˆ•  ˆ˜ žˆ๊ธฐ •Œ
ฌธž…‹ˆ‹ค.

Smalltalk๊ฐ€ ฐ”กœ  ๊ทธŸฌ•œ ‹œŠค…œž…‹ˆ‹ค.  ถ„…žˆ ‡  ค„ •ˆ  ˜Š” ฐ˜ณต  ˆ˜–‰ฌธ
(loop)˜ ˆ˜–‰ ‹œ๊ฐ„„ ธก ••˜ SmalltalkŠ”  „ฆฌ “ฐŠ” ‹คฅธ –ธ–(C,  Object 
Pascal “ฑ)“ค‹ค Šฆฐ ๊ฒƒ€ ‚ฌ‹คž…‹ˆ‹ค.  ๊ทธŸฌ‚˜ ๊ฒƒ€ Smalltalk๊ฐ€  œ๊ณต•˜Š” 
ƒ‚ฐ„ฑ๊ณผ œต†ต„ฑ„ ƒ๊ฐ•˜ ถฉถ„žˆ ฌ„˜–งˆ ˆ˜ žˆ‹ค๊ณ  ƒ๊ฐ•‹ˆ‹ค. Java  –ธ
– ˜•œ ๊ฒฐฝ” C –ธ–™€ ๊ฐ™€  †„ฅผ ‚๊ธฐŠ” – ตŠต‹ˆ‹ค. ๊ทธŸฌ‚˜ Java๊ฐ€  ๊ฐ€€๊ณ  
žˆŠ” Šน„ฑ“ค€ ถฉถ„žˆ งŽ€ ‚ฌžŒ“ค Java— น  ธ“ค„ก งŒ“ค๊ณ  žˆŠต‹ˆ‹ค.
SmalltalkŠ” ฐ ‹œŠค…œ„ „ค๊ณ„•  •Œ ง„๊ฐ€ฅผ ฐœœ˜•‹ˆ‹ค. ๊ฐ€–ฅ  ŒจŸฌ‹คž„ผ
Š” ๊ฒƒ ›ž˜Š” ๊ฐ„‹จ•œ ฌธ œฅผ •๊ฒฐ•˜๊ธฐ‹คŠ” ฐ ‹œŠค…œ„ ––๊ฒŒ •˜ ‰ฝ๊ฒŒ „ค
๊ณ„•˜๊ณ  งŒ“ค ˆ˜ žˆŠ”๊ฐ€— ˆ „ งžถ”—ˆ๊ธฐ •Œฌธž…‹ˆ‹ค. C—„œŠ” ‘– ค„กœ  ‚  
”„กœ๊ทธžจ„, C++˜ ๊ฐˆž˜(class)ฅผ ‚ฌšฉ•˜—ฌ — ค„กœ งฐ‹ค๊ณ  •„œ, C++ –ธ–๊ฐ€  C
‹ค •˜‹คŠ” ‚ฌžŒ€ —†„ ๊ฒƒž…‹ˆ‹ค. งˆฐฌ๊ฐ€€กœ, Smalltalk –ธ–Š” ฐ  ‹œŠค…œ
„ „ค๊ณ„•˜๊ณ  ๊ฐœฐœ•˜Š”ฐ ”šฑ ” งŽ€ ž˜„ ‚˜ƒ€ƒ…‹ˆ‹ค. Š” ๊ฐ€–ฅ ŒจŸฌ‹คž„
„ ”ฐŠ” ฐ„œ ˜คŠ” …™••œ „ค๊ณ„ •Œฌธ— ๊ฐ€Šฅ•œ ๊ฒƒž…‹ˆ‹ค.

Dolphin Smalltalk™€ Delhi—„œ ›†Œˆ˜๊ฐ€ 200งŒ๊ฐœธ ฐฐ— €ˆ˜—„œ ––ค ๊ฐ’„ ฐพ
•„‚Š” ‹ค—˜„ –ˆŠต‹ˆ‹ค.

<ฐ”ƒ•๊ธ€ 1> 200งŒ๊ฐœ˜ ฐฐ——„œ Šน • ›†Œฅผ ฐพŠ” Delphi ”„กœ๊ทธžจ
----------------------------------------------------------
var
  Data: array[1 .. 2000000] of Integer;

procedure TForm1.Button1Click(Sender: TObject);
var
  i, Key: Integer;
begin
  // ฐฐ— ˆ๊ธฐ™”•˜๊ธฐ
  for i := 1 to High( Data ) do
    Data[i] := i * 2;

  Key := 6500000;       // žฌ•˜€ •ŠŠ” ๊ฐ’.

  for i := 1 to High( Data ) do
  begin
    if Data[i] = key then
    begin
      ShowMessage( IntToStr(i) );
      Exit;
    end;
  end;
  ShowMessage(' ฐพŒ');
-----------------------------------------------------------

<ฐ”ƒ•๊ธ€ 2> 200งŒ๊ฐœ˜ ฐฐ——„œ Šน • ›†Œฅผ ฐพŠ” Smalltalk ”„กœ๊ทธžจ
-----------------------------------------------------------
| data key |

"ฐฐ— ˆ๊ธฐ™”•˜๊ธฐ"
data := Array new: 2000000.
1 to: data size do: [ :i | data at: i put: i * 2. ].

key := 6500000. "žฌ•˜€ •ŠŠ” ๊ฐ’"

1 to: data size do: [ :i |
        (data at: i) = key ifTrue: [
                ^MessageBox notify: i displayString
        ]
].
MessageBox notify: ' ฐพŒ'.  
-----------------------------------------------------------

œ„˜ ๊ฐ„‹จ•œ ฒคน˜งˆฌ ‹ค—˜—„œ, Object Pascal„ ‚ฌšฉ•˜Š” Delphi˜ ๊ฒฝšฐŠ”  ‹ค
–‰•˜Š”ฐ 0.5ˆ„ †Œš”˜€ •Š€ฐ น„•,  Smalltalk˜ ๊ฒฝšฐŠ” •ฝ 5ˆ˜  ‹œ๊ฐ„ 
๊ฒฝ๊ณผ–ˆŠต‹ˆ‹ค. ™€ ๊ฐ™ 32น„Šธ˜ ™„ „•œ ๊ธฐ๊ณ„–กœ ฒˆ—ญ˜Š” ฒˆ—ญ˜• –ธ–™€  ๊ฐ
€–ฅ –ธ–ธ Smalltalk™€˜ ‹จˆœ ฐ˜ณตฌธ ‹ค–‰ „ฑŠฅ€ งคšฐ ฐ ฐจฅผ ˜€Šต‹ˆ
‹ค.  น„๊ตฅผ ๊ณ  ‹คง•˜Š” —ฌŸฌถ„ ๊ณ„‹œ‹ค, —ฌŸฌถ„ Smalltalk—  Œ€•„œ 
–Š   •„  •Œ•„๊ฐˆ  •Œ๊นŒ€,  ๊ทธ  ‹คง„  ž ‹œ   ‘–‘๊ธฐฅผ  ๊ถŒ•‹ˆ‹ค.   •ง, 
Smalltalk—Š” —ฌŸฌถ„ €๊ธˆ๊นŒ€ ƒ๊ฐ•˜€ –ˆ˜ ˆœˆ˜ ๊ฐ€–ฅ˜ ›ฆฌ๊ฐ€ ˆจ‰ฌ
๊ณ  žˆœผฉฐ, ๊ฒƒ€ —ฌŸฌถ„˜ ฅธจ ๊ฐœฐœ ฃผ๊ธฐฅผ ฌ๊ฒŒ ‹จ•‹œผœ ค„ ๊ฒƒž…‹ˆ‹ค.  
‹จˆœ•œ ‹ค—˜ •Œฌธ— Smalltalk— Œ€•œ  ๊ณต€ฅผ ค‘‹จ•˜‹ ‹ค, —ฌŸฌถ„€ ฐ  ๊ฒƒ„
–„ ˆ˜ žˆŠ” ๊ธฐšŒฅผ žƒŠ” ๊ฒƒผ๊ณ ,  ‹ค‹œ •œ ฒˆ ง”€ “œฆฝ‹ˆ‹ค. (ฌผก   •„ž„ 
ฒ˜Œ  ‹ค—˜„ • ๊ณ  Smalltalk˜ Šฆฐ †„— € ‹คง„ –ˆ€งŒ, Smalltalk
—Š” ๊ณผ—ฐ ‹คฅธ –ธ–๊ฐ€  œ๊ณต•˜€ •˜Š” SmalltalkงŒ˜ ๊ทธ —‡ ˆจ–žˆŠต‹ˆ‹ค. 
ถ„…žˆ!) 

•„šธŸฌ, œ„˜ ˜ˆ™€ ๊ฐ™ ๊ทน‹จ ธ ๊ฒฝšฐŠ” ‹ค œ ”„กœ๊ทธž˜ฐ—„œ ๊ทนžˆ “œฌธ ผผ
Š” ๊ฒƒ„ ฐธ๊ณ กœ  ง”€ “œฆฝ‹ˆ‹ค.  Smalltalk˜ †„  •Œฌธ— ‹คง•˜‹ค  ถ„ผ 
PowerBuilderฅผ ‚ฌšฉ•˜—ฌ  œ„˜ ˜ˆ œฅผ  งŒ“ค– ‹œ๊ธฐฅผ  ๊ถŒ•‹ˆ‹ค. ˜•œ  ˜„žฌ 
SmalltalkŠ” ‹ค–‰ †„ฅผ ๊ฐœ„ •˜๊ธฐ œ„•˜—ฌ งŽ€ —ฐ๊ตฌ๊ฐ€ ฃจ–€๊ณ  žˆ‹คŠ”  ๊ฒƒ„ 
ฐธ๊ณ กœ ง”€“œฆฝ‹ˆ‹ค.  –„ ‹ค–‰ †„˜ ฌธ œ— žˆ–„œ SmalltalkŠ” JAVA™€ ๊ฐ™
€ ฌธ œฅผ •ˆ๊ณ  žˆ‹ค๊ณ  ‹œ •๊ฐ€ น ฅผ ๊ฒƒž…‹ˆ‹ค. 


3. SmalltalkŠ” ฐฐšฐ๊ธฐ – ต‹ค
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ง€ ‹€ฆฐ งž…‹ˆ‹ค. Smalltalk˜ –ธ– …„ธ žŠ” ๊ทธ ฆ„—„œ  ง•ฃผ“ฏ 
งคšฐ ž‘œผฉฐ, ”ฐผ„œ C++‚˜ Java–ธ–™€ ๊ฐ™ –ธ– …„ธ™€ ฌธ• ณตžก•œ  –ธ–— 
น„• ตž ๊ฒƒ ๊ทนžˆ  Šต‹ˆ‹ค.  ‚ฌ‹ค€ ณ„กœ †€ผšธ ๊ฒƒ —†Š”ฐ, Smalltalk 
–ธ–ฅผ „ค๊ณ„•œ Xerox‚ฌ˜ —ฐ๊ตฌ›“ค€ •„“ค ‰ฝ๊ฒŒ ฐฐ›Œ„œ ‚ฌšฉ•  ˆ˜ žˆ๊ณ ,  ‰ฝ
๊ฒŒ ”„กœ๊ทธž˜ฐ„ งค ˆ˜ žˆŠ” ‹œŠค…œ„ ๊ฐœฐœ„ ›ž˜ ‘œกœ ‚ผ๊ณ  žˆ—ˆ๊ธฐ •Œฌธž…‹ˆ
‹ค. ‹ค œกœ Smalltalk –ธ–ฅผ ๊ณต€•œ € ‘ ‹ฌ ˜Š” ˆ“ฑ•™๊ต 5•™…„ •™ƒ —ฌ
ฆฌฝฅ„ฐ ‹œฎฌ ˆ„ฐฅผ  œž‘–ˆ‹คŠ” ‚ฌ‹ค Smalltalk  ‹œŠค…œ งคšฐ ’ต‹คŠ” ๊ฒƒ„ 
ฆ…• ค‹ˆ‹ค(›”๊ฐ„ งˆฌกœ†Œ”„Šธ,  •‹œŒ€).

Ÿฐ ˜ค•Š” •„งˆ ‹คŒ˜ ‘ ๊ฐ€€ ˜—ญ—„œ ๊ธฐธ•œ ๊ฒƒœผกœ ƒ๊ฐฉ‹ˆ‹ค.

šฐ„ , Smalltalk –ธ–Š” ฃผกœ ‚ฌšฉ˜Š”  –ธ–“ค— น„•„œ งคšฐ ‹ค‹คŠ”  ๊ฒƒž…‹ˆ
‹ค. C++‚˜ Java™€ ๊ฐ™ –ธ– …„ธ™€ ฌธ• งคšฐ ณตžก•˜—ฌ, ๊ทธ๊ฒƒ„ ตžˆŠ”ฐ ƒ
‹น•œ ‹œ๊ฐ„„ †Œน„–ˆ˜ ‚ฌžŒ“ค€ ‡ ๊ฐ€€„ •ˆ ˜Š” ๊ฐœ…œผกœ ฃจ–ง„ Smalltalk
˜ ๊ฐ„๊ฒฐ•œ ฌธ•—  ‘•˜๊ธฐ๊ฐ€ – คšธ ˆ˜„ žˆ„ ๊ฒƒž…‹ˆ‹ค. Smalltalk –ธ–Š” "๊ฐ
—๊ฒŒ €‹œฅผ ‚ฆฌ, ๊ฐŠ” ๊ทธ €‹œ— ”ฐผ ฐ˜‘•œ‹ค"Š” ๊ฐœ…„ † Œ€กœ  ฌธ•
„ ˜•„ฑ• ‚˜•„๊ฐ‘‹ˆ‹ค. ฆ‰ ‹คฅธ –ธ–ฒ˜Ÿผ ฌธ•„ ๊ทœ •ง“Š” ๊ฒƒ •„‹ˆผ,  ๊ฐ—
๊ฒŒ ‚Š” €‹œ๊ฐ€ ž—ฐžˆ Smalltalk˜ ฌธ•„ ฃจŠ” ๊ฒƒž…‹ˆ‹ค. Š” ก‚ฌ  ธ๊ฐ„
˜ –ธ– ๊ณ„™€ น„Šท•˜‹ค๊ณ  •  ˆ˜ žˆŠต‹ˆ‹ค. (ฌธ• จผ € ƒ๊ธ ๊ฒƒ •„‹ˆผ ง
„ •˜‹ค ‹ˆ ๊ฑฐ๊ธฐ„œ ฌธ• ˜•„ฑœ ๊ฒƒž…‹ˆ‹ค.)
”šฑ Smalltalk –ธ–˜ ฐ”ƒ•๊ธ€(source code)„  ‹คฅธ –ธ–“ค๊ณผ ๊ทธ  –‘
งคšฐ ‹คฆ„„ •Œ ˆ˜ žˆŠต‹ˆ‹ค.(<ฐ”ƒ•๊ธ€ 1>๊ณผ <ฐ”ƒ•๊ธ€ 2>ฅผ น„๊ต• ‹ญ‹œ˜ค) ๊ทธŸฌ
‚˜ –‘ ‹ค๊ธฐ •Œฌธ— – ต๊ฒŒ ผ ฟž…‹ˆ‹ค. ‹ค œกœ Smalltalk˜ ‡ ๊ฐ€€ ๊ฐœ
…„ •Œ๊ณ  ‚˜ ฐ”ƒ•๊ธ€„ งคšฐ ‰ฝ๊ฒŒ ฝ„ ˆ˜ žˆŠต‹ˆ‹ค.

Smalltalk๊ฐ€ – ต‹ค๊ณ  Š๊€Š” œ  ค‘ ๊ฐ€žฅ ฐ ฌธ œŠ” Smalltalk๊ฐ€ ๊ฐ€€๊ณ   žˆ
Š” ฐฉŒ€•˜„œ„ ™•žฅ„ฑ ›ฐ–‚œ ๊ฐˆž˜ ‹คฐœ(class library)•Œฌธ •„‹๊นŒ  •‹ˆ
‹ค. Smalltalkกœ “ธงŒ•œ ”„กœ๊ทธžจ„ งŒ“ค๊ธฐ œ„•„œŠ” •„š”กœ •˜Š” ๊ธฐŠฅ ˆ˜ฐฑ๊ฐœ
๊ฐ€ „˜Š” ฐฉŒ€•œ ๊ฐˆž˜ ค‘—„œ „Œ€ ––ค ๊ฐˆž˜— †• žˆŠ”€— Œ€•„œ ๊ฟฐ๊ณ  žˆ
–••˜Š”ฐ, ๊ฒƒ ผฐ˜ œผกœ ”„กœ๊ทธž˜ฐ˜ ˆž๊ฐ€  •ง „˜๊ธฐ ž˜“   'žฅฒฝ'
 ˜–ฒ„ฆฌŠ” ๊ฒƒž…‹ˆ‹ค. Smalltalkฅผ ‚ฌšฉ•„œ  € œ …•œ "Hello, world!"ฅผ ถœ
 ฅ•˜Š” ™„ „•œ ”„กœ๊ทธžจ„ งŒ“ค๊ณ  ๊ทธ๊ฒƒ„ ••˜ ค –Š  •„˜ ‹œ๊ฐ„ •„š”•‹ˆ‹ค. ๊ทธŸฌ‚˜ Smalltalk—„œ Hello World ”„กœ๊ทธžจ„ งŒ“ค ˆ˜ žˆ‹ค, ๊ทธ ‹คŒ€ 
 •ง ‰ฝ๊ฒŒ ‰ฝ๊ฒŒ „˜–๊ฐˆ ˆ˜ žˆŠต‹ˆ‹ค. C –ธ–˜ ๊ฒฝšฐ, Hello World ”„กœ๊ทธžจ„ งŒ
“ค๊ธฐŠ” ‰ฝ€งŒ, ๊ฒƒงŒ ๊ฐ€€๊ณ Š” C –ธ–—„œ ๊ณต€•••  ๊ธฐŠฅ ค‘— 10%„ •ˆ ˜
Š” ‚šฉฐ–— •Œ ˆ˜ —†Šต‹ˆ‹ค. Smalltalk—„œ Hello World ”„กœ๊ทธžจ„ งŒ“ค๊ณ   ๊ทธ
๊ฒƒ„ •–ˆ‹ค, Smalltalk –ธ–˜ 80% ƒ„  •ณต–ˆ‹ค๊ณ  •„ ๊ณผ–ธ •„‹ ๊ฒƒ
ž…‹ˆ‹ค.

๊ทธŸฐฐ ๊ฐˆž˜ ‹คฐœ„  ตžˆŠ” ๊ฒƒ  – ค›Œ„œ Smalltalk๊ฐ€  – ต‹ค, Š”  C++, 
Java ๊ทธฆฌ๊ณ  ‰ฝ‹ค๊ณ  —ฌ๊ฒจ€Š” Delphi‚˜ Visual Basic„ ๊ณต€•˜Š” ๊ฒƒ —ญ‹œ – ต‹ค
๊ณ  ••‹ˆ‹ค. Visual C++ฅผ ๊ฐ€€๊ณ   ”„กœ๊ทธžจ„ งœ ค  –„ MFC(Microsoft 
Foundation Classes)ผŠ”  ๊ฐˆž˜ ‹คฐœ„  ต˜€••˜๊ณ , Delphi˜  ๊ฒฝšฐ—Š” VCL 
(Visual Component Library)„ ๊ณต€•••˜ฉฐ, Java˜ ๊ฒฝšฐ„คŠ” JavaBeans‚˜  —ฌ
Ÿฌ ๊ฐ€€˜ ๊พธŸฌฏธ(package)— Œ€•„œ –Š  •„˜ €‹ •„š”•‹ˆ‹ค.

งˆ€ง‰œผกœ, Smalltalk ‹œŠค…œ€ Œ€™”‹ž…‹ˆ‹ค. ˜ˆ „— ฒ ‹„ ๊ณต€• ณธ ถ„
ผ Œ€™”‹ ๊ฐœฐœ ฐฉ• –ผงˆ‚˜ ‰ฌš€ฅผ •Œ ๊ฒƒž…‹ˆ‹ค. Smalltalk—„œŠ” … น–
ฅผ •œ ค„ ‹จœ„กœ ‹ค–‰‹œผœณผ ˆ˜ žˆœผฉฐ, ๊ทธ ๊ฒฐ๊ณผฅผ ฐ”กœ •Œ ˆ˜ žˆŠต‹ˆ‹ค. “จ„ฐ
™€ Œ€™”•˜“ฏ ––ค ผ„ ฒ˜ฆฌ•  ˆ˜ žˆ๊ธฐ •Œฌธ—, ตžˆ๊ธฐ๊ฐ€ งคšฐ ‰ฝŠต‹ˆ‹ค. ๊ทœ •
œ ฌธ•— ˜• ฐ”ƒ•๊ธ€„ “ฐ๊ณ  ๊ทธ๊ฒƒ„ ฒˆ—ญ(compile)•˜—ฌ ‹ค–‰••งŒ ๊ฒฐ๊ณผฅผ  –
„ ˆ˜ žˆŠ” –ธ–“ค— น„•„œ, Smalltalk˜ ๊ฒฝšฐ—Š” Œ€™”‹œผกœ … น–ฅผ ˆ˜–‰•  
ˆ˜ žˆŠ” –ธ–๊ธฐ •Œฌธ— Šนžˆ ˆž“ค  ฐฐšฐ๊ธฐ๊ฐ€ งคšฐ ‰ฝ‹ค๊ณ  •  ˆ˜  žˆŠต‹ˆ
‹ค. •ž„œ ง”€“œ ธ€งŒ, Smalltalk˜ † Š” "–ฆฐ•„“ค„ ‰ฝ๊ฒŒ ”„๊ณ ๊ทธžจ„  งค 
ˆ˜ žˆŠ” ™˜๊ฒฝ„ งŒ“คž"Š” ๊ฒƒž…‹ˆ‹ค. (ฌผก  ๊ทธ '–ฆฐ•„'๊ฐ€ ˜–๊ถŒ—  ตˆ™•••œ‹คŠ” ๊ฒƒ งˆŒ •„”•‹ˆ‹คงŒ...)

Ÿฐ ๊ฒƒ“ค„ ๊ณต€•˜„œ ™‹œ— ณตžก•œ –ธ– …„ธฅผ ๊ณต€•˜Š” ๊ฒƒ๊ณผ, ‹จˆœ•œ –ธ– 
…„ธ™€ Œ€™”‹ ๊ฐœฐœฅผ €›•˜Š” Smalltalkฅผ ๊ณต€•˜Š” ๊ฒƒ ค‘—, ๊ณผ—ฐ ––ค  ๊ฒƒ 
” – ค›Œ ผ๊นŒš”? ๊ทธ๊ฒƒ€ …ž —ฌŸฌถ„˜ Œ‹จ— งž๊น‹ˆ‹ค.


4. Smalltalk€ น„‹ธ‹ค
~~~~~~~~~~~~~~~~~~~~~
Š” •„ฃผ ๊ฐ„‹จ•˜๊ฒŒ ˜ˆฅผ “ค ˆ˜ žˆŠต‹ˆ‹ค. ๊ณต๊ฐœšฉ Smalltalk ‹œŠค…œ งŽ ‚˜™€ 
žˆœผฉฐ, Dolphin Smalltalk˜ ๊ฒฝšฐ—„ ƒšฉ  œ’ˆ๊ณผ ๊ณต๊ฐœšฉ  œ’ˆ„ ๊ฐ™  ‚†“๊ณ  
žˆŠต‹ˆ‹ค. ˜•œ Dolphin Smalltalk ƒšฉŒ˜ ๊ฒฝšฐŠ” •ฝ $50  •„˜ ๊ฐ€๊ฒฉœผกœ  ถฉ
ถ„žˆ ๊ตฌž…•  ˆ˜ žˆœผฉฐ, ฐ„ฐฒ Šค‚˜ ‘šฉ ”„กœ๊ทธžจ ฐฐฌ “ฑ˜ ๊ธฐŠฅ„ ฌ••œ 
๊พธŸฌฏธ ˜•ƒœกœ Œงค˜Š”  œ’ˆ˜ ๊ฒฝšฐ $219  •„˜ ๊ฐ€๊ฒฉ ถฉถ„žˆ ๊ตฌ•  ˆ˜ žˆŠต
‹ˆ‹ค. Smalltalk๊ฐ€ น„Œ‰‹ˆ๊นŒ?


5. SmalltalkŠ” ฌ‹ค
~~~~~~~~~~~~~~~~~~~
SmalltalkผŠ” ฆ„ ž๊ฐ€  ง ‚ฌ‹ค •„‹˜„ ฆ…• ค‹ˆ‹ค.  SmalltalkŠ” 
ž‘€ ‹œŠค…œž…‹ˆ‹ค. Š” žฅ    ˆ˜„ žˆ๊ณ  ™‹œ— ‹จ    ˆ˜„ žˆŠต‹ˆ‹ค.

ANSI X3J20‘œ€— ˜• ๊ทœ •œ ๊ฐˆž˜ ”ค„(class hierarchy)€  ”žˆ ณผ ˆ˜ žˆŠ” 
‹คฅธ ๊ฐ €–ฅ –ธ–˜ ๊ฐˆž˜ ‹คฐœ‹ค ” งŽ€ ๊ฒƒ„ ‹๊ณ  žˆŠต‹ˆ‹ค. C++˜ ๊ฒฝšฐ 
ANSI—„œ ‘œ€™”œ ๊ฐˆž˜ ‹คฐœ€ ๊ธฐณธ ธ ๊ฒƒ“ค ฟ๊ณ  Œ€€ถ„ C++ฅผ งŒ“ค– ŒŒŠ” 
šŒ‚ฌงˆ‹ค …ž ธ ๊ฐˆž˜ ‹คฐœ„ งŒ“ค– ‚ฌšฉ•˜๊ณ  žˆœผฉฐ, ”ฐผ„œ Š” ”žˆ ง•˜
Š” ๊ฒƒฒ˜Ÿผ ˜ธ™˜„ฑ ข‹€ C++ฅผ ž๊พธ ˜ธ™˜„ฑ —†Š” –ธ–กœ งŒ“œŠ” š”ธ ˜๊ณ  žˆŠต
‹ˆ‹ค(Visual C++˜ MFC™€ Borland C++˜ OWL„ ƒ๊ฐ• …‹œ‹ค.) ANSI ‘œ€„  ”ฐ
Š” Smalltalk˜๊ฒฝšฐŠ” ๊ธฐณธ œผกœ ฐฉŒ€•œ –‘˜ ๊ฐˆž˜ ‹คฐœ„ ๊ฐ€€๊ณ  žˆ€งŒ, 
Š” ฏธ ‘œ€™” œ ๊ฒƒ๊ธฐ •Œฌธ— Smalltalk˜ ˜ธ™˜„ฑ„ †’—ฌฃผŠ” ‰งค œ๊ฐ€ ฉ‹ˆ
‹ค.

Ÿฌ•œ ฐฉŒ€•œ ๊ฐˆž˜ ‹คฐœ ‘œ€™”จœผกœจ ƒ๊ฒจ‚˜Š” ‹จ œผกœŠ” Smalltalkกœ ”„
กœ๊ทธžจ„ ๊ฐœฐœ•  •Œ, Smalltalk ™˜๊ฒฝ ž๊ฐ€ ฐฉŒ€•งˆ ˆ˜ žˆ‹คŠ” ๊ฒƒ„ “ค ˆ˜ žˆ
Šต‹ˆ‹ค. ฌผก  ‹ค œ ‘šฉ ”„กœ๊ทธžจ„ ฐฐฌ•  •Œ—Š” ๊ฐœฐœ ‹จ๊ณ„—„œ‹คŠ” ›จ”ฌ ž‘
€ ฌ๊ธฐกœ ฐฐฌ๊ฐ€ ๊ฐ€Šฅ•˜€งŒ, ˜„žฌ˜  Smalltalk ๊ตฌ˜„ ๊ธฐˆ กœŠ” •„ง๊นŒ€  ‹คฅธ 
–ธ–กœ งŒ“ค–ง„ ”„กœ๊ทธžจ“ค‹คŠ” ๊ธฐ–ต ๊ณต๊ฐ„˜ †Œน„๊ฐ€ ฌ‹คŠ” ‹จ „ ๊ฐ€€๊ณ  žˆ
Šต‹ˆ‹ค. 

๊ทธŸฌ‚˜ Dolphin Smalltalk˜ ๊ฒฝšฐŠ” †ต ๊ตฌ˜„˜Š” Smalltalk˜ Šน„ฑ‹ค •œ  ‹จ
๊ณ„ ฐœ „œ ๊ธฐˆ „ ‚ฌšฉ•œผกœจ, ‹ค–‰ ŒŒผ ฐจ€•˜Š” ๊ธฐ–ต ๊ณต๊ฐ„˜  œ œจ„ งค
šฐ ‚ฎ๊ฒŒ •  ˆ˜ žˆ—ˆœผฉฐ, Š” Dolphin Smalltalk๊ฐ€ ‹คฅธ Smalltalk— น„•„œ ›”
“ฑ•œ „ฑŠฅ„ žฅ•  ˆ˜ žˆ„ก • €‹ค๊ณ  •‹ˆ‹ค. 

๊ธฐ–ต๊ณต๊ฐ„ †Œน„๊ฐ€ ‹ฌ•˜‹คŠ” ‰๊ฐ€— Œ€•„œ, Delphi‚˜ Visual Basic˜ ๊ฒฝšฐ™€ น„๊ต
• ‹ญ‹œ˜ค. ž› ธก •๊ธฐฅผ  ผœ †“€ ƒƒœ—„œ Delphi  4.0„ ‹ค–‰•  ๊ฒฝšฐ, •ฝ 
10%  „›„˜ ž›„ †Œน„•˜ฉฐ, Š” ๊ฐœฐœ ”„กœ๊ทธžจ € งˆˆ˜ก ”šฑ ” งŽ
 †Œน„•˜๊ฒŒ ฉ‹ˆ‹ค. (”„กœ Šธ— ”ฐผ„œŠ” •ฝ 30%˜ ž›„ †Œน„•  •Œ„ žˆ—ˆŠต
‹ˆ‹ค.) ๊ทธŸฌ‚˜ Dolphin Smalltalk˜ ๊ฒฝšฐ—Š” ๊ธฐณธ œผกœ •ฝ 3%˜ ž›„ †Œน„•‹ˆ‹ค. Š” ฏธ “  ๊ฐˆž˜ ‹คฐœ๊ณผ ๊ฐ“ค ‹ค ƒ„ฑœ ƒƒœ—„œ ฐจ€•˜Š” ๊ธฐ–ต
๊ณต๊ฐ„˜  œ œจž…‹ˆ‹ค. (†ต ฐฐฌ˜Š” Dolphin Smalltalk—Š” •ฝ 540๊ฐœ˜ ๊ฐˆž˜™€ 
45,000—ฌ๊ฐœ˜ ๊ฐ๊ฐ€ “ค–žˆŠต‹ˆ‹ค.)

–ฐŒ SmalltalkŠ” ฝ‹ˆ‹ค. ๊ทธŸฌ‚˜ ˜•œ ž‘Šต‹ˆ‹ค. ฐ ๊ฒƒ กฐ๊ฑ ‹จ    
ˆ˜งŒ€ —†Š” ๊ฒƒž…‹ˆ‹ค. ๊ทธŸฐฐ,  •ง Smalltalk๊ฐ€ ฝ‹ˆ๊นŒ? ๊ทธŸฐ€ ๊ทธ ‡€ •Š€€
Š” —ฌŸฌถ„ ง ‘ Smalltalkฅผ ๊ณฑšฐ•  •Œ ˆ˜ žˆ„ ๊ฒƒž…‹ˆ‹ค.


6. SmalltalkŠ” —ฐ๊ตฌšฉ –ธ–‹ค
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
•„งˆ  ฌธ œŠ” Smalltalk –ธ–๊ฐ€  ๊ฐœฐœœ ๊ณณ Xerox —ฐ๊ตฌ†Œฉฐ, ”ฐผ„œ  ƒšฉ 
ฒˆ—ญ๊ธฐ ๊ฐœฐœ šŒ‚ฌ“ค ‚†“Š” ๊ฒƒ‹คŠ” ‚ฎ€ ‹ค–‰ †„ •Œฌธ— ๊ธฐธ•œ  ๊ฒƒผ๊ณ  
ƒ๊ฐ•‹ˆ‹ค. ”žˆ Delphi‚˜ Visual Basic, C++ “ฑœผกœ Windows šฉ˜ ‘šฉ ”„กœ๊ทธ
žจ„ งŒ“ค ค๊ณ  •  •Œ งคšฐ †’€ ‹œŠค…œ ‚ฌ–‘ •„š”•‹ˆ‹ค. ๊ทธŸฌ‚˜  SmalltalkŠ” 
๊ทธ ‡€ •Š‹ค๊ณ  •ž„œ„ –ธ๊ธ‰•œ ฐ” žˆŠต‹ˆ‹ค. ˜•œ Smalltalk๊ฐ€ ๊ฐœฐœ  •Œ  ›ž˜€
„ฐ  ‚ฌšฉž   ธ„ฐŽ˜Šคฅผ ƒ„ฑ•˜Š”   ฐฉ•  งˆ จ˜–   žˆ—ˆœผฉฐ,  ˜ˆ „—Š” 
Smalltalkฅผ š˜๊ณ„กœ “ฐŠ” “จ„ฐ„ žˆ—ˆŠต‹ˆ‹ค. ”šฑ Dolphin Smalltalk˜ 
๊ฒฝšฐ—Š” WIN32 APIฅผ 90% ƒ €›•‹ˆ‹ค. ”ฐผ„œ ‘šฉ ”„กœ๊ทธžจ„ งŒ“œŠ”ฐ„ 
๊ฒฐฝ” ‹คฅธ ๊ฐœฐœ ™˜๊ฒฝ— น„•„œ ’ค–จ–€€ •ŠŠต‹ˆ‹ค.


7. š”•ฝ
~~~~~~~
Smalltalk, Šนžˆ Dolphin SmalltalkŠ” ‹คŒ„ €›•‹ˆ‹ค.

* Dolphin SmalltalkŠ” •™Šต‚˜ ‹ค œ  ‘šฉ ”„กœ๊ทธžจ„ ๊ฐœฐœ•  ˆ˜ žˆŠ”  ๊ณต๊ฐœšฉ 
  Smalltalkฅผ ฐฐฌ•‹ˆ‹ค.  œŠ” ๊ฐœฐœ  ™˜๊ฒฝ˜ ๊ตฌž… ๊ฐ€๊ฒฉ •Œฌธ— ง„คŠ”  ผ
   —†„ ๊ฒƒž…‹ˆ‹ค.
* ƒŒ€ œผกœ ž‘€ Smalltalk˜ ๊ฐœฐœ  ™˜๊ฒฝ€ ‚ฎ€ ‚ฌ–‘˜ “จ„ฐ—„œ„  ถฉถ„žˆ
  ‘šฉ ”„กœ๊ทธžจ„ ๊ฐœฐœ•  ˆ˜ žˆ„ก •  ˆ˜ žˆ„ ๊ฒƒž…‹ˆ‹ค.
* ANSI X3J20—„œ Smalltalk˜ ‘œ€„  ••˜๊ณ  žˆœผฉฐ, SmalltalkŠ” C++™€ ”ถˆ– 
  ‚ฐ—… ‘œ€ ˜–๊ฐ€๊ณ  žˆŠต‹ˆ‹ค.
* Dolphin Smalltalk—„œ   œ๊ณต•˜Š” '3๊ณ„ธต ‘šฉ  ”„กœ๊ทธžจ ˜•'(three  tiered 
  application framework)€ ”„กœ๊ทธžจ„ งคšฐ œต†ต„ฑžˆ๊ฒŒ งŒ“ค– ค‹ˆ‹ค.
* Dolphin   SmalltalkŠ” Windows  ‹œŠค…œ˜ “    ž›„ ‚ฌšฉ•   ˆ˜ žˆœผฉฐ, 
  Windows š˜ ๊ณ„˜ €›„ ฐ›„  ˆ˜ žˆŠต‹ˆ‹ค. Š” WIN32 API˜ ‚ฌšฉ„ 
  žฅ•ฃผฉฐ, ”ฐผ„œ WIndows ‘šฉ ”„กœ๊ทธžจ˜ ๊ฐœฐœ„ ‰ฝ๊ฒŒ • ค‹ˆ‹ค.

 œ Smalltalkฅผ •œ ฒˆ ๊ณต€• ‹ญ‹œ˜ค. ž‘๊ฒŒŠ” —ฌŸฌถ„˜ ๊ฐ€–ฅ ŒจŸฌ‹คž„„ 
ตžˆŠ” „๊ตฌกœจ, ฌ๊ฒŒŠ” ‹ค œ ”„กœ Šธฅผ ๊ฐœฐœ•  ˆ˜ žˆŠ” „๊ตฌกœจ,  Smalltalk
Š” —ฌŸฌถ„—๊ฒŒ  ฐ „  •  ๊ฒƒž…‹ˆ‹ค.  žฃŒ‹ค— ˜ฌ คง„  Dolphin  Smalltalk™€ 
Dolphin Education Centerฅผ ‚ฆฌฐ›๊ณ  Smalltalk ๊ณต€ฅผ ‹œž‘• ‹ญ‹œ˜ค.  ๊ทธฆฌ
๊ณ  šฐฆฌ •จ๊˜ ๊ณต€•‹œ‹ค. ๊ทธž˜„œ Smalltalk˜ žฃŒ๊ฐ€ ” ƒ นˆ••˜€  •Š„ก 
•‹œ‹ค.

•„ฃฐกœ •„žŠ” Smalltalk„ •˜‚˜˜ „๊ตฌกœ ƒ๊ฐ•‹ˆ‹ค.  €Š” Delphiฅผ ฃผกœ ‚ฌšฉ
•˜Š”ฐ, Smalltalkฅผ ๊ณต€•˜„œ ธŒŒฅผ ฐ”ผŠ” ‹œ๊ฐ ฐ”€Œ—ˆŠต‹ˆ‹ค. € ”
งˆ„œžˆ๊ณ , ๊€ฆฌ•˜๊ธฐ ‰ฌš ฝ”“œฅผ “ธ ˆ˜ žˆ๊ฒŒ ˜—ˆŠต‹ˆ‹ค. ๊ฐ €–ฅ —‡ธ€, 
 •ง ง„ ••œ ๊ฐ€–ฅ˜ ง„ˆ˜ฅผ ง›๊ณ  ‹ถœผ‹œ‹ค, Smalltalkฅผ ๊ผญ  ๊ถŒ•“œฆฝ‹ˆ
‹ค. ๊ฐ™ ๊ณต€•‹œ‹ค.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:03
Processing time 0.0322 sec