본문 바로가기

이글루스

isao의 IT,게임번역소

검색페이지 이동

사이드 메뉴

이글루스 블로그 정보

프로그래밍 입문자를 위한 언어 선택 -3회 인기있는 경량 프로그래밍 언어 5가지

앱으로 보기

본문 폰트 사이즈 조절

이글루스 블로그 컨텐츠

http://thinkit.co.jp/story/2011/04/27/2100?page=0,2

(역주:본 기사는 2011년에 작성된 것으로 현재의 프로그래밍 환경과 상이한 부분이 있을 수 있으니 
어디까지나 참고용으로 읽어주시면 감사하겠습니다) 



들어가며

오늘은 인기있는 경량 프로그래밍 언어 5가지라는 제목으로 Python, Ruby, Perl, PHP, JavaScrpit를 소개하겠습니다. 오늘 다룰 언어들도 지난 회와 마찬가지로 TIOBE Software의 랭킹에서 인기가 있는 것들을 골랐습니다. 

경량 프로그래밍 언어는 Lightweight Language(약칭 LL)이라고도 불립니다. 짧은 코딩으로 원하는 처리를 실현할 수 있고 간편하게 다룰 수 있는 프로그래밍언어라는 의미죠. Python이나 Ruby는 LL의 대표격이라 할 수 있습니다. 

LL은 C나 Java 등을 사용할 정도가 아닌 비교적 간단한 처리를 작성할 때 이용하면 매우 편리합니다. 또한 최근에는 CPU의 성능향상과 메모리의 대용량화로 경량 프로그래밍언어의 속도도 적극적으로 개선되고 있으므로 대규모 개발에서 활약하는 기회도 증가하는 추세입니다. 

LL은 학습난이도가 비교적 낮은 것이 많습니다. 지난 번에 소개한 컴파일러언어를 배운 후 오늘 나오는 언어를 만져보면 놀라울 정도로 간단하다고 느끼실지도 모릅니다. 

경량 프로그래밍 언어의 용도

LL의 장점은 일단은 간편하게 코딩할 수 있다는 점입니다. C나 Java와 비교하면 절반 이하의 자수로 코딩할 수 있다는 점도 있습니다. 일반업무나 생활 속에서 「지금 수동으로 하고 있는 작업을 자동화하고 싶다」하고 생각했을 때는 꼭 LL 중 한가지를 사용해 보세요. 

예를 들어 어떤 Web사이트에 올라와 있는 100개 이상의 이미지를 모두 다운로드하고 싶다고 칩시다.  수작업으로 다운로드할수도 있겠지만 100개 정도되면 꽤나 고생스러운 일이죠. 프로그램을 작성할 수 있다면 컴퓨터에 명령을 내려 자동으로 다운로드하도록 할 수 있습니다. 

Web을 통한 정보수집이나 간단한 파일조작을 하고 싶은 경우는 Python이나 Ruby, Perl 등을 추천합니다. Excel 등의 오피스소프트웨어 처리를 자동화할 때는 VBA라는 언어를 사용합니다. 

LL에는 다른 사람이 만든 라이브러리를 쉽게 이용하기 위한 시스템이 준비되어 있기도 합니다. 대표적인 예로는 Perl의 CPAN이나 Ruby의 RubyGems이 유명합니다. 

적절한 라이브러리를 이용하면 프로그래밍에 드는 수고를 더욱 덜 수 있습니다. 라이브러리 중에는 C로 작성되어 고속으로 작동하는 것도 있으므로 이들을 이용하면 컴파일러언어와 비교해도 손색없는 속도로 처리할 수 있기도 합니다. 

Web 어플에서의 LL

LL은 Web어플을 작성할 때 자주 이용됩니다. Web어플은 Web서버 상에서 프로그램을 동작시키고 유저의 요청에 따라 동적으로 결과를 내놓는 애플리케이션입니다. 페이스북이나 트위터 등은 Web어플의 일종이죠.

서버 상에서 처리하므로 Windows, Mac, 스마트폰 어디서나 브라우저만 탑재되어 있다면 플랫폼에 상관없이 이용할 수 있는 것이 Web어플의 장점이라 할 수 있습니다. 

브라우저가 신청을 함 → Web 서버가 신청을 접수함 → Web어플이 필요한 정보를 DB에 문의함 → 반환할 페이지를 작성함 → 브라우저에 결과를 내놓음
이란 흐름이 대표적인 Web어플의 동작 예입니다. 

상기한 흐름 중에 이용되는 소프트웨어는 다음과 같은 언어로 만들어진 경우가 많습니다. 

