์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
TIOBE ์„ ์ • ์˜ฌํ•ด์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
2005๋…„
Java
โ†’
2006๋…„
Ruby
โ†’
2007๋…„
Python


1. ์†Œ๊ฐœ2. ๋ฒ„์ „3. ํŠน์ง•
3.1. ์ˆœ์ˆ˜ ๊ฐ์ฒด์ง€ํ–ฅ3.2. ํ•จ์ˆ˜ํ˜• ์–ธ์–ด3.3. ๋ฉ”ํƒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ3.4. ๊ทธ ์™ธ ํŠน์ง•
4. ์ธ๊ธฐ5. ๋ผ์ด๋ฒŒ6. ์›น ํ”„๋ ˆ์ž„์›Œํฌ7. ๊ธฐํƒ€8. ๋ฐ”๊นฅ ๊ณ ๋ฆฌ

1. ์†Œ๊ฐœ[ํŽธ์ง‘]

์ปดํ“จํ„ฐ๋ฅผ ๋ฐฐ์šด์ง€ ์–ผ๋งˆ ๋˜์ง€ ์•Š์•˜์„ ๋•Œ, ๋‚˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๊ด€์‹ฌ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ ์ด์ƒ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๋ฐ˜๋“œ์‹œ ์ด๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์—ˆ๊ณ , ๊ฐ€๋Šฅํ•˜๋ฉด ๊ทธ๋Ÿฐ ์–ธ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ๋””์ž์ด๋„ˆ๊ฐ€ ๋˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. (์ค‘๋žต)
๋‚˜๋Š” ํ–‰๋ณตํ•ด์ง€๊ธฐ ์œ„ํ•ด์„œ ์‚ด์•„๊ฐ„๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค(์ ์–ด๋„ ์–ด๋А ๋ถ€๋ฌธ์—์„œ๋Š”). ์ด๋Ÿฐ ๋ฏฟ์Œ์— ๋”ฐ๋ผ, ๋ฃจ๋น„๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‰ฌ์šฐ๋ฉด์„œ๋„ ์ฆ๊ฑฐ์šด ์ผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋””์ž์ธ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฃจ๋น„๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ฐฝ์กฐ์ ์ธ ๋ฉด์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๊ณ , ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ์ค„์—ฌ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
- ๋งˆ์ธ ๋ชจํ†  ์œ ํ‚คํžˆ๋กœ, Programming Ruby์˜ ์ถ”์ฒœ์‚ฌ์—์„œ
๋ฃจ๋น„๋Š” ๊ฐ„๊ฒฐํ•จ๊ณผ ์ƒ์‚ฐ์„ฑ์„ ๊ฐ•์กฐํ•œ ๋™์ ์ธ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋ฃจ๋น„์˜ ์šฐ์•„ํ•œ ๋ฌธ๋ฒ•์œผ๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ฝํžˆ๊ณ  ์“ฐ๊ธฐ ํŽธํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- ๋ฃจ๋น„ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€

์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์˜ ์ผ์ข…. 2021๋…„ 1์›” ๊ธฐ์ค€ ์ตœ์‹  ์•ˆ์ •ํ™” ๋ฒ„์ „์€ 3.0.0์ด๋‹ค[1]. ์ฐฝ์‹œ์ž๋Š” ๋งˆ์ธ ๋ชจํ†  ์œ ํ‚คํžˆ๋กœ(Matz)๋กœ 1995๋…„์— ๋ฐœํ‘œ๋˜์—ˆ๋‹ค. ๋™์„œ์–‘ ๋ชจ๋‘ ๋งˆ์ธ ๋ผ๋Š” ์• ์นญ์œผ๋กœ ๋ถ€๋ฅธ๋‹ค. ํŠธ์œ„ํ„ฐ bio๋ฅผ Rubyใฎใƒ‘ใƒ‘ (Ruby์˜ ์•„๋น )๋ผ๊ณ  ์“ธ ์ •๋„๋กœ Ruby์— ๋Œ€ํ•œ ์• ์ •์ด ๊ฐ•ํ•˜๋‹ค. ๊ทธ ๋•Œ๋ฌธ์ธ์ง€ Ruby ์œ ์ €๋“ค ์—ญ์‹œ ์ˆซ์ž๋Š” ์ ์ง€๋งŒ ์–ธ์–ด์— ๋Œ€ํ•œ ์• ์ฐฉ์ด ๊ฐ•ํ•œ ํŽธ์ด๋‹ค.

