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.0349 sec