์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

1. ๊ฐœ์š”2. ํŠน์žฅ์ 
2.1. CPAN
3. ๋‹จ์ 4. Perl 65. ๊ธฐํƒ€6. ์ •๊ทœํ‘œํ˜„์‹7. ๊ด€๋ จ ์‚ฌ์ดํŠธ

1. ๊ฐœ์š”[ํŽธ์ง‘]

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ผ์ข…. 1987๋…„ ๋ฐœํ‘œ๋˜์–ด 2019๋…„ ํ˜„์žฌ 32๋…„ ๋œ ์–ธ์–ด์ด๋‹ค. ๋งŒ๋“  ์ด๋Š” ๋ž˜๋ฆฌ ์›”(Larry Wall). ๋ณธ์ธ ๋ง๋กœ๋Š” ๊ฐ€์žฅ ๋งŽ์€ ๋ช…์„ฑ๊ณผ ๊ฐ€์žฅ ์ ์€ ๋ˆ์„ ๊ฐ€์ ธ๋‹ค ์คฌ๋‹ค๋‚˜. (ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด๋ก  8ํŒ ์ˆ˜๋ก ์ธํ„ฐ๋ทฐ ์ฐธ๊ณ )

์ด๋ฆ„ ์ž์ฒด๋Š” Practical Extraction and Reporting Language(์‹ค์šฉ์ ์ธ ๋ฐ์ดํ„ฐ ์ทจ๋“ ๋ฐ ๋ฆฌํฌํŠธ ์ž‘์„ฑ ์–ธ์–ด)์˜ ์•ฝ์ž๋ผ๊ณ  ํ•œ๋‹ค. ๋ณธ๋ž˜๋Š” ๋ถ™์ผ๋งŒํ•œ ์ด๋ฆ„์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ๋˜ ์ œ์ž‘์ž๊ฐ€ ์„ฑ์„œ์—์„œ ์•„๋ฌด ๋‹จ์–ด๋‚˜ ๋”ฐ์™€์„œ ๋ถ™์ธ ์ด๋ฆ„. Pearl(์ง„์ฃผ)๋ผ๋Š” ์ด๋ฆ„์„ ๋ถ™์ด๊ณ  ์‹ถ์–ดํ–ˆ์ง€๋งŒ, ์ด๋ฏธ ๊ทธ๋Ÿฐ ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์žˆ์—ˆ๊ธฐ์— ์ฒ ์ž๋งŒ ์‚ด์ง ๋ฐ”๊ฟ”์„œ Perl์ด๋ผ๋Š” ์ด๋ฆ„์„ ๋ถ™์˜€๋‹ค. ์•ฝ์ž๋Š” ๋‚˜์ค‘์— ๊ฐ€์ ธ๋‹ค ๋ถ™์ธ ๊ฒƒ. ๊ทธ๋ƒฅ ์ง„์ฃผ๋ž‘ ์ฒ ์ž๊ฐ€ ๋น„์Šทํ•œ ๊ฒŒ ์•„๋‹ˆ๋‹ค! ๋‹ค๋งŒ, Perl์€ ๋…์ผ์–ด๋กœ ์ง„์ฃผ๋ผ๋Š” ๋œป์ด ์žˆ๋‹ค.

์ฒ ํ•™์€ TIMTOWTDI(There is more than one way to do it, ์–ด๋– ํ•œ ์ผ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค). Python์˜ '๊ฐ€์žฅ ์•„๋ฆ„๋‹ค์šด ํ•˜๋‚˜์˜ ๋‹ต์ด ์กด์žฌํ•œ๋‹ค'์™€๋Š” ์ • ๋ฐ˜๋Œ€๋‹ค.

์œ ๋‹‰์Šค ์ชฝ์—์„œ๋Š” ๋””ํดํŠธ ์ปดํŒŒ์ผ ์–ธ์–ด์ธ C์™€ ํ•จ๊ป˜ ๋””ํดํŠธ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋กœ ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์— ๋“ค์–ด๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๋ฆฌ๋ˆ…์Šค์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์ดˆ์‹ฌ์ž์˜ ๊ฒฝ์šฐ ์ตœ์†Œ ์„ค์น˜๋ฅผ ์ถ”๊ตฌํ•˜๋‹ค๊ฐ€ perl๋งˆ์ € ๋นผ๋ฒ„๋ฆฌ๋Š” ํฌ๋‚˜ํฐ ์‹ค์ˆ˜๋ฅผ ์ €์ง€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค..