그림1:Web 어플의 구성

Web서버는 초당 수백건의 대량의 요청을 접수를 예상하고 있으므로 신속한 처리가 요구됩니다. 따라서 대표적인 Web서버인 Apache나 lighttpd는 C로 작성되어 있습니다. 

데이터베이스는 수억건의 데이터를 처리하는 등 엄청난 양의 처리를 하므로 C나 C++가 이용되는 경우가 많습니다. 

LL은 요청내용에 따라 데이터베이스에 문의를 하고 브라우저에 내놓을 페이지를 생성하는 처리를 담당하는 경우가 많습니다. 이런 부분은 DB가 담당하는 처리와 비교하면 비교적 가벼운 처리입니다. 

또한 Web어플은 고객의 요구에 따라 프로그램이 자주 수정되기도 합니다. 스크립트언어는 소스코드를 교체하기만 하면 수정이 반영되므로 빈번한 업데이트에 대응하기 쉽습니다. 

이러한 가볍고 업데이트빈도가 잦은 애플리케이션은 LL의 간편함이 활용되는 분야입니다. 

Python 학습

Python은 TIOBE 랭킹만을 본다면 현재 가장 인기있는 스크립트 언어입니다. 하지만 일본에서는 전부터 이용된 Perl이나 일본 프로그래밍언어인 Ruby등의 인기로 Python을 보게되는 빈도가 많지 않을 수도 있습니다. 

인덴트(들여쓰기)가 문법에 포함되어 있어 아주 깔끔한 코딩을 할 수 있는 것이 특징입니다. 

아래 그림은 Python의 로고입니다. 이름 그대로 뱀이 모티브입니다. 참고로 Python이란 명명은 영국의 코미디 그룹인 몬티 파이선에서 왔다고 합니다. 

그림2:Python의 로고

학습대상

Python은 범용적인 언어이므로 대부분의 처리를 실현할 수 있습니다. 특징적인 용도로는  Google App Engine(Google이 제공 중인 클라우드 서비스)에 이용할 수 있거나 과학계산관련 라이브러리가 다양하거나 합니다. 

Ruby나 Perl도 Python과 마찬가지로 범용적인 스크립트언어입니다. 이 3가지 언어는 역할이 상당히 겹치기도 합니다. 어떤 것을 선택해야할지는 자신이 제작하려 하는 소프트웨어에 맞는 라이브러리가 존재하는가, 그 라이브러리의 신뢰성이 높은가 등을 기준으로 결정하면 되겠죠.

도입방법

Python의 최신버전은 현재 2.7과 3.2 2종류가 존재합니다. Python은 2에서 3으로 버전업할 때 언어사양이나 표준라이브러리에 많은 변경사항이 있었습니다. 따라서 2와 3을 놓고 볼 때 동일한 소스코드를 움직일 수 없는 경우가 있습니다. 앞으로는 3으로 이동할 것으로 예상되지만 현 상황에서는 라이브러리의 수 등에서 2가 편리하게 사용할 수 있는 상태입니다. 

