language/perl

[perl] 펄이란? -펄연재 1편-

alignG 2010. 8. 29. 14:34

오늘부터 몇편에 이어서 펄에 대해서 연재를 해보도록 하겟습니다. 저도 초보이기에 저 스스로 공부도 할겸 많은 분들께 펄도 알릴겸 연재를 시작합니다. 프로그래밍을 모르는 일반인도 이 글을 읽고 재미로 자신이 필요한 것들을 만들어 사용할 수 있기를 바라며 완전초보라는 관점에서 글을 연재해 나가도록 하겟습니다.

오늘은 그 첫번째 시간으로 "대체 Perl이 뭐야?" "Perl 넌 누구냐?"라는 주제로 글을 써보겠습니다.



그 전에 먼저 프로그래밍 언어에 대해 정의를 내리고 가야 겟네요. 위키디피아에서는 다음과 같이 정의를 내립니다.

프로그래밍 언어컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 언어이다. 고급 언어일 수록 사람이 사용하는 언어와 가깝다. 일반적으로 말할 때에는 프로그래밍 언어를 지원하는 소프트웨어, 곧 소프트웨어를 작성하기 위한 소프트웨어를 가리키는 때가 많고, 이때에는 프로그래밍 언어와 소프트웨어를 구분하지 않고 소프트웨어를 프로그래밍 언어로 보기도 한다.

예를 들면, 델파이는 프로그래밍 언어인 오브젝트 파스칼을 지원하는 소프트웨어를 작성하기 위한 소프트웨어일 뿐이지만, 델파이를 별개의 프로그래밍 언어로 보는 때가 더 많다. by 위키디피아


간단히 말하자면 우리가 미국인한테 무언가 부탁하려면 영어로 말해야 하듯이 컴퓨터한테 무언가를 부탁하려면 프로그래밍언어로 말을 해야 하는 것이죠. 만약 [야 "Hello World"라고 말해봐]라고 하게 될 경우에는 [print "hello World"]라고 컴퓨터에게 말해 줘야 한는 것이죠. 그런데 인간이 다양한 언어로 말을 하듯이 컴퓨터 역시 다양한 언어로 말을 할 수가 있습니다. 또한 언어마다 다양한 특징이 있구요 ^^



지금 우리가 알아가고 있는 Perl도 역시 프로그래밍 언어의 한 종류입니다. 먼저 위키디피아에 있는 글을 한번 보겟습니다.

(Perl)은 래리 월이 만든 인터프리터 방식의 프로그래밍 언어 혹은 그 인터프리터 소프트웨어를 가리킨다. 펄 언어는 실용성을 모토로 하고 있어 Csed, AWK, 셸 스크립트 등 다른 프로그래밍 언어에서 뛰어난 기능을 많이 도입하여 사용하고 있다. 언어 자체의 자유도가 높고 표현력이 뛰어나 CGI나 웹프로그래밍, 시스템 관리, 그 밖의 간단한 작업을 하는 스크립트를 작성하는 데에 넓게 이용되고 있으며, 또한 생물정보학 쪽에서도 광범위하게 이용되고 있다.

인터프리터 펄은 자유 소프트웨어이며, 아티스틱 라이선스 또는 GPL으로 배포되고 있어 사용자는 둘 가운데 하나의 라이선스를 골라 쓸 수 있다. 유닉스를 비롯해 다양한 플랫폼에서 동작한다.

펄을 처음 만들때 래리월은 NASA에서 시스템관리자로 일하고 있던 당시에 만들었답니다. 첨엔 유즈넷 같은 계층구조로 버그리포팅을 하고 싶어서 만들었다고 합니다. 위에서 보신 sed나 awk, shell등에서 영감을 받아서요. 초기에는 단순한 문자열처리를 위해 만들어졌지만 CGI나 해커들이 손을 대기 시작하면서 업청난 발전을 거듭하여 지금의 펄이 된것이지요. 펄은 초기에 만들어진 의도의 영향을 받아 문자열 처리가 무척이나 강력합니다. 그리고 귀차니즘이 심하신 래리월 아저씨?의 영향으로 많은 부분을 $_ @_등 암묵적으로 생략하고 짧은 코드로 만들어 낼 수 있죠.