2. ํŠน์žฅ์ [ํŽธ์ง‘]

C์™€ ๋น„์Šทํ•œ ๊ตฌ๋ฌธ์— sed, AWK, ์…ธ ์Šคํฌ๋ฆฝํŠธ ๋“ฑ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์œ ๋ช…ํ•œ ์œ ๋‹‰์Šค ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์–ธ์–ด ์ž์ฒด์˜ ์ž์œ ๋„๊ฐ€ ๋†’๊ณ  ํ‘œํ˜„๋ ฅ๋„ ๋›ฐ์–ด๋‚˜๋ฉฐ ์ฝ”๋”ฉ๋„ ์‰ฝ๋‹ค.

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

GUI, ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์‹œ์Šคํ…œ ๊ด€๋ฆฌ, ๊ทธ ๋ฐ–์— ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑํ•˜๋Š” ๋ฐ์— ๋„“๊ฒŒ ์ด์šฉ๋˜๋ฉฐ ์ƒ๋ฌผ์ •๋ณดํ•™ ์ชฝ์—์„œ๋„ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ด์šฉ๋˜๋Š” ํŽธ. ํŠนํžˆ ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ์ •๊ทœํ‘œํ˜„์‹๊ณผ ํ•จ๊ป˜ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค์–‘ํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ œ๊ณต๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ์–ธ์–ดํ•™์ชฝ์—์„œ ๋งŽ์ด ๋‹ค๋ฃจ๋Š” ์–ธ์–ด์ด๊ธฐ๋„ ํ•˜๋‹ค.

์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋‹ค ๋ณด๋‹ˆ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์ปดํŒŒ์ผ์„ ๋ฐ˜๋ณตํ•  ํ•„์š”๊ฐ€ ์—†์–ด ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„์ด๋‚˜ ๋””๋ฒ„๊น…์ด ์‰ฌ์šด ํŽธ์ด๊ธฐ๋„ ํ•˜๋‹ค. ์ž์œ  ๋ฐ ๋ฌด๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด์—ฌ์„œ ๋น„์šฉ ๋ฉด์—์„œ๋„ ๊ต‰์žฅํ•œ ์žฅ์ ์„ ์ง€๋‹ˆ๊ณ  ์žˆ๋Š” ํŽธ. ๊ฐ์ข… ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์ด๋‚˜ ๋งฅ OS X์— ๊ธฐ๋ณธ์œผ๋กœ ํƒ‘์žฌ๋˜์–ด ์žˆ๋‹ค. ์œˆ๋„์šฐ์ฆˆ ๊ณ„์—ด์—์„œ๋Š” StrawberryPerl[1] ์„ ์„ค์น˜ํ•ด ์“ธ ์ˆ˜ ์žˆ๋‹ค.

ํ•œํŽธ์œผ๋กœ๋Š” ๋ฏธ์น  ๋“ฏํ•œ ์ถ•์•ฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์—์„œ "Perl์€ Pathologically Eclectic Rubbish Lister(๋ณ‘์ ์œผ๋กœ ํญ๋„“์€ ์žก๋™์‚ฌ๋‹ˆ ์ถœ๋ ฅ๊ธฐ)์˜ ์•ฝ์ž."๋ผ๋Š” ๋†๋‹ด๋„ ๊ฐ€๋” ๋“ค์„ ์ˆ˜ ์žˆ๋‹ค.[2]

2.1. CPAN[ํŽธ์ง‘]

CPAN์ด๋ผ๊ณ  ํŽ„๋กœ ์ œ์ž‘๋œ ์†Œํ”„ํŠธ์›จ์–ด๋“ค์„ ๋ชจ์•„๋†“์€ ์ž๋ฃŒ์‹ค์ด ์žˆ๋‹ค. ์ด CPAN์˜ ๋ฐฉ๋Œ€ํ•จ์€ ํŽ„ ๊ด€๋ จ ๋ฌธ์ œ ํ•ด๊ฒฐ์˜ ๋ณด๊ณ ์ด์ž ํŽ„์˜ ์ž๋ž‘๊ฑฐ๋ฆฌ์ด๋‹ค.[3]

