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