또한 "TIMTOWTDI"이라는 철학 위에 펄은 만들어졌는데 (there's more than one way to do it - 문제를 해결하는 방법은 단 한 가지가 아니다) 그래서 한가지 문제를 코딩하기 위해서 정말 다양한 관점에서 접근할 수 있도록 만들어져 있죠. 이것때문에 코드가 지저분해지기도 하지만 자유롭게 자기가 원하는 스타일대로 코딩을 할 수 있다는 매력이 있죠. 제가 가장 펄에서 매력적으로 생각을 하고 있는 부분이 이 부분입니다. ^^



펄의 어원은 다음과 같습니다 . &^^&

(Perl)은 당초 성서마태오 복음서〉 13장 46절에 나오는 “고가의 진주”를 따서 진주를 뜻하는 “pearl”이라고 이름이 붙여졌다. 래리 월은 긍정적인 의미를 가지는 짧은 이름을 선택하고 싶었고, 서너 글자로 이루어진 낱말을 사전에서 모두 찾아 보았지만 눈에 탁 띄는 것이 없었다고 한다. 그는 아내 글로리아의 이름을 따오는 것도 고려해 봤다고 한다.

펄이 정식 공개되기 앞서, 벌써 “pearl”이란 이름의 프로그래밍 언어가 있다는 걸 알게 돼서 철자를 살짝 바꾸어 “Perl”이라고 했다. 이처럼 “Perl”은 원래 약어가 아니지만, 나중에 이름에 몇 가지 의미가 붙여졌다. 정식 메뉴얼에서는 “Practical Extraction and Report Language”(실용적인 데이터 취득 및 리포트 작성 언어)란 의미라고 기술되어 있고, 읽기 어려운 것을 풍자하여 “Pathologically Eclectic Rubbish Lister”(병적 절충주의 잡동사니 출력장치)라고 하는 조금 짓궂은 의미도 붙이곤 한다. “Perl”이란 이름을 글로 쓸 때 약간의 주의가 필요하다. 펄 언어를 나타낼 때는 “Perl”처럼 첫 글자를 대문자로 해 고유 명사인 것을 확실히 한다. 이에 대해 현재 배포되고 있는 펄 언어의 유일한 인터프리터는 “perl”로 쓴다. 일반적으로 “perl만이 Perl을 해석할 수 있다”라는 말이 성립한다.




마지막으로 펄의 가장 강력한 장점중 하나인 CPAN에 대해서 알아볼까요 ^^
펄은 모듈을 이용하여 특정 기능을 쉽게 사용할 수 있다. 예를 들어, 다른 프로그램이나 네트워크와의 통신, 각종 파일 형식의 처리, 수치 계산 등을 위한 수많은 모듈이 존재한다. CPAN 은 이러한 모듈을 체계적으로 관리하는 조직이며, 인터넷에서 서비스되고 있다. 펄이 동작하고 있는 컴퓨터가 인터넷에 접속되어 있으면, 반자동으로 CPAN과 접촉해 모듈을 가져와서 설치할 수 있다.


CPAN은 일종의 만물상이라고 볼 수 있습니다. 만들고 싶은것이 있다면 직접 짜보기 전에 CPAN을 뒤져 보시면 이미 많은 것들이 작성되어 있으니까요 ^^ 하다 못해 오목에 대한 모듈도 있더군요. 이미 많은 것들이 짜여져 있어서 자신이 짜고자 하는 프로그램에 가져다 붙이고 필요한 부분만 직접 짜시면 됩니다.

오늘은 펄에 대해서 설명드렸습니다. 사실 저도 펄의 초보라 공부할 겸해서 정리해나가는 중입니다.
다음에는 윈도우 사용자를 위한 펄의 설치와 기초적인 사용법에  대해서 알아보겟습니다.



이런 연재라고 해놓고서는 2편이 없었네요. 13년이 된 지금에서야 2편을 쓰기도 ㅠㅠ
고민해 보고 글을 쓸지 결정해 보겠습니다.
군 전역하고 블로그를 둘러 보던중 검색엔진으로 이글을 들어온 로그가 있어 지금에서야 기억해 냈군요 ㅠㅠ - 2013.5.15 합정역에서



반응형