CPAN์˜ ๋ฐฉ๋Œ€ํ•จ๋งŒํผ์ด๋‚˜ ๊ฐ™์€ ๋ชฉ์ ์˜ ๋‹ค๋ฅธ ํŠน์ง•์žˆ๋Š” ๊ตฌํ˜„์ด ๋งŽ๋‹ค. ์—ฌ๊ธฐ์„œ ํŠน์œ ์˜ ๋ฌธํ™”๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๋ชจ๋“ˆ๋“ค์„ ํ†ตํ•ฉํ•ด์ฃผ๋Š” ์ƒ์œ„ ์ธํ„ฐํŽ˜์ด์Šค ๋ชจ๋“ˆ๋“ค์ด ๋“ฑ์žฅํ•˜๊ณ [4], ์ด๋ ‡๊ฒŒ ํƒ„ํƒ„ํ•˜๊ฒŒ ์ถ”์ƒํ™”๋œ ๋ชจ๋“ˆ์œ„์—์„œ ๋‹ค์‹œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์ด ์ž‘์„ฑ๋œ๋‹ค. ์ž์—ฐ์„ ํƒ์ ์œผ๋กœ ๋งŽ์ด ์ด์šฉ๋œ ๋ชจ๋“ˆ์ด ๋Œ€์„ธ๊ฐ€ ๋˜๊ณ , ๋Œ€์„ธ์ธ ๋ชจ๋“ˆ์„ ์ด์šฉํ•œ ํ”„๋กœ๊ทธ๋žจ๊ฐ„์—๋Š” ํ•˜์œ„๋ ˆ๋ฒจ์—์„œ์˜ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ๋‹ค.

๊ธฐ์กด์— ์žˆ๋˜ ๋ชจ๋“ˆ์˜ ํŒจํ‚ค์ง€๋ช…์„ ํ™•์žฅํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ณ„๋„์˜ ๋ชจ๋“ˆ๋กœ ๋งŒ๋“ค์–ด ์—…๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋‚ด๊ฐ€ ์˜ฌ๋ฆฐ ๋ชจ๋“ˆ์„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ™•์žฅํ•ด์ฃผ๋Š” ํšจ๊ณผ.

์‹ค์ œ๋กœ ํƒ€ ์–ธ์–ด์— ๋น„ํ•ด์„œ, ๋ณ„ ๊ธฐ๋Šฅ์ด ์—†๋Š” ๋ชจ๋“ˆ์˜ ์˜์กด์„ฑ ํŠธ๋ฆฌ๊ฐ€ ์—„์ฒญ๋‚œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ณ , ์ด๊ฒƒ์ด ๋‹ค์‹œ CPAN์˜ ์˜์กด๋„๋ฅผ ํฌ๊ฒŒํ•˜๋Š” ์—ญํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค.

3. ๋‹จ์ [ํŽธ์ง‘]