Python๊ณผ Perl, Smalltalk, Ada, Lisp, Eiffel ๋“ฑ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ๋ถ€ํ„ฐ ์ผ๋ถ€ ๋ฌธ๋ฒ• ์‚ฌํ•ญ์„ ๊ณ„์Šนํ•˜๊ณ  ๋ฐœ์ „์‹œ์ผœ, ์ผ๋ฐ˜์ ์ธ ๋ชฉ์ ์— ์ ํ•ฉํ•˜๊ฒŒ ๋งŒ๋“  ์–ธ์–ด์ด๋‹ค. ํŠนํžˆ Python์€ ์ง€๊ธˆ๋„ ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ผ์ด๋ฒŒ ๊ด€๊ณ„. ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์ด ์‰ฝ๊ณ  ํ™•์žฅ์ด ํŽธ๋ฆฌํ•ด์„œ, ์ž˜ ๋””์ž์ธ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ์‹œ์ž‘ํ•œ ์‚ฌ๋žŒ๋„ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ƒ๋Œ€์ ์œผ๋กœ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ๋งค๋ ฅ์ ์ด๋‹ค. ๊ทธ ๋•Œ๋ฌธ์— ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ง€๋งŒ, ๊ฐ์ฒด ์ง€ํ–ฅ์— ๋Œ€ํ•œ ํ”ํ•œ ์„ ์ž…๊ฒฌ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ดˆ๋ณด์ž๋“ค๋„ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

์„ธ๊ณ„ 10๋Œ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋กœ ๊ผฝํžˆ๊ธฐ๋„ ํ•˜์˜€์œผ๋ฉฐ, 2018๋…„ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์ €์žฅ์†Œ ๊ฐœ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ GitHub์—์„œ ์ธ๊ธฐ์–ธ์–ด 5์œ„์˜ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ–ˆ๋‹ค. Made in Japan์ด๋ผ์„œ์ธ์ง€ ์ผ๋ณธ์—์„œ๋Š” Python๋ณด๋‹ค๋„ ์ธ๊ธฐ๊ฐ€ ๋งŽ๋‹ค. ํŠนํžˆ ์›น ๊ฐœ๋ฐœ์—์„œ๋Š” ๋ฐฑ์—”๋“œ์— Ruby on Rails์™€ ํ•จ๊ป˜ ๋งŽ์ด ์“ฐ์ด๊ณ , ์‹ฌ์ง€์–ด ์ž„๋ฒ ๋””๋“œ์—๋„ ์“ฐ์ด๋Š” ๋“ฑ ๋‹ค๋ฐฉ๋ฉด์— ์ ˆ์ฐฌ๋ฆฌ ์“ฐ์ด๋Š” ์ค‘์ด๋‹ค. macOS์˜ ๊ฒฝ์šฐ El Capitan(10.11)๋ถ€ํ„ฐ ์ตœ์‹  ๋ฒ„์ „์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜์–ด ๋‚˜๊ฐ„๋‹ค. JetBrains์˜ RubyMine์ด๋ผ๋Š” IDE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Ruby์™€ RoR ์ฝ”๋“œ๋ฅผ ์†์‰ฝ๊ฒŒ ํŽธ์ง‘ํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ ๊ฐ™์€ ํ…์ŠคํŠธ ์—๋””ํ„ฐ์—์„œ๋„ Ruby ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ณตํ•œ๋‹ค.

์ด๋ฆ„์˜ ์œ ๋ž˜๋Š” ์ฐฝ์‹œ์ž ์ง€์ธ์˜ ํƒ„์ƒ์„์—์„œ ๋”ฐ์™”๋‹ค๊ณ  ํ•œ๋‹ค. ์ฆ‰ ์ง„์งœ๋กœ ๋ณด์„ ์ด๋ฆ„์—์„œ ๋”ฐ์˜จ ๊ฒƒ.

2. ๋ฒ„์ „[ํŽธ์ง‘]

๋ฃจ๋น„์˜ ๋ฒ„์ „์€ A.B.C ํ˜•์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ ์ผ๋ฐ˜์ ์ธ ์˜คํ”ˆ์†Œ์Šค ์ง„์˜์˜ ํ‘œ๊ธฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ B์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๊ฐ€ ํ™€์ˆ˜๋ฉด ๊ฐœ๋ฐœ๋ฒ„์ „, ์ง์ˆ˜๋ฉด ์•ˆ์ •ํ™” ๋ฒ„์ „์ด๋‹ค. ์˜คํ”ˆ ์ง„์˜์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ํ‘œ๊ธฐํ•œ๋‹ค. ๋ชจ๋‘ ๋‹ค ์ด ๋ฒ•์น™์„ ์ง€ํ‚ค๋Š”๊ฑด ์•„๋‹ˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ์˜คํ”ˆ ์†Œ์Šค ์ง„์˜์˜ ํ”„๋กœ๊ทธ๋žจ๋“ค์€ ์ด๋ ‡๊ฒŒ ๋ถ„๋ฅ˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ 1.9.x๋Š” ์˜ˆ์™ธ. 1.9 ์ž์ฒด๊ฐ€ ์•ˆ์ • ๋ฒ„์ „. ๋˜ํ•œ ๋ฃจ๋น„๋Š” 1.9๋ฒ„์ „์„ ๊ธฐ์ ์œผ๋กœ ํฐ ์„ฑ๋Šฅ์˜ ํ–ฅ์ƒ์ด ์žˆ์—ˆ์œผ๋ฉฐ, ์ด๋•Œ ์œ ์ €๋“ค ๋˜ํ•œ ๋งŽ์ด ์œ ์ž…๋˜์—ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— 1.9๋ฒ„์ „์€ ์ง€๊ธˆ๋„ ์‚ฌ์šฉ๋˜๋Š” ๊ณณ์ด ๊ฐ„๊ฐ„์ด ์žˆ์ง€๋งŒ, ๊ตฌ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์„œ ๋“๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์—†์œผ๋ฏ€๋กœ ํŠน์ˆ˜ํ•œ ์ผ€์ด์Šค๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์ž.

