Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

script의 의미

컴퓨팅영역에서 사용되는 script language로서의 script에 대해서 알아봐야 하겠지만 그전에 script 원래의 의미에 대해서 알아보는 것도 꽤나 재미있을 것 같아서 나름 생각을 정리해 보기로 했다.

script는 언어쪽에서 먼저 사용된 것 같다. 일반적으로 문자로 구성된 의미를 포함한 일련의 문장의 의미로 해석할 수 있다. 주목할 만한 점은 의미를 포함한 말을 script라고 하지는 않는 다는 것이다. 반드시 말이 공간 - 돌덩이, 대나무, 파피루스 혹은 종이 - 에 붙들려진 형태로 존재해야 비로서 그것을 script라고 한다는 점이다. script의 어원이 쓰다라는 의미를 가지게 된 것도 이러한 성질을 반영한 것이리라 생각된다.

script는 글로 씌어진 형태이기 때문에 공간과 시간의 맥락밖에 존재할 수 있다는 특징을 가진다. 말은 말을 전한 그 시간과 공간을 벗어나면 공중으로 사라진다. 그러나 글로 남은 지시나 명령은 공간과 시간에 관계 없이 읽혀지고 해석되고 필요에 따라서 수행될 수 있다. 때문에 어떤 일이 명확히 그리고 주기적으로 - 다시 말해서 기계적으로 - 수행되거나 배포되어야할 필요가 있다면 script 형태로 작성이 되어야 한다. 구약성서의 레위기의 제례의식이 대표적인예라고 볼 수 있을 것이다.

script language

script language vs complie language

컴퓨터에서의 script language 역시 어떤 일을 주기적으로 수행하고, 그 수행하는 방식을 기록에 남겨서 배포하기 위한 목적으로 사용한다. 다만 컴퓨터의 경우에는 script가 수행되는 대상이 인간이 아니고 기계라는 특징 때문에 compile language 와 구분을 해야할 필요가 있다. script는 일반적으로 인간이 이해할 수 있는 언어, 그 중에서도 영어로 작성이 되는데 영어는 컴퓨터가 이해할 수 없는 언어다. 그러므로 이를 컴퓨터가 이해할 수 있는 언어로 전달해야할 필요가 있다.

일반적으로 어떤 번역 프로그램이 script의 내용을 읽어서 컴퓨터의 언어인 기계어(:12)로 번역을 해서 실행되면 script 언어 라고 하고, code의 내용을 미리 기계어로 번역을 해두고 이 기계어를 실행시키도록 만들어진 언어를 compile 언어 라고 한다. 이를테면 script 언어는 동시통역 이고 compile는 번역이라고 보면 될 거 같다.

  • 스크립트 언어로 작성된 코드는 통역 프로그램에 의해서 즉시 기계어로 변환되어서 수행된다.
  • compile 언어로 작성된 코드는 번역 프로그램에 의해서 실행가능한 - 기계어 코드를 포함한 - 프로그램으로 번역이 되고, 이 프로그램을 실행하는 것으로 코드의 내용을 실행한다.

    script language 의 역사

    어떤 지시를 담은 스크립트가 다양한 언어로 존재할 수 있듯이, 컴퓨터영역에서의 script 역시 다양한 언어로 씌여질 수 있다. 최초의 script language 는 shell(:12)로써 1960년경 time-shareing 시스템을 제어하기 위한 목적으로 사용되었다. shell은 연속된 명령어들로 만들어져 있으며, 차례차례 명령들이 실행될 수 있도록 되어 있었다. 일종의 간단한 매크로라고 볼 수 있었다.

    그 후 처리해야될 정보의 양이 늘어나자 Tcl, Lua(:12), Perl(:12)과 같은 script language 들이 개발되었고, internet(:12)이 일반화 되면서 http(:12)를 이용해서 전송된 정보를 처리하기 위한 PHP(:12), ASP(:12)와 같은 스크립트언어가 개발 되었다. PHP와 ASP는 서버측에서 실행이 되었기 때문에 server-side script language라고 부른다. 이와 반대로 client측 즉 브라우저에서 실행되는 ECMAScript(Javascript 라고 더 잘알려진), CSS(:12), HTML(:12)등이 개발되게 되었다.

    script language 의 종류

    Job controll language and shells

    script language가 가장 널리 사용되는 영역은 Job controll분야일 것이다. 이것은 작업의 수행과 관련된 시스템:::프로그램(:12)들을 제어하는데 주로 사용된다. 가장 널리 사용되는 Job controll언어는 Unix shell일 것이다. 이외에도 MS-DOS의 COMMAND.COM, AppleScript와 같은 언어가 있다. 이들 스크립트 언어들은 command-line(명령어라인)을 통해서 명령을 내리는 command-line interface 환경에서 널리 사용된다.

    GUI Scripting

    command-line interface는 강력하긴 하지만 스크립트의 작성자가 명령어를 외어서 직접 입력해야 했다. 이는 배우고 사용하는데 많은 시간이 걸릴 수 있음을 의미한다. 그래서 graphical user interface 를 가지는 script 언어가 만들어졌다. 이들 언어를 이용하면 아이콘과 메뉴 그리고 마우스를 이용해서 필요한 프로그램을 작성할 수 있다.

    이러한 스크립트 언어를 이용하면 좀더 쉽게 프로그램을 만들 수 있지만 범용적으로 사용하기엔 어려움이 있다.

    Application-specific language

    특정 응용 프로그램에서만 사용하는 언어다. 어떤 응용 프로그램은 프로그램의 기능을 일반유저가 확장시킬 수 있도록 하기 위해서 프로그램이 전용의 script language를 내장한다. 예를들어 Quake 같은 경우에는 QuakeC와 같은 언어를 제공해서 유저가 직접 레벨을 디자인할 수 있게끔 하고 있다.

    웹 브라우저

    웹 브라우저(:12)는 Javascript(:12), CSS(:12), HTML(:12)를 해석하기 위한 스크립트 해석 엔진을 가지고 있다. 이들 스크립트 언어는 클라이언트 브라우저에서 해석되기 때문에, client-side script language 라고 하기도 한다.

    웹 서버

    웹 브라우저를 이용한 사용자의 입력을 처리하기 위해서 PHP(:12), ASP(:12)와 같은 서버측 스크립트언어도 있다. 서버측에서 실행되기 때문에 server-side script language 라고 부르기도 한다.

    text processing laguage

    많은 데이터들이 text 기반으로 작성이 된다. 직관적이여서 읽고쓰기가 수월하기 때문이다. 이런 텍스트기반 데이터는 별도의 처리과정을 거쳐야 한다. 많은 애플리케이션이 데이터나 로그를 text기반으로 저장하기 때문에 시스템엔지니어나 프로그래머에게 있어서 text processing을 쉽게할 수 있는 언어는 매우 중요한 도구가 된다.

    Unix에는 AWK(:12), sed(:12), grep(:12)와 같은 도구 - 스크립트와 도구와의 경계가 명확하지 않아서 도구라고 했음에 유의하자 -가 그것들이다. 이들은 정규표현(:12)을 이용해서 줄단위로 텍스트를 처리한다.

    위의 툴들은 언어와 도구의 중간쯤에 있다. 본격적인 script language 라고 보기에는 좀 애매모호한 측면이 있다. text 처리를 위한 본격적인 script라면 perl(:12) 언어가 대표적이다. 현재 perl은 범용 개발언어로 사용되고 있지만 텍스트처리를 잘 하기 위한 용도로 최초에 개발되었다.

    참고