์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋ผ๋Š” ํƒœ์ƒ์  ํ•œ๊ณ„์— ์˜ํ•ด ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ C์˜ ์ฒ˜๋ฆฌ ์†๋„๋ณด๋‹ค ์กฐ๊ธˆ ๋А๋ฆฌ๋‹ค. ์š”์ฆ˜ ์ปดํ“จํ„ฐ๋“ค์€ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜ ์›ฌ๋งŒํ•œ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด์•ผ ๊ทธ ์ฐจ์ด๋ฅผ ์ฒด๊ฐํ•  ์ผ์€ ๋ณ„๋กœ ์—†๊ฒ ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ๋‹จ์ˆœ ๊ณ„์‚ฐ ๋ฐ˜๋ณต ๋ฉด์—์„œ๋Š” ์˜ค๋ž˜ ํ•˜๋‹ค ๋ณด๋ฉด ๊ฝค ํฐ ์ฐจ์ด๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์‚ฌ์‹ค ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์™€ ์ปดํŒŒ์ผ ์–ธ์–ด๋ฅผ ์„ฑ๋Šฅ์œผ๋กœ ๋‹จ์ˆœ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ์—†๋Š” ์ผ์ด๋‹ค. ์ด ๋‘˜์€ ๋ณดํ†ต ์šฉ๋„๊ฐ€ ํ™•์—ฐํžˆ ๋‹ฌ๋ผ, ๊ฒฝ์Ÿํ•˜๋Š” ์–ธ์–ด๋ผ ๋ณด๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํผํฌ๋จผ์Šค๊ฐ€ ์ค‘์š”์น˜ ์•Š์€, ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋กœ ๊ฐ„๋‹จํžˆ ๋๋‚ผ ์ž‘์—…์— C์™€ ๊ฐ™์€ ์–ธ์–ด๋ฅผ ๋Œ์–ด์“ฐ๋Š” ๊ฒƒ๋„ ์›ƒ๊ธด ์ผ์ด๋ฉฐ, ๋ฐ˜๋Œ€๋กœ ํผํฌ๋จผ์Šค๊ฐ€ ์ตœ์šฐ์„ ์ˆœ์œ„์ธ ๋ถ€๋ถ„์— ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋‹น์—ฐํžˆ ์ฐพ์•„๋ณด๊ธฐ ํž˜๋“ค๋‹ค. ์ฆ‰, ์˜ค๋Š˜๋‚  ์–ธ์–ด 1๊ฐœ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ํŠน์ • ํ™˜๊ฒฝ/๋ชฉ์ ์—์„œ ํŽ„์— ๋” ๋น ๋ฅธ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๋‚ด๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋ฉฐ, ์–ธ์–ด ์ž์ฒด์™€ ํ•˜๋“œ์›จ์–ด์˜ ๋ฐœ์ „์œผ๋กœ ์ธํ•ด ์ˆ˜ํ–‰์‹œ๊ฐ„์˜ ์ฐจ์ด๋„ ์ ์  ์ค„์–ด๋“ค๊ณ  ์žˆ๋‹ค. Perl, Python, Ruby, PHP, C, C++, Lua, tcl, javascript, Java ์„ฑ๋Šฅ๋น„๊ต ์ฐธ์กฐ.

์ผ๋ถ€ ๋ถ€๋ถ„์—์„œ ๊ธฐ๊ต์ ์ธ ์‚ฌ์šฉ์„ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ๋„ ๋ฌธ์ œ. ํ•จ์ˆ˜์™€ ๊ฐ์ฒด์˜ ์„ ์–ธ์ด ๊ฐ€์žฅ ๊ธฐ๊ต์ ์ธ ๋ถ€๋ถ„์ธ๋ฐ Moose๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋Š” ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ง€์—ฐ์—ฐ์‚ฐ๊ณผ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ, ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„์— ์žˆ์–ด์„œ๋Š” ๊ฒฝ์Ÿ ์–ธ์–ด๋“ค์— ๋น„ํ•ด ์กฐ๊ธˆ ์–ด๋ ค์šด ๊ฐ์ด ์žˆ๋‹ค.

