์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
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๋ง์ ๋นผ๋ฒ๋ฆฌ๋ ํฌ๋ํฐ ์ค์๋ฅผ ์ ์ง๋ฅด๊ธฐ๋ ํ๋ค..
์ด๋ฆ ์์ฒด๋ 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]
ํนํ ํ ์คํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ด ์ต๊ฐ์ ์ผ๋ก ๊ผฝํ๋ค. ํ๋ก๊ทธ๋๋ฐ์ ์ข ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด ํ ์คํธ๋ฅผ ๋ค๋ฃจ๋ ์ฝ๋ฉ์ด ์ผ๋ง๋ ๋ฒ๊ฑฐ๋ก์ด์ง ์๊ณ ์์ ๊ฒ์ด๋ค. Perl์ ํ ์คํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ด๋ ๋ฌธ์์ด์ ์ผ์น ์ฌ๋ถ ๊ฒ์ ๋ฐ ์นํ๋ฑ์ ๋งค์ฐ ์งง์ ์ฝ๋๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅํ๊ณ ์ฑ๋ฅ๋ ๋งค์ฐ ๋ฐ์ด๋๋ค. ๋ณด๊ฐ ์ฒ๋ฆฌ์ ์์ด์๋ ์คํฌ๋ฆฝํธ ์ธ์ด ๋ฟ๋ง ์๋๋ผ ์ ์ฒด ์ธ์ด ์ค์์ ์ฑ๋ฅ, ๊ธฐ๋ฅ์ ํ์ํ๋ค. ๊ทธ๋ฐ ์ฅ์ ๋๋ถ์ ์ธ์ดํ ์ ๊ณต์๋ค์ด ๋ง์ด ์ด์ฉํ๊ณ Perl ๊ด๋ จ ์ฑ ์ ๋ณด๋๋ผ๋ ์ธ์ดํ ๊ด๋ จ ์ฑ ๋ค์ด ๋ง๋ค.#
GUI, ์นํ๋ก๊ทธ๋๋ฐ, ์์คํ ๊ด๋ฆฌ, ๊ทธ ๋ฐ์ ๊ฐ๋จํ ์์ ์ ํ๋ ์คํฌ๋ฆฝํธ ์์ฑํ๋ ๋ฐ์ ๋๊ฒ ์ด์ฉ๋๋ฉฐ ์๋ฌผ์ ๋ณดํ ์ชฝ์์๋ ๊ด๋ฒ์ํ๊ฒ ์ด์ฉ๋๋ ํธ. ํนํ ๋ค๋ฅธ ์ธ์ด์ ๋นํด ์ ๊ทํํ์๊ณผ ํจ๊ป ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ด ๋ค์ํ๊ณ ๊ฐ๋ ฅํ๊ฒ ์ ๊ณต๋๊ณ ์์ผ๋ฏ๋ก, ์ธ์ดํ์ชฝ์์ ๋ง์ด ๋ค๋ฃจ๋ ์ธ์ด์ด๊ธฐ๋ ํ๋ค.
์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ค ๋ณด๋ ์ฝ๋๋ฅผ ์์ ํ ๋๋ง๋ค ์ปดํ์ผ์ ๋ฐ๋ณตํ ํ์๊ฐ ์์ด ํ๋ก๊ทธ๋จ ๊ตฌํ์ด๋ ๋๋ฒ๊น ์ด ์ฌ์ด ํธ์ด๊ธฐ๋ ํ๋ค. ์์ ๋ฐ ๋ฌด๋ฃ ์ํํธ์จ์ด์ฌ์ ๋น์ฉ ๋ฉด์์๋ ๊ต์ฅํ ์ฅ์ ์ ์ง๋๊ณ ์๋ ํธ. ๊ฐ์ข ์ ๋์ค ์์คํ ์ด๋ ๋งฅ OS X์ ๊ธฐ๋ณธ์ผ๋ก ํ์ฌ๋์ด ์๋ค. ์๋์ฐ์ฆ ๊ณ์ด์์๋ StrawberryPerl[1] ์ ์ค์นํด ์ธ ์ ์๋ค.
ํํธ์ผ๋ก๋ ๋ฏธ์น ๋ฏํ ์ถ์ฝ์ด ๊ฐ๋ฅํ๋ค๋ ์ ์์ "Perl์ Pathologically Eclectic Rubbish Lister(๋ณ์ ์ผ๋ก ํญ๋์ ์ก๋์ฌ๋ ์ถ๋ ฅ๊ธฐ)์ ์ฝ์."๋ผ๋ ๋๋ด๋ ๊ฐ๋ ๋ค์ ์ ์๋ค.[2]
2.1. CPAN[ํธ์ง]
CPAN์ด๋ผ๊ณ ํ๋ก ์ ์๋ ์ํํธ์จ์ด๋ค์ ๋ชจ์๋์ ์๋ฃ์ค์ด ์๋ค. ์ด CPAN์ ๋ฐฉ๋ํจ์ ํ ๊ด๋ จ ๋ฌธ์ ํด๊ฒฐ์ ๋ณด๊ณ ์ด์ ํ์ ์๋๊ฑฐ๋ฆฌ์ด๋ค.[3]
CPAN์ ๋ฐฉ๋ํจ๋งํผ์ด๋ ๊ฐ์ ๋ชฉ์ ์ ๋ค๋ฅธ ํน์ง์๋ ๊ตฌํ์ด ๋ง๋ค. ์ฌ๊ธฐ์ ํน์ ์ ๋ฌธํ๊ฐ ๋ํ๋๊ฒ ๋๋๋ฐ, ์ด๋ฌํ ๋ชจ๋๋ค์ ํตํฉํด์ฃผ๋ ์์ ์ธํฐํ์ด์ค ๋ชจ๋๋ค์ด ๋ฑ์ฅํ๊ณ [4], ์ด๋ ๊ฒ ํํํ๊ฒ ์ถ์ํ๋ ๋ชจ๋์์์ ๋ค์ ๋ค๋ฅธ ๋ชจ๋์ด ์์ฑ๋๋ค. ์์ฐ์ ํ์ ์ผ๋ก ๋ง์ด ์ด์ฉ๋ ๋ชจ๋์ด ๋์ธ๊ฐ ๋๊ณ , ๋์ธ์ธ ๋ชจ๋์ ์ด์ฉํ ํ๋ก๊ทธ๋จ๊ฐ์๋ ํ์๋ ๋ฒจ์์์ ํ์ฅ์ด ๊ฐ๋ฅํ๊ฒ ๋๋ค.
๊ธฐ์กด์ ์๋ ๋ชจ๋์ ํจํค์ง๋ช ์ ํ์ฅํด ๋ค๋ฅธ ์ฌ๋์ด ๋ณ๋์ ๋ชจ๋๋ก ๋ง๋ค์ด ์ ๋ก๋ํ ์๋ ์๋ค. ๋ด๊ฐ ์ฌ๋ฆฐ ๋ชจ๋์ ๋ค๋ฅธ ์ฌ๋์ด ํ์ฅํด์ฃผ๋ ํจ๊ณผ.
์ค์ ๋ก ํ ์ธ์ด์ ๋นํด์, ๋ณ ๊ธฐ๋ฅ์ด ์๋ ๋ชจ๋์ ์์กด์ฑ ํธ๋ฆฌ๊ฐ ์์ฒญ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ณ , ์ด๊ฒ์ด ๋ค์ CPAN์ ์์กด๋๋ฅผ ํฌ๊ฒํ๋ ์ญํจ๊ณผ๋ฅผ ๊ฐ์ ธ์๋ค.
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๊ฐ ์๋ค.
์ผ๋ถ ๋ถ๋ถ์์ ๊ธฐ๊ต์ ์ธ ์ฌ์ฉ์ ์๊ตฌํ๋ ๊ฒ๋ ๋ฌธ์ . ํจ์์ ๊ฐ์ฒด์ ์ ์ธ์ด ๊ฐ์ฅ ๊ธฐ๊ต์ ์ธ ๋ถ๋ถ์ธ๋ฐ 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๊ณผ๋ ์์ ๋ณ๊ฐ์ ๋ ธ์ ์ ํ ๊ณํ์ธ ๋ฏ.์ ๊ทธ๋๋ ์๋ ์ฌ๋ ๋ ๋๋๋ค
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ณ ํฌ๋์ ๋ก๋ฐฅ์ผ๋ก ์ ๋ช ํ๋ค. 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์ ์ ๊ทํํ์๊ณผ ์ง์ ์ ์ํ ๋ ผ๋ฆฌ์์ง์ผ๋ก ์ฌํ๋ง์ ํฌํ , ์คํ์ ์ฑ๊ณตํ๋ค๋ ์ฌ๋ก๋ ์๋ค์นด๋๋ผ.
ํ๊ตญ์์๋ ๋ฒ์ญ๋ ๊ด๋ จ์์ ์ ์ฐพ๊ธฐ๊ฐ ๋ฌด์ฒ ํ๋ค๋ค. ์์๋ก ๊ณต๋ถํด์ผ ํ๋ค. ์ธ์ดํ ์ชฝ์์ ์ ์ฉํ๋ ค๋ ์ฌ๋์๊ฒ๋ ํ๊ตญ์ธ๊ตญ์ด๋ํ๊ต ์ถํ๋ถ์์ ๋ด๋์ ์ฑ ์ด ํ ๊ถ ์๋ค.
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]
๋ฌ๋ ฅ์ ๊ฐ ๋ ์ง๋ฅผ ํด๋ฆญํ๋ฉด ์จ๊ฐ ๊ธฐ๊ดดํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ณผ ์ ์๋ค
ํ๊ธ ํ๋ฌธ์ ํ๋ก์ ํธ 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]
๋ฌ๋ ฅ์ ๊ฐ ๋ ์ง๋ฅผ ํด๋ฆญํ๋ฉด ์จ๊ฐ ๊ธฐ๊ดดํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ณผ ์ ์๋ค
- Perl Advent Calendar 2010 http://advent.perl.kr/2010/
- Perl Advent Calendar 2011 http://advent.perl.kr/2011/
- Perl Advent Calendar 2012 http://advent.perl.kr/2012/
- Perl Advent Calendar 2013 http://advent.perl.kr/2013/
- Perl Advent Calendar 2014 http://advent.perl.kr/2014/
- Perl Advent Calendar 2015 http://advent.perl.kr/2015/
- Perl Advent Calendar 2016 http://advent.perl.kr/2016/
- Perl ๋ถ์ฒ๋ ์ค์ ๋ ๊ธฐ๋ ๋ฌ๋ ฅ http://lotus.perl.kr/
[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] ์ด์ชฝ์ด ๋ ํธ๋ฆฌํ๋ค