์ฒ˜๋ฆฌ๊ธฐ๋กœ๋Š” ๊ณต์‹ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์ธ MRI(Matz's Ruby Interpreter. C์–ธ์–ด๋กœ ๋งŒ๋“ค์–ด์ ธ์„œ CRuby๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•œ๋‹ค)๋ฅผ ํ•„๋‘๋กœ MacRuby, JRuby[2], IronRuby[3], Rubinius, MagLev ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋ฌผ๋ก  ํ‘œ์ค€ ๊ธฐ๋Šฅ์€ ์›์น™์ƒ ๋‹ค ๊ฐ™์•„์•ผ ํ•˜๋‚˜, ์–ด๋–ค ์–ธ์–ด๋กœ ์–ด๋–ค ๊ฐ€์ƒ ๋จธ์‹  ์œ„์—์„œ ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋А๋ƒ์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ๊ทผ๋ฐ ๋ฌธ์ œ๋Š” ๋ฃจ๋น„๋Š” ํ˜ธํ™˜์„ฑ์ด๋ผ๋Š” ๊ฐœ๋…์„ ๋ฐ˜์ •๋„ ์“ฐ๋ ˆ๊ธฐํ†ต์— ๊ฐ–๋‹ค ๋ฒ„๋ ค์„œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ข…๋ฅ˜๋Š” ๋‘˜์งธ์น˜๊ณ  ๋ฒ„์ „์ด ๋‹ค๋ฅด๋‹ค๊ณ  ํ˜ธํ™˜์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์™•์™• ์žˆ์—ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ๋ฃจ๋น„๋Š” ์œ ๋‹ฌ๋ฆฌ ์ตœ์‹ ๋ฒ„์ „์ด ๋งŽ์ด ๊ฐ•์กฐ๋œ๋‹ค.

3. ํŠน์ง•[ํŽธ์ง‘]

3.1. ์ˆœ์ˆ˜ ๊ฐ์ฒด์ง€ํ–ฅ[ํŽธ์ง‘]

์ˆœ์ˆ˜ ๊ฐ์ฒด์ง€ํ–ฅ์  ์–ธ์–ด๋Š” ์›์‹œ ์ž๋ฃŒํ˜•์ด ์‚ฌ์‹ค์ƒ ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ๊ฒƒ์€ ๊ฐ์ฒด์ธ ์–ธ์–ด๋ฅผ ๋งํ•˜๋Š”๋ฐ, ๋ฃจ๋น„๊ฐ€ ์ด๋Ÿฐ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด ์ค‘ ์˜ˆ๋ฅผ ๋“ค์–ด์„œ Java์˜ ๊ฒฝ์šฐ์—๋Š” int, char ๋“ฑ ์›์‹œ ์ž๋ฃŒํ˜•์ด ์žˆ๊ณ , ๊ทธ๊ฒƒ์„ Boxingํ•œ Integer, Character ๋“ฑ์˜ ๋ž˜ํผ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. ๋ฃจ๋น„๋Š” ์ด๋Ÿฌํ•œ ํด๋ž˜์Šค๋งŒ ์กด์žฌํ•˜๊ณ  ์›์‹œ ์ž๋ฃŒํ˜•์ด๋ผ ๊ตฌ๋ถ„์ง€์„ ๋งŒํ•œ ๊ฒƒ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ ์™ธ์—๋„ ๋ชจ๋“ˆ์ด ์žˆ๋Š”๋ฐ ๋ชจ๋“ˆ๋„ ํด๋ž˜์Šค๋‹ค. ๋ฉ”์†Œ๋“œ๋„ ๋‹น์—ฐํžˆ ํด๋ž˜์Šค. ๊ทธ๋ฆฌ๊ณ  ์ด ํด๋ž˜์Šค๋Š” ๋ชจ๋‘ ์—ด๋ ค์žˆ๋‹ค. ์ด๋ฅผ OpenClass๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ํ•œ๋งˆ๋””๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

3.2. ํ•จ์ˆ˜ํ˜• ์–ธ์–ด[ํŽธ์ง‘]

ํŠน์ดํ•œ ์ ์ด๋ผ๋ฉด ์Šค์นผ๋ผ์™€ ๊ฐ™์€ ํ•จ์ˆ˜ํ˜• ์–ธ์–ด๋กœ์„œ์˜ ํŠน์ง•๋„ ๊ฐ€์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์–ธ์–ด์ฐจ์›์—์„œ Block์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ์˜ ์ธ์ˆ˜๋กœ ์ฝ”๋“œ์˜ ์ง‘ํ•ฉ, ์ฆ‰ ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ํ•จ์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ๋กœ ๋ถ€๋ฅด๋Š” ๊ทธ๊ฒƒ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ด€๊ณ„๋กœ ๋‹น์—ฐํžˆ ๋ฉ”์†Œ๋“œ ์•ˆ์—์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํด๋กœ์ €๋ฅผ ์ง€์›ํ•œ๋‹ค. ๋˜, ์š”์ฆ˜์˜ Java[4], C++, Python๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰์–ธ์–ด๋Š” ๊ฑฐ์˜ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ๋žŒ๋‹ค๋„ ์žˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์•„๋ž˜์˜ ๋ฉ”ํƒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ํ•ฉ์ณ์„œ ๋”์šฑ ๊ฐ•๋ ฅํžˆ ์ž‘์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

3.3. ๋ฉ”ํƒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ[ํŽธ์ง‘]

๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ์–ธ์–ด ์ž์ฒด๋ฅผ ์‰ฝ๊ฒŒ ํ™•์žฅ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” '๋ฉ”ํƒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ'์„ ์ง€์›ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์š”์ฆ˜ C++ ๋“ฑ์˜ ์–ธ์–ด๋„ ์ง€์›ํ•˜๋Š” ์ƒํ™ฉ์ด๊ธด ํ•˜์ง€๋งŒ ๋ฃจ๋น„๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ํŠน์ง•๊ณผ ํ•จ์ˆ˜ํ˜• ์–ธ์–ด์ ์ธ ํŠน์ง•์ด ๊ฒฐํ•ฉ๋˜์–ด ๋”์šฑ ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚œ๋‹ค. ์‚ฌ์‹ค ๋งˆ์ธ ๋ชจํ†  ์œ ํ‚คํžˆ๋กœ ๋ณธ์ธ ์ž์‹ ๋ถ€ํ„ฐ "์ด๋งฅ์Šค๋Š” ๋‚ด ์ธ์ƒ์„ ์–ด๋–ป๊ฒŒ ๋ฐ”๊พธ์—ˆ๋‚˜" ๋ผ๋Š” ์Šฌ๋ผ์ด๋“œ์‡ผ๋ฅผ ํ• ์ •๋„์˜ ์ง„์„ฑ ์ด๋งฅ์Šค ๋น ๋Œ์ด์˜€๊ณ , ๊ฑฐ๊ธฐ์„œ Elisp intepreter๋กœ์„œ์˜ ์ด๋งฅ์Šค์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์–ธ์–ด ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฐ ๊ด€๊ณ„๋กœ ์ด๋Ÿฐ ๋ฉ”ํƒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์–ธ์–ด ์ฐจ์›์—์„œ ๊ถŒ์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์ด๊ณ  ๋งค์šฐ ํฐ ํ”„๋กœ๊ทธ๋žจ๋„ ๋งค์šฐ ์ž‘์€ ์†Œ์Šค๋กœ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.

3.4. ๊ทธ ์™ธ ํŠน์ง•[ํŽธ์ง‘]

  • ๋ชจ๋“ˆ๊ณผ ํด๋ž˜์Šค๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์ด๋‚˜ ํด๋ž˜์Šค ๋˜๋Š” ๊ฐ์ฒด์— ๋ถ™์—ฌ์„œ ํ™•์žฅ์‹œํ‚ค๋Š” ๊ฐœ๋…์„ ์ตœ์ดˆ๋กœ ๋„์ž…. ๋‹ค์ค‘ ์ƒ์†์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ํ•ด์„/๊ตฌํ˜„์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ C++์˜ ๊ฒƒ๋ณด๋‹ค ๋งŽ์ด ๊ฐ„ํŽธํ•˜๊ณ  ์จ๋จน๊ธฐ๋„ ์‰ฝ๋‹ค. ๋‚˜์ค‘์—๋Š” C# ๋“ฑ์—๋„ ์ด๋Ÿฌํ•œ ๊ฐœ๋…์ด ๋น„์Šทํ•˜๊ฒŒ ๋„์ž…๋˜์—ˆ๋‹ค.
  • load, require ๋“ฑ์œผ๋กœ ์™ธ๋ถ€ ์†Œ์Šค๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์†Œ์Šค ํŒŒ์ผ์˜ ์‹ค์ œ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ํŠน์ง•์ด๋ผ๋ฉด ํŠน์ง•. ๊ฐ™์€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ธ ํŽ„, ํŒŒ์ด์ฌ, ๋ฃจ์•„๋Š” ์ด๊ฒŒ ์•ˆ๋œ๋‹ค.
  • 0์„ false๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ์—ฌ๋Ÿฌ ์–ธ์–ด๋“ค๊ณผ๋Š” ๋‹ฌ๋ฆฌ 0๋„ true๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. ์ด ์ ์€ ๋ฃจ์•„๋„ ๋น„์Šทํ•˜๋‹ค.

๋ฐ˜๋Œ€๋กœ ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค๋ฉด ์‹คํ–‰ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 2.x ๋ฒ„์ „ ๊ธฐ์ค€์œผ๋กœ ์ปดํŒŒ์ผ ์–ธ์–ด์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ๋น„๊ต์  ๋–จ์–ด์ง€๋Š” Python๊ณผ ์—Ž์น˜๋ฝ๋’ค์น˜๋ฝ ํ•˜๋Š” ํŽธ์ด๋‹ค. ๋‹ค๋งŒ ์ง€์†์ ์ธ ๊ฐœ์„ ์„ ํ†ตํ•ด ์š”์ฆ˜์—๋Š” ์†๋„๊ฐ€ ์ƒ๋‹นํžˆ ๋นจ๋ผ์กŒ๊ณ , ์ตœ๊ทผ Ruby๋Š” Vagrant์ฒ˜๋Ÿผ ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์—ฌ๊ฒจ์ง€๋Š” ๊ฐ€์ƒํ™” ์†Œํ”„ํŠธ์›จ์–ด ๋“ฑ์—๋„ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

4. ์ธ๊ธฐ[ํŽธ์ง‘]

Programming Ruby(๊ณก๊ดญ์ด ์ฑ…)

์›๋ž˜๋Š” ์ผ๋ณธ์—์„œ๋งŒ ์กฐ๊ธˆ ์‚ฌ์šฉํ•˜๋Š” ์ •๋„์˜€์ง€๋งŒ, Programming Ruby[5]๋ผ๋Š” ํฌ๋Œ€์˜ ๋ช…์ €๊ฐ€ ๋‚˜์˜ค๋ฉด์„œ ์ฃผ๋ชฉ๋ฐ›๊ธฐ ์‹œ์ž‘ํ•˜๋‹ค๊ฐ€, Ruby on Rails๋ผ๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‚˜์˜ค๋ฉด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฝค ๋งŽ์ด ๋Š˜์–ด๋‚˜๊ณ  ์žˆ๋‹ค.

์ด ์–ธ์–ด๊ฐ€ ์ด๋ ‡๊ฒŒ ๋œจ๊ฒŒ ๋œ ๊ฐ€์žฅ ์•„์ด๋Ÿฌ๋‹ˆํ•œ ์ ์€ ๋ผ์ด๋ฒŒ ์–ธ์–ด์ธ ํŒŒ์ด์ฌ๊ณผ ํŽ„์˜ ์ง€์› ๋ฌธ์„œ๊ฐ€ ๋ชจ๋‘ ์˜์–ด์ธ๋ฐ ๋ฃจ๋น„๋Š” ์ผ๋ณธ์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  API์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ๊ธฐํƒ€ ๋ชจ๋“  ๋ฌธ์„œ๊ฐ€ ์ผ๋ณธ์–ด๋กœ ๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์ผ๋ณธ ๋‚ด๋ถ€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ธ๊ธฐ๋ฅผ ์–ป๋‹ค๊ฐ€ ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ €์ž๊ฐ€ ์“ด ๊ณก๊ดญ์ด์ฑ…๊ณผ 2005๋…„๋ถ€ํ„ฐ ์ง€์›๋˜๊ธฐ ์‹œ์ž‘ํ•œ ๋ฃจ๋น„ ์˜จ ๋ ˆ์ผ์ฆˆ๋ผ๋Š” MVC ์›น ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‚˜์˜ค๋ฉด์„œ ์ผ๋ณธ ๋ฐ–(์ฃผ๋กœ ์œ ๋Ÿฝ)์—์„œ๋„ ์ธ๊ธฐ๋ฅผ ๋Œ๊ณ  ์žˆ๋‹ค. 2012๋…„์—๋Š” GitHub์—์„œ ๋ฃจ๋น„๊ฐ€ 2์œ„๋ฅผ ์ฐจ์ง€ํ–ˆ๋‹ค!(1์œ„๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ) GitHub ์‚ฌ์ดํŠธ ์ž์ฒด๋„ Ruby on Rails๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค.

์ผ๋ณธ ๊ธˆ์œตํšŒ์‚ฌ๋“ค์ด ์ฑ„์šฉํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ์ด ๋•Œ๋ฌธ์— ํ•œ๊ตญ ๊ธˆ์œต์‚ฌ์—์„œ๋„ ์ผ๋ณธ์ œ ํ”„๋กœ๊ทธ๋žจ์„ ํ•ด๋…ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธ์›์— ๋Œ€ํ•œ ๋ฃจ๋น„ ์žฌ๊ต์œก์„ ์ผ๋ถ€ ํ•˜๊ณ  ์žˆ๋‹ค. ๋ฏธ๊ตญ ๊ธˆ์œต๊ถŒ์—์„œ๋„ Ruby ํ”„๋กœ๊ทธ๋ž˜๋จธ ๋Œ€์šฐ๊ฐ€ ์ข‹์•„์ง€๋Š” ์ค‘. ์ด์œ ๋Š” ๋‹น์—ฐํžˆ ์ผ๋ณธ์ œ ํ”„๋กœ๊ทธ๋žจ ๋•Œ๋ฌธ์ด๋‹ค. ์ผ๋ณธ์—์„œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠธ๋ ˆ์ด๋”ฉ์„ Ruby๋กœ ๋งŒ๋“ ๋‹ค.

5. ๋ผ์ด๋ฒŒ[ํŽธ์ง‘]

๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ, Python์ด ์œ ๋‹ฌ๋ฆฌ ๋งŽ์ด ๋“ฑ์žฅํ•œ๋‹ค. ๋‘ ์–ธ์–ด๊ฐ€ ์œ ๋‹ฌ๋ฆฌ ๋น„์Šทํ•˜๋ฉด์„œ๋„ ์œ ๋‹ฌ๋ฆฌ ๋Œ€๋น„๋˜๋Š” ํŠน์„ฑ๋“ค์ด ๋งŽ์•„ ๋ผ์ด๋ฒŒ ๊ตฌ๋„๋ฅผ ์ด๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ค์ฃฝํ–ˆ์œผ๋ฉด 2015๋…„ ๋ฃจ๋น„ ์นด์ด๊ธฐ์—์„œ ํ•œ ๋ฃจ๋น„ ์œ ์ €๋Š” ํŒŒ์ด์ฌ ์“ฐ๋Š” ์นœ๊ตฌ๊ฐ€ ์ž๊พธ Python์œผ๋กœ ๋„˜์–ด์˜ค๋ผ๊ณ  ๊ผฌ์‹ ๋‹ค๊ณ (...). ์ด์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์œ ์ €๋“ค์€ ํŒŒ์ด์ฌ ๊ฐ€์„œ ์ข‹์€ ๊ธฐ๋Šฅ ์žˆ์œผ๋ฉด, ๊ฐ€์ง€๊ณ  ์™€์„œ ๋ฃจ๋น„์— ์ปค๋ฐ‹ํ•˜๋ผ๋Š” ๋Œ€์•ˆ์„ ์ œ์‹œํ–ˆ๋‹ค. ์ŠคํŒŒ์ด ์‚ฌ์‹ค ํŒŒ์ด์ฌ๋ณด๋‹ค๋Š” Perl๊ณผ ๋งŽ์ด ๋‹ฎ์•˜๊ณ  ๋”ฐ๋ฅด๋Š” ์ฒ ํ•™๋„ ๋˜‘๊ฐ™๋‹ค. TIMTOWTDI(There's more than one way to do it). ํŒŒ์ด์ฌ์˜ ์ฒ ํ•™๊ณผ๋Š” ์ •๋ฐ˜๋Œ€(There should be one - and preferably only one - obvious way to do it.) ๋‹จ ํŽ„์ฒ˜๋Ÿผ Once write, read never ์–ธ์–ด๋Š” ์•„๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŽ„์˜ ์ธ์ง€๋„๊ฐ€ ๊ณผ๊ฑฐ๋ณด๋‹ค ๋งŽ์ด ๋–จ์–ด์ ธ์„œ ๋ฌผ๋ง์˜ค๋ฅธ ํŒŒ์ด์ฌ๊ณผ ๋ผ์ด๋ฒŒ ๊ตฌ๋„๋ฅผ ์ด๋ฃจ๋Š” ๋“ฏ ํ•˜๋‹ค. (์˜ˆ์‹œ: Python & Ruby - ์ƒํ™œ์ฝ”๋”ฉ)

6. ์›น ํ”„๋ ˆ์ž„์›Œํฌ[ํŽธ์ง‘]

Ruby on Rails๋Š” ํ’€ ์Šคํƒ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ด๊ณ , non full-stack ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋กœ๋Š” Sinatra ๋“ฑ์ด ์žˆ๋‹ค. Python์˜ Flask์— ํ•ด๋‹นํ•˜๋Š” ๊ฒŒ Ruby์˜ Sinatra์ด๋‹ค. ๋Œ€ํ‘œ์ ์ธ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ๋Š” JetBrains์˜ RubyMine์ด ์žˆ๋‹ค. ๋ฃจ๋น„๊ด‘์‚ฐ ํ…์ŠคํŠธ ์—๋””ํ„ฐ ์ค‘์—์„œ๋Š” Ruby ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ œ๊ณต๋˜๋Š” ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ๊ฐ€ ๋งŽ์ด ์“ฐ์ด๊ณ  ์žˆ๋‹ค.

์—์–ด๋น„์•ค๋น„, ํ‚ฅ์Šคํƒ€ํ„ฐ, GitHub ๋“ฑ์ด ๋ฃจ๋น„ ์˜จ ๋ ˆ์ผ์ฆˆ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฃจ๋น„์™€ ๋ฃจ๋น„ ์˜จ ๋ ˆ์ผ์ฆˆ๋ฅผ ์ „๋ฌธ์œผ๋กœ ๊ณต๋ถ€ํ•˜๋Š” ์‚ฌ์ดํŠธ๋„ ์ƒ๊ฒผ๋‹ค. ์ฝ”๋“œ์นด๋ฐ๋ฏธ ๊ฐ•์ขŒ

๋ฃจ๋น„ ์˜จ ๋ ˆ์ผ์Šค ์ฝ”๋ฆฌ์•„ ์ปค๋ฎค๋‹ˆํ‹ฐ(RORLAB) http://rorlab.org ์—์„œ ๋งŒ๋“  ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๋ ˆ์ผ์Šค ๊ฐ€์ด๋“œ http://rorlab.gitbooks.io/railsguidebook ๊ฐ€ ์žˆ๋‹ค.

RORLAB์—์„œ๋Š” ๋งค์ฃผ ํ™”์š”์ผ ์˜คํ”„๋ผ์ธ ๋ชจ์ž„์„ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฃจ๋น„์™€ ๋ ˆ์ผ์Šค๊ฐ€ ๊ตญ๋‚ด์—์„œ๋„ ๋„๋ฆฌ ์“ฐ์ด๋„๋ก ํ™œ๋™ํ•œ๋‹ค. ๋ชจ์ž„ ์ฐธ๊ฐ€ ์‹ ์ฒญ์€ ๋ฏธํ…์—์„œ ํ•  ์ˆ˜ ์žˆ๊ณ  ํŽ˜์ด์Šค๋ถ ๊ทธ๋ฃน๊ณผ ์Šฌ๋ž™์— ๊ฐ€์ž…ํ•˜์—ฌ ์˜จ๋ผ์ธ์œผ๋กœ๋„ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

7. ๊ธฐํƒ€[ํŽธ์ง‘]

๋งŽ์€ ์Šค์ผ€์น˜์—…์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋ฃจ๋น„ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

RPG ์ฏ”๊พธ๋ฅด XP๋ถ€ํ„ฐ๋Š” ์ด ์–ธ์–ด ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ๋ฒ ์ด์Šค๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๋”์šฑ ์„ธ๋ถ€์ ์ธ ์ œ์ž‘์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ๋Š” Ruby๊ฐ€ ์•„๋‹Œ RGSS(Ruby Game Scripting System)๋ผ๋Š” ๋ช…์นญ์œผ๋กœ, ์ตœ์‹ ํŒ RGSS3(VX Ace) ๊ธฐ์ค€ Ruby ๋ฒ„์ „ 1.9.2(XP ๋ฐ VX์€ 1.8.1)์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด์ด๋‹ค. ๊ธฐ์กด Ruby์—์„œ ๊ฒŒ์ž„ ์ œ์ž‘์— ๋ถˆํ•„์š”ํ•œ ๋ช…๋ น์–ด๋Š” ๋นผ๊ณ , ๋ฐ˜๋Œ€๋กœ ๊ธฐ์กด์— ์—†๋˜ ๊ฒŒ์ž„ ์ œ์ž‘์— ํŠนํ™”๋œ ์ƒˆ๋กœ์šด ๋ช…๋ น์–ด๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ๋“ฑ, ๋ฌธ๋ฒ•์€ ๊ฐ™์œผ๋‚˜ ์‚ฌ์‹ค์ƒ ๋ณ„๊ฐœ์˜ ์–ธ์–ด๋กœ ์ทจ๊ธ‰ํ•ด์•ผ ์˜ณ๋‹ค. ๋ฌผ๋ก  ๋ฃจ๋น„์˜ ์†๋„๊ฐ€ ๋А๋ฆฐ๋ฐ๋‹ค ์ตœ์ ํ™”๋„ ์ž˜ ์•ˆ ๋˜์–ด์žˆ์–ด์„œ ๋” ์ด์ƒ์˜ ์ž์„ธํ•œ ์„ค๋ช…์€ ์ƒ๋žตํ•œ๋‹ค. ๋‹ค๋งŒ RPG ์ฏ”๊พธ๋ฅด MV๋ถ€ํ„ฐ๋Š” JavaScript๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค.

๋˜ํ•œ macOS์˜ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € Homebrew๋„ ๋ฃจ๋น„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค. FreeBSD์˜ Ports ๊ฐ™์€ ์—ญํ• ์„ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋ผ ๋ณด๋ฉด ๋œ๋‹ค.

๋ฃจ๋น„ ์–ธ์–ด๋กœ ์บ๋ฆญํ„ฐ๋ฅผ ์กฐ์ž‘ํ•ด์„œ ๋˜์ „์„ ํด๋ฆฌ์–ดํ•˜๋Š” ๊ฒŒ์ž„์ด ์žˆ๋‹ค. ๋‹จ, ํŽ˜์ด์Šค๋ถ ๊ณ„์ •์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ด๋ฆ„์ด ๋ณด์„์„ ์˜๋ฏธํ•˜๋Š” gem์ด๋‹ค ๋ณด๋‹ˆ, ๊ฐ„ํ˜น ํƒ€๋…ธ์Šค์™€ ์—ฎ์ด๊ธฐ๋„ ํ•œ๋‹ค. Thanos JS ๋ฐœ ์œ ๋จธ์ธ๋ฐ, power, reality, mind, space, time, soul ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  thanos snap-fingers --with-glove๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ฝ”๋“œ ๊ธธ์ด๊ฐ€ ๋ฐ˜์œผ๋กœ ์ค„์–ด๋“ ๋‹ค๋Š” ์Šคํฌ์ผ๋Ÿฌ์„ฑ ์œ ๋จธ.[6] ์ด ์œ ๋จธ๋ฅผ ์ง„์งœ node.js ํŒจํ‚ค์ง€๋กœ ๋งŒ๋“  thanos-js๋„ ์กด์žฌํ•œ๋‹ค.

8. ๋ฐ”๊นฅ ๊ณ ๋ฆฌ[ํŽธ์ง‘]

[1] ๋ฃจ๋น„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ํฌ๋ฆฌ์Šค๋งˆ์Šค ๋•Œ์— ๋ฒ„์ „์—…์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์œ ๋ช…ํ•˜๋‹ค. 3.0.0 ๋ฒ„์ „์ด 2021๋…„ ํฌ๋ฆฌ์Šค๋งˆ์Šค์— 2.7.0 ๋ฒ„์ „์€ 2019๋…„ ํฌ๋ฆฌ์Šค๋งˆ์Šค, 2.6.0๋ฒ„์ „์€ 2018๋…„ ํฌ๋ฆฌ์Šค๋งˆ์Šค... 2.1.0 ๋ฒ„์ „์€ 2013๋…„ ํฌ๋ฆฌ์Šค๋งˆ์Šค์— ์ถœ์‹œ๋˜์—ˆ๋‹ค.
[2] Java๋กœ ๋งŒ๋“ค์–ด์ง„ ์ธํ„ฐํ”„๋ฆฌํ„ฐ. GIL(Global Interpreter Lock)์ด ์—†์–ด ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ๋ณ‘๋ ฌ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
[3] ๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ ์ง€์›
[4] ์ž๋ฐ”๋Š” ์ž๋ฐ” 8๋ถ€ํ„ฐ ๋žŒ๋‹ค๋ฅผ ์ง€์›ํ•œ๋‹ค.
[5] ํ‘œ์ง€์— ๊ณก๊ดญ์ด๊ฐ€ ๊ทธ๋ ค์ ธ ์žˆ์–ด์„œ ์ผ๋ช… ๊ณก๊ดญ์ด ์ฑ…. ๋‹ค๋งŒ ์ผ๋ณธ์—์„œ ๋‚˜์˜ฌ ๋•Œ๋Š” ํ‘œ์ง€์— ํ† ๋ผ๊ฐ€ ๊ทธ๋ ค์ ธ ์žˆ์—ˆ๋‹ค๊ณ .
[6] ์‹ค์ œ๋กœ๋Š” Netlify Drop์—์„œ ๊ธฐ์ˆ  ํ™๋ณด๋ฅผ ์œ„ํ•ด ๋งŒ๋“  ๋ฐ๋ชจ์šฉ ํŒจ๋Ÿฌ๋”” ์‚ฌ์ดํŠธ๋กœ, gem install์„ ํ†ตํ•ด์„œ๋Š” ๋‹น์žฅ power ํŒจํ‚ค์ง€๋ถ€ํ„ฐ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ํŒจํ‚ค์ง€๋ผ๊ณ  ๋‚˜์˜จ๋‹ค.