ํŠนํžˆ ๊ฐ€๋…์„ฑ์ด ๋‚ฎ์€ ๊ฒƒ์€ ๊ฐ€์žฅ ํฐ ๋‹จ์ ์œผ๋กœ ๊ผฝํžŒ๋‹ค. Write Once, Read Never ์–ธ์–ด ์ค‘์˜ ํ•˜๋‚˜๋ผ๊ณ ๋„ ํ•œ๋‹ค. ํŽ„๋กœ ์งœ๋†“์œผ๋ฉด ์ผ์ž๋ฆฌ๊ฐ€ ๋ณด์žฅ๋œ๋‹ค๋Š” ๋†๋‹ด๋ฐ˜ ์ง„๋‹ด๋ฐ˜๋„ ์žˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•ด๋…ํ•˜์ง€ ๋ชปํ•ด ์ธ์› ๋Œ€์ฒด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋œป. ์ž์œ ๋„๊ฐ€ ๋†’๊ธฐ๋•Œ๋ฌธ์— ์•„๋ฌด๋ž˜๋„ ๋Œ์•„๊ฐ€๋Š”๊ฒƒ๋งŒ ์ค‘์‹œํ•œ๋‹ค๊ฑฐ๋‚˜ ์ดˆ์‹ฌ์ž๋“ค์˜ ๊ฒฝ์šฐ ๋”๋Ÿฌ์šด ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์‰ฌ์šด๊ฒƒ์ด ๋‹จ์ . ๊ทธ๋Ÿฌ๋‚˜, ์ˆ™๋ จ๋œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค๋งŒ์œผ๋กœ ํŒ€์„ ์ด๋ฃฌ ๊ฒฝ์šฐ, ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฝค ์ปค์ ธ๋„ ๊ทธ๋‹ค์ง€ ํฐ ๋ฌธ์ œ๋Š” ์—†๋‹ค๋Š” ์ด์•ผ๊ธฐ๋„ ์žˆ๊ธด ํ•˜๋‹ค. ์–ด์จŒ๋“  ๋‚ฎ์€ ๊ฐ€๋…์„ฑ๊ณผ ๊ธฐ๊ต์  ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋ฐ˜์„ฑ(?)์œผ๋กœ modern Perl programming ์„ ์ œ์‹œํ•˜๊ณ  ์žˆ๋‹ค. ์„œ์˜ˆ๋กœ ์น˜๋ฉด ์ดˆ์„œ

์‹ฌ์ง€์–ด ์ด๋Ÿฐ ์—ฐ๊ตฌ๋„ ์žˆ๋‹ค. ์ดˆ๋ณด์ž์—๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ๋ฒ•์„ ๊ฐ€๋ฅด์ณ์ฃผ๊ณ  ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•˜๊ฒŒ ์งœ๋Š”์ง€ ์ธก์ •ํ•ด๋ณด์•˜๋Š”๋ฐ, ๋ฌธ๋ฒ•์„ ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑํ•œ ์–ธ์–ด๊ฐ€ ๋” ๋‚˜์•˜๋‹ค๊ณ  ํ•œ๋‹ค.(โ€ฆ) #

์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋งŽ์ด ์“ฐ์ด๊ณ , ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๋”๋Ÿฌ์›Œ๋ณด์ด๋Š” ํŠน์„ฑ ๋•Œ๋ฌธ์—, "์ธํ„ฐ๋„ท์„ ๋•œ๋นต ์—ฐ๊ฒฐํ•˜๊ณ  ์žˆ๋Š” ์ฒญํ…Œ์ดํ”„(์ •ํ™•ํžˆ ๋งํ•˜๋ฉด 'duct tape')"๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•œ๋‹ค(...). ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ์ด๋Ÿฐ๊ฑด ์ดˆ์‹ฌ์ž์˜ ์–˜๊ธฐ๊ณ  ์ฝ”๋”ฉ์„ ๊นจ๋—ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒฝ๋ ฅ์ž๊ฐ€ ์งœ๋ฉด ๊ฐ€๋…์„ฑ์ด ๋‚˜์˜์ง€ ์•Š๋‹ค.

perlcc๋ผ๋Š” ํˆด์„ ์ด์šฉํ•˜๋ฉด ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์œผ๋‚˜ ์ง€๊ธˆ์€ ์ œ๋Œ€๋กœ ์ž‘๋™๋˜์ง€ ์•Š๋Š”๋‹ค. ๋Œ€์ฒด์žฌ๋กœ๋Š” PAR::Packer๊ฐ€ ์žˆ๋‹ค.

4. Perl 6[ํŽธ์ง‘]