Python은 공식사이트(http://python.org/)에 있는 인스톨러를 이용하면 간단하게 도입할 수 있습니다. 또한 Python의 공식사이트에는 매우 상세한 튜터리얼도 준비되어 있습니다. 단, 최신판은 영어로만 되어 있습니다.  2.6의 경우는 일본어번역문도 준비되어 있습니다. 

→ The Python Tutorial —Python v2.7.1 documentation

→ 개요 —Python 2.6.2 documentation

Ruby 학습

Ruby는 일본인인 마츠모토 유키히로씨가 개발한 세계적으로도 인기있는 언어입니다. 언어개발에 관한 논의도 일본어로 이루어지고 있으므로 일본인 입장에서는 친숙해지기 쉬운 언어라 할 수 있습니다. 

프로그래밍언어가 어떻게 개발되었는지 궁금한 분은 Ruby의 개발자용 메일링리스트를 보시는 것도 좋겠습니다. 흥미로운 얘기를 볼 수 있습니다.

→ Ruby 개발자용 메일링 리스트

아래 그림은 Ruby의 로고입니다. Perl(Pearl=진주)가 6월의 탄생석인데 비해 Ruby는 7월의 탄생석입니다. 이런 점에서도 알 수 있는 것 처럼 Ruby는 Perl을 의식해서 만들어진 언어입니다. 

그림3:Ruby의 로고

학습대상

Ruby는 Ruby on Rails라는 Web프레임워크(Web애플리케이션을 간단히 만들기 위한 시스템)이 인기를 끌면서 쉐어를 늘려갔습니다. Rails는 라쿠텐이나 쿡패드 등의 일본의 유명사이트에도 이용되고 있습니다. 

단순히 Web어플을 만드는 것만을 생각한다면 PHP를 선택하는 편이 일반적이지만 Ruby가 PHP보다 범용적인 용도에 사용할 수 있습니다. 

도입방법

Ruby도 Python과 마찬가지로 현재는 1.8과 1.9  이렇게 2가지 버전이 존재합니다. Rails 등의 중요한 라이브러리는 이미 1.9를 지원하며 또한 성능도 좋으므로 특별한 이유가 없다면 1.9에서 시작해도 괜찮습니다. 

이전에는 Ruby의 최신버전을 Windows에 인스톨하려면 DLL을 다운로드하거나 패스를 거치는 등의 작업이 필요했지만 최근에는 RubyInstaller라는 인스톨러를 이용할 수 있게 되었습니다. RubyInstaller를 사용한 인스톨 방법은 다음 사이트를 참고해 주십시오. 

→ Windows 에서 Ruby 버전 1.8.6 또는  1.8.7 또는  1.9.2 의 인스톨
(RubyInstaller 를 사용)

Perl 학습

Perl은 1987년 경에 등장한 역사있는 언어입니다. 일부러 C를 사용해야 할 정도가 아닌 수준의 처리를 간단하게 실행할 수 있다는 점에서 많은 인기를 모았습니다.  

역사가 있는 만큼 Perl에는 많은 선배 개발자들이 만든 모듈(프로그램의 부품)이 준비되어 있습니다. 특히 CPAN이라는 모듈모음집에는 수천명의 프로그래머가 만든 근 10만개의 모듈이 등록되어 있습니다. CPAN을 이용하면 기초적인 작업에 시간을 빼앗기지 않고 효율적으로 프로그램을 짤 수 있습니다. 

다음 그림은 Perl의 로고(낙타)입니다. 소프트웨어 세계에서는 이미지 캐릭터에 동물을 사용하는 경우가 많습니다. Linux의 펭귄, 파이어폭스의 여우, MS Office의 사에코선생이 유명하죠. 

그림4:Perl의 로고

학습대상

시스템개발 업무를 하다보면 처리의 이음새를 채우는 부분에서 약간의 Perl 소스가 구동되는 것을 볼 기회가 있습니다. Perl을 아는 프로그래머의 수도 많고 기회가 있다면 알아둬서 손해볼 것은 없는 언어라 할 수 있습니다. 

도입방법

Linux에는 대개 기본적으로 Perl이 인스톨되어 있고 콘솔에서 perl이라고 치기만 하면 동작합니다. Windows에서는 ActivePerl을 인스톨합니다. 다음 사이트에서 ActivePerl의 도입부터 Perl의 샘플코드까지 다양한 정보를 볼 수 있습니다. 

→ 샘플코드를 통한 Perl 입문

1가지 용도에 특화된 언어

지금까지 소개한 언어(지난 회도 포함)은 모두 범용적인 언어입니다. 각각 적합한 분야와 그렇지 않은 분야가 있지만 대개 무엇이나 만들 수 있습니다. 

그에 비해 PHP와 JavaScript는 Web어플을 만드는 것만을 목적으로 만들어진 언어입니다. PHP는 Web어플의 서버 측 처리를, JavaScript는 Web어플의 클라이언트 측 처리를 실현하기 위해 만들어졌습니다. 

프로그래밍 언어 중에는 이렇게 1가지 용도에 특화된 언어가 존재합니다. Windows의 데스크탑 어플을 만드는 것이 목적인 HSP나 통계해석을 목적으로 하는 MATLAB나 R 등이 유명하죠. 이러한 언어는 목적이 정해지있는 만큼 기능이 간단하고 익히기 쉬운 경우가 많습니다. 

PHP 학습

PHP의 주된 분야는 Web 서버 상에서 동작하여 HTML을 출력하는 것입니다. 언어 제작이나 표준 라이브러리 구성도 HTML을 출력하는데 적합한 내용으로 구성되어 있습니다. 

아래 그림은 PHP의 로고입니다. 정식명칭은 「PHP: Hypertext Preprocessor」(역:PHP는 HTML 등의 하이퍼텍스트의 전처리를 함)입니다. 이름에서 그대로 특징이 나오는 언어죠. 참고로 PHP에는 elePHPant라는 귀여운 코끼리 마스코트도 존재합니다.  

그림5:PHP의 로고

학습대상

PHP는 페이스북이나 야후 등의 대규모사이트에서도 이용되는 Web 어플 세계에서는 가장 메이저한 언어 중 한가지입니다. 

직접 Web 서비스를 만들어 보고 싶은 사람은 PHP부터 배우는 게 좋을 것입니다. PHP는 많은 렌탈서버에서 이용할 수 있으므로 서비스를 실제로 일반에 공개할 때 나타날 수 있는 트러블을 사전에 덜 수 있습니다. 

도입방법

PHP를 도입할 때는 함께 Web서버의 인스톨 등이 필요합니다. 다음 사이트에서는 Apache라는 Web서버를 이용한 도입순서를 해설하고 있습니다. 

→ 초보자용 PHP 입문

JavaScript 학습

JavaScript는 브라우저 상에서 동작하는 프로그래밍언어입니다. 유저의 조작에 따라서 표시내용을 전환하거나 간단한 애니메이션이나 게임을 실현할 수도 있습니다. 이름은 Java와 비슷하지만 내용은 전혀 다른 언어입니다. 

2000년대 중반부터 Ajax라 불리는 JavaScript를 통한 통신을 이용한 움직임이 특정 Web사이트에서 유행하기 시작했습니다. 마우스로 지도 상을 이동할 수 있는 구글맵이 그 대표적인 사례입니다. 구글지도는 API가 제공되어 있으므로 JavaScript를 사용할 수 있으면 자신의 사이트에 지도를 표시할 수도 있습니다. 

학습대상

JavaScript는 Web어플을 만드는데 있어서 필수적인 언어 중 1가지입니다. 

또한 다른 사람에게 「이런 프로그램을 만들었다」고 보여주기에도 편한 언어입니다. JavaScript를 사용한HTML파일을 보내거나 무료 렌탈사이트에 배치해서 URL을 전하기만 하면 다른 사람에게 자신이 쓴 프로그램을 사용하도록 할 수도 있습니다. 

결과물을 누군가에게 공개한다는 것은 하나의 모티베이션이 될 수 있으므로 코딩한 프로그램을 꾸준히 다른 사람에게 공개하고 싶은 사람은 JavaScript부터 시작하는 것도 좋을 것입니다. 

도입방법

다음 사이트에서는 Firefox를 이용한 JavaScript의 개발환경구축방법을 해설하고 있습니다. 

→ JavaScript 입문

JavaScript는 표시되는 Web브라우저 종류에 따라 동작이 달라질 경우가 있습니다. 특히 IE6나 IE7은 기본사양과 다른 동작을 하는 경우가 많으므로 학습할 때는 Firefox나 Chrome 등의 브라우저를 이용하고 샘플소스를 찾는 경우에는 가능하면 최근에 업로드된 것을 선택할 것을 추천합니다. 

정리

이상으로 Python, Ruby, Perl, PHP, JavaScript를 소개해 보았습니다. 

프로그래밍언어는 어떤 언어라도 어느 정도 통하는 점이 있으므로 1가지라도 익혀두면 다음에 새로운 언어를 배울 때 드는 고생이 줄어듭니다. 

아직도 느낌이 오는 언어가 없다 싶은 분은 주사위를 굴려서 적당히 선택해보는 것도 좋지 않을까 싶습니다. 실행해 보고나서야 알게되는 것도 있을 것이고 그래서 배운 것은 다음에 다른 언어를 배울 때 반드시 도움이 됩니다. 

그럼 다음회가 마지막이 될 것 같습니다. 오늘까지는 언어의 소개와 용도를 중심으로 설명했습니다 다음 회에서는 조금 나아가서 프로그래밍언어를 배운다는 것은 어떠한 것인지 실제로 1가지 언어를 다뤄보면서 해설할까 합니다. 

【参照リンク】


포스트 공유하기

썸네일
isao님의 글 구독하기
덧글 2 관련글(트랙백) 0
신고
맨 위로
앱으로 보기 배너 닫기

공유하기

주소복사

아래의 URL을 길게 누르면 복사할수있습니다.

http://isao76.egloos.com/m/2391552
닫기

팝업

모바일기기에서만 이용이 가능합니다.
운영체제가 안드로이드, ios인
모바일 기기에서 이용해주세요.

덧글 삭제

정말 삭제하시겠습니까?

비밀번호 확인

게시글 신고하기

밸리 운영정책에 맞지 않는 글은 고객센터로
보내주세요.

신고사유


신고사유와 맞지 않을 경우 처리되지 않을 수 있습니다.
저작권 위반/명예훼손 등은 고객센터를 통해 권리침해
신고해주세요.
고객센터 바로가기