Perl 6์€ ์–ธ์–ด ๋ช…์„ธ ๊ทธ ์ž์ฒด๋ฅผ ๋œปํ•œ๋‹ค. Perl 6์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋ชจ๋‘ ํ†ต๊ณผํ•œ ํ”„๋กœ๊ทธ๋žจ์€ Perl 6๋ฅผ ๊ตฌํ˜„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋ผ ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ณ„ ํฌ๋Œ€์˜ ๋–ก๋ฐฅ์œผ๋กœ ์œ ๋ช…ํ•˜๋‹ค. Perl 6 ๊ฐœ๋ฐœ์€ 2000 ๋…„๋„๋ถ€ํ„ฐ ์‹œ์ž‘๋์—ˆ๊ณ  ๋‚˜์˜จ๋‹ค ๋‚˜์˜จ๋‹ค ์†Œ๋ฆฌ๊ฐ€ ๊ณ„์† ์žˆ์—ˆ์œผ๋‚˜ ์ง€๊ธˆ๊นŒ์ง€ ๋ฌด๋ ค 21๋…„๊ฐ„ ๊ฐœ๋ฐœ์ค‘์ด๋‹ค. (...) ์–ด๋А ์ •๋„ Specification ์€ ๋‚˜์˜จ ์ƒํƒœ๊ณ  ๊ทธ ๊ฒƒ์— ๊ธฐ๋ฐ˜ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋„ ๋ช‡ ๊ฐœ ์žˆ๊ธด ํ•˜์ง€๋งŒ Production-level ์‚ฌ์šฉ์€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๋Šฆ์–ด์ง€๋Š” ์ด์œ ์ค‘ ํ•˜๋‚˜๋Š” OOP๋„ ๋ณด๊ฐ•ํ•˜๊ณ , Lisp์ด๋‚˜ Haskell ๋“ฑ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ๋“ค๋„ ๋„ฃ๊ณ  ์—ฌ๋Ÿฌ๋ชจ๋กœ Perl 5 ์—์„œ ์ด์–ด์ง„๋‹ค๊ธฐ๋ณด๋‹ค ์žฌ์ฐฝ์กฐ์— ๊ฐ€๊นŒ์šด ์ˆ˜์ค€์˜ ๊ธฐํš์ธ ์ ๋„ ์žˆ์œผ๋‚˜ ๋ฌด์—‡๋ณด๋‹ค ์–ด๋–ค ๊ธฐ์—…์˜ ์ง€์›๋„ ๋ฐ›์ง€ ๋ชปํ•˜๊ณ  ์žˆ์–ด ์™„์ „ํ•œ Community-Driven ๊ฐœ๋ฐœ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ ‡๊ฒŒ ๋Šฆ์–ด์ง€๋‹ค๋ณด๋‹ˆ ์ด๋ฏธ ์ƒ๋‹น์ˆ˜์˜ ์Šคํฌ๋ฆฝํŠธ ์œ ์ €๋“ค์€ ํŒŒ์ด์ฌ์œผ๋กœ ๋„˜์–ด๊ฐ„ ์ƒํƒœ. Python 3 vs Perl 6 ์˜ ๋–ก๋ฐฅ๋„ ์›น์—์„œ ์ž์ฃผ ๋ณด์ด๋‚˜, ์ƒ๋‹น์ˆ˜๋Š” Python 4 vs Perl 6 ์ด ํ˜„์‹ค์ ์ด์ง€ ์•Š๋ƒ๋Š” ๋ฐ˜์‘.

2015๋…„ 1์›”, Larry Wall์ด Production Level์˜ Perl 6๋ฅผ ๊ณต๊ฐœ ๋ฐœํ‘œํ•  ์˜ˆ์ •์ด๋‹ค.[5] MoarVM์„ ๋ฐฑ์—”๋“œ๋กœ ์“ฐ๋Š” Rakudo๋Š” ์ด๋ฏธ ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด ์ŠคํŽ™์„ ๊ตฌํ˜„ํ–ˆ๊ณ  ํผํฌ๋จผ์Šค๋„ ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ๋Š”๋ฐ [6] ์—ฌ์ „ํžˆ ๋А๋ฆฌ๊ธด ํ•˜๋‹ค. ํ•˜์ง€๋งŒ 20๋…„ ๊ฐ€๊นŒ์ด ๋œ ์„ธ์›”๋งŒ์— ์ฒซ ๋ฐœ์„ ๋‚ด๋”›์€ Perl 6์ด๋‹ค. ๊ธฐ๋Œ€๋ฅผ ๊ฐ€์ ธ๋ด„์งํ•˜๋‹ค.

2019๋…„์—๋Š” Perl 6์ด ์•„์˜ˆ Raku๋ผ๋Š” ๋ณ„๋„์˜ ์–ธ์–ด๋กœ ๋ถ„ํ™”๋˜์—ˆ๋‹ค. ๊ธฐ์กด Perl๊ณผ๋Š” ์™„์ „ ๋ณ„๊ฐœ์˜ ๋…ธ์„ ์„ ํƒˆ ๊ณ„ํš์ธ ๋“ฏ. ์•ˆ ๊ทธ๋ž˜๋„ ์—†๋Š” ์‚ฌ๋žŒ ๋˜ ๋‚˜๋‰œ๋‹ค

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

ํ•œ๊ตญ์—์„œ๋Š” ๊ณผ๊ฑฐ ๊ฐœ์ธ์šฉ ์›น ํ”„๋กœ๊ทธ๋žจ์šฉ ์–ธ์–ด๋กœ ๊ฐ๊ด‘์„ ๋ฐ›์•˜์œผ๋‚˜, ํ˜„์žฌ๋Š” PHP์— ์™„์ „ํžˆ ์ž๋ฆฌ๋ฅผ ๋‚ด์ค€ ์ƒํƒœ. ์œ ํ–‰๊ฐ‘์˜ ์š”๊ตฌ์— ๋”ฐ๋ผ ๊ธ‰๋ณ€ํ•˜๋Š” ํ•œ๊ตญ์˜ ํŠน์„ฑ์ƒ ํŠน์ • ์–ธ์–ด๊ฐ€ ๋Œ€์„ธ๋กœ ์ž๋ฆฌ ์žกํžˆ๋ฉด ์—ฌํƒ€ ์–ธ์–ด๋Š” ์”จ๊ฐ€ ๋ง๋ผ๋ฒ„๋ฆฌ๊ณค ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฏธ๊ตญ, ์ผ๋ณธ๋“ฑ ์—ฌํƒ€ ๊ตญ๊ฐ€์—์„œ๋Š” ์•„์ง๋„ ํŽ„์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ์›น ๊ฒŒ์ž„(๋ฐฐํ‹€๋กœ์–„)์ด๋‚˜ ๊ฑด๋‹ด ๋ฐฐํ‹€ ๋ฅ˜๊ฐ€ ์ผ๋ณธ์—์„œ ์˜จ perl CGI.

1997๋…„ ~ 2000๋…„๋Œ€ ์ดˆ๊นŒ์ง€ ์›น CGI๋กœ ๋„๋ฆฌ ์“ฐ์˜€๊ณ , ๋‹น์‹œ ๊ฒŒ์ŠคํŠธ ๋ถ purelife dream, pury bbs์ด๋‚˜ ํ˜„์žฌ ๋ธ”๋กœ๊ทธ์™€ ์œ ์‚ฌํ•œ IRiS ์‹œ๋ฆฌ์ฆˆ๋„ ํŽ„๋กœ ์ž‘์„ฑ ๋˜์—ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์ธ์ง€ perl == CGI ๋กœ ์ธ์‹๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋Š”๋ฐ, ์›น ๊ด€๋ จ ํ”„๋ ˆ์ž„์›Œํฌ, ๋น„๋™๊ธฐ/๋„คํŠธ์›Œํฌ/๋™์‹œ์„ฑ ํ”„๋ ˆ์ž„์›Œํฌ, GUI ๋ฐ ๊ทธ๋ž˜ํ”ฝ, ๊ณผํ•™ ๋ฐ ์ˆ˜์น˜๊ณ„์‚ฐ, ์‹œ์Šคํ…œ๊ด€๋ฆฌ ๋ฐ ์ž๋™ํ™” ๋“ฑ์— ์“ธ ์ˆ˜ ์žˆ๋Š” ๋“ฑ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๋ฌด๊ถ๋ฌด์ง„ํ•˜๋‹ค.

ํŠน๊ธฐํ•  ๋งŒํ•œ ์ ์œผ๋กœ ๋ณ€์ˆ˜ ์•ž์— $ ๊ธฐํ˜ธ๋ฅผ ๋ถ™์ธ๋‹ค๋Š” ์ ๊ณผ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ์‹œ ๋ง์…ˆ ๊ธฐํ˜ธ(+) ๋Œ€์‹  ์ (.)์„ ์“ด๋‹ค๋Š” ์ ์ธ๋ฐ, ์ด๊ฒƒ์˜ ์˜ํ–ฅ์œผ๋กœ PHP๋„ ์ด ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.

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

์†Œ์Šค๋งŒ 1.9๋ฉ”๊ฐ€์ธ C++ ์†Œ์Šค๋ฅผ Java๋กœ ํฌํŒ… ํ•˜๋Š”๋ฐ, Perl์˜ ์ •๊ทœํ‘œํ˜„์‹๊ณผ ์ง์ ‘ ์ œ์ž‘ํ•œ ๋…ผ๋ฆฌ์—”์ง„์œผ๋กœ ์‚ฌํ˜๋งŒ์— ํฌํŒ…, ์‹คํ–‰์— ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ์‚ฌ๋ก€๋„ ์žˆ๋‹ค์นด๋”๋ผ.

ํ•œ๊ตญ์—์„œ๋Š” ๋ฒˆ์—ญ๋œ ๊ด€๋ จ์„œ์ ์„ ์ฐพ๊ธฐ๊ฐ€ ๋ฌด์ฒ™ ํž˜๋“ค๋‹ค. ์›์„œ๋กœ ๊ณต๋ถ€ํ•ด์•ผ ํ•œ๋‹ค. ์–ธ์–ดํ•™ ์ชฝ์—์„œ ์ ์šฉํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ํ•œ๊ตญ์™ธ๊ตญ์–ด๋Œ€ํ•™๊ต ์ถœํŒ๋ถ€์—์„œ ๋‚ด๋†“์€ ์ฑ…์ด ํ•œ ๊ถŒ ์žˆ๋‹ค.

6. ์ •๊ทœํ‘œํ˜„์‹[ํŽธ์ง‘]

์ •๊ทœํ‘œํ˜„์‹ ํ•ญ๋ชฉ ์ฐธ์กฐ.

7. ๊ด€๋ จ ์‚ฌ์ดํŠธ[ํŽธ์ง‘]

ํŽ„ ์ฝ”๋ฆฌ์•„ http://perl.kr/ http://www.perl.or.kr
ํ•œ๊ธ€ ํŽ„๋ฌธ์„œ ํ”„๋กœ์ ํŠธ http://doc.perl.kr
IRC #perl-kr http://webchat.freenode.net/?channels=perl-kr

Perlog http://blog.perl.kr/
Naver Perl Cafe http://cafe.naver.com/perlstudy
CPAN๊ฒ€์ƒ‰ http://search.cpan.org
MetaCPAN https://metacpan.org[7]

๋‹ฌ๋ ฅ์˜ ๊ฐ ๋‚ ์งœ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์˜จ๊ฐ– ๊ธฐ๊ดดํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค
[1] gcc์™€ make๋“ฑ์˜ ๋นŒ๋“œํˆด๋“ค๋„ ํ•จ๊ป˜ ์„ค์น˜๋˜์–ด ์œˆ๋„์šฐ์ฆˆ๋ฅผ ์ง€์›ํ•˜๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
[2] ๋ณธ์ธ์ด ์ธํ„ฐ๋ทฐ์—์„œ ์ง์ ‘ ์–ธ๊ธ‰ํ–ˆ๋‹ค
[3] https://metacpan.org/recent๋ฅผ ๋ณด๋ฉด ํ•˜๋ฃจ์— ์˜ฌ๋ผ์˜ค๋Š” ์‹ ๊ทœ๋ชจ๋“ˆ๊ณผ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ง€๊ธˆ๋„ ์–ด๋งˆ์–ด๋งˆํ•˜๋‹ค.
[4] Any:: ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“ˆ๋“ค์ด ๋Œ€ํ‘œ์ 
[5] https://fosdem.org/2015/schedule/event/get_ready_to_party/
[6] http://jnthn.net/papers/2014-yapceu-performance.pdf
[7] ์ด์ชฝ์ด ๋” ํŽธ๋ฆฌํ•˜๋‹ค