스크립트 언어 (스크립트 언어, 영어 : scripting language )는 응용 프로그램 소프트웨어 의 동작 내용을 대본 ( script )과 같이 기술하고 제어하기위한 간이적인 프로그래밍 언어 이다.

목차

  [ 숨기기 ] 

개요 편집 ]

위의 의미보다 더 변하고 비교적 간단한 프로그램 을 작성하기위한 간이적인 프로그래밍 언어 전반을 말한다. 변수 형태를 붙이지 않으면 같은 동적 타이핑 언어를 스크립트 언어라고 부르는 정의도있다. 그러나 엄격한 정의 내지 구별은 존재하지 않는다. 인터프리터 방식을 채용하고있는 것이 많지만, JavaScript 와 Lua 등 JIT 컴파일러 를 처리 계에 탑재하고있는 것이 증가하고있다.

전자 (응용 소프트웨어의 동작 내용을 대본과 같이 기술하고 제어하기위한 프로그래밍 언어) 예를 들어, UNIX 의  대한 쉘 스크립트 , Emacs 에 대한 LISP , Web 브라우저 등에 대한 JavaScript 들 수있을 것이다.

후자 (전환 의미가 지정된 비교적 간단한 프로그램을 작성하기위한 프로그래밍 언어 일반)의 예로 Perl 및 PHP 들 수있다. Perl은 그 초기에는 텍스트 처리 도구의 동작을 설명하는 전자의 의미가 강했지만 최근에는 주로 CGI 를 이용하여 동적 웹 사이트 ( 게시판 )을 구축하기위한 프로그래밍 언어 로 후자의 의미 측면에서 발전했다고 할 수있다.

또한 매우 드물게 동안 특정 소프트웨어를 구현하기 위해 사용한 프로그래밍 언어는 것을, 스크립트 언어 라고 부르는 경우가 있으므로 주의해야한다. 이런 의미에서 "기술 언어"라고 부르는 것이 바람직하다. 예를 들어, UNIX 설명 언어는 C 언어 하다고 할 수있다.

다음과 같은 정의도있을 수있다. 있는 전체 프로그램 빌드를 다시 시작하지 않고있는 기능을 추가하는 것이 가능하기 위해 사용하는 언어 것. 예를 들어 Emacs에 새로운 기능을 부가하기 위하여 준비되는 것이 Emacs Lisp 으로 HTTP 서버 기능을 부가하기 위하여 생각된 것이 SSI 와 PHP이다. 이들은 많은 경우 인터프리터 방식으로 동작하지만, Emacs의 경우처럼 컴파일하여 고속으로 동작시키는기구를 가지고있는 것도있다.

스크립트 언어라는 이름은 몇 가지 기본 기능을 순서로 새로운 기능을 정의하는 것만으로도 충분히 도움이 될에서 "대본 작성"라는 의미로 붙여진 것이다. 하지만 단순한 동작을 기술하는 것만이 아니다. 많은 스크립트 언어가 충분히 복잡한 동작을 기술할 수 있도록 프로그래밍 언어로 데이터 구조 기술, 제어 구조 기술 능력을 갖추고있다.

역사 편집 ]

세계 최초의 대화형  은 시분할 시스템 의 원격 조작을 위해 1960 년대에 개발되었다. 그리고 운영자가 동일한 명령 열을 터미널 키보드에서 여러 번 박는 수고를 덜기 위해 스크립팅 수요가 생겨나고, 간단한 매크로 명령이나 명령 문자열을 저장할 파일을 사용하는 방식이 개발되었다. 이것이 궁극적으로 쉘 스크립트 의 개발로 이어졌다. 또한 크고 복잡한 응용 프로그램 개발에서 인간이 개입하지 않고 일괄 처리 모드 의 조작을 용이하게하기 위해 아주 기본적인 내장 스크립트 기능이 개발되었다. 즉, 프로그램의 일부로 사용자가 작성한 명령어 라인을 해석하는 기능을 갖추게했다. 이 경우 명령 라인은 매우 구체적인 언어로 작성된 프로그램의 프로그램을 포함 같은 것이었다.

역사적으로, C 언어 와 같은 고속 프로그래밍 언어와 Bourne Shell 과 AWK 로 작성된 느린 스크립트는 분명히 성능에 차이가 있었다. 그러나 기술의 진보에 따라 성능 차이는 줄어들어, Java 또는 LISP , Perl , Python 과 같은 인터프리터 언어가 범용 프로그래밍 언어로 널리 사용되게되어 갔다.

Tcl 과 Lua 같은 언어는 일반 스크립트 언어로 설계되었으며 응용 프로그램에 포함 형태로 사용할 수도 있고 단독으로 사용할 수도있다. Visual Basic for Applications (VBA)와 같은 시스템은 기본 시스템 자동화기구와 강하게 연결되어있다. 어플 리케이션마다 새로운 언어를 개발하지 않고 범용 스크립트 언어를 포함 것은 분명한 장점이있다. 개발자가 언어를 해석하는 기능을 처음부터 개발하는 수고를 줄이고, 사용자는 기존의 언어를 사용할 수 있으므로 학습이 간소화.

Common Gateway Interface (CGI)는 Web 서버 스크립트 언어로 제어하는 것을 가능하게한다. 일찍부터 CGI용으로 사용 스크립트 언어로, Perl, ASP , PHP 등이있다.

소프트웨어에 따라서는 여러 가지 스크립트 언어를 지원하고있다. 최근 웹 브라우저 는 브라우저 자체를 확장할 수있는 언어가 브라우저 제어를위한 표준 포함된 언어로 ECMAScript ( JavaScript )과 CSS 와 HTML 이있다.

스크립트 언어의 종류 편집 ]

작업 제어 언어와 쉘 편집 ]

스크립트 언어의 종류는 작업 제어 자동화에서 만들어진 것으로, 시스템 프로그램 시작 및 제어한다. 그런 의미에서 쉘 조상으로 IBM의 Job Control Language (JCL)이 있다고 할 수있다. 이런 종류의 언어 처리 계 ( 인터프리터 )의 대부분은 UNIX 의  및 MS-DOS의 COMMAND.COM 같은 명령줄 인터프리터 라는 것이다. 이외에도 영어와 같은 명령으로 스크립트를 작성할 수 AppleScript 등도있다. Mac OS X 에서 Cocoa 와 AppleScript 를 사용하여 전체 응용 프로그램을 구축할 수있다.

GUI 스크립트 편집 ]

GUI 의 출현으로 컴퓨터 제어를위한 특별한 스크립트 언어도 만들어졌다. 그것은 창, 메뉴, 버튼 등의 시스템이 생성한 것으로 교환하는 언어이며, 인간의 손이하는 것을 시뮬레이션한다. 이 언어는 사용자가 수행하는 자동화 표준화하는 것으로, 일반적으로매크로 언어 등으로 불린다.

원칙적으로 GUI 기반 컴퓨터에서 실행되는 모든 응용 프로그램을 제어할 수 있으나 일반적으로 특정 응용 프로그램이나 운영 체제 에 대응하여 매크로 언어가 존재한다. 그러나 일부는 화면의 픽셀 위치에서 그래픽 개체를 인식하여 작업하는 언어도, 그 경우는 OS 및 응용 프로그램에 의존하지 않고 동작 가능하다.

응용 프로그램 전용 언어 편집 ]

대규모 응용 프로그램의 대부분은 특정 스크립트 언어를 제공하여 응용 프로그램 사용자가 필요에 따라 그것을 쓴다. 마찬가지로 컴퓨터 게임 시스템의 많은 특정 스크립트 언어가 있고 NPC 의 행동이나 환경의 프로그래밍에 사용되고있다. 이러한 언어는 하나의 응용 프로그램만을 위해 설계되고있다. 겉으로는 특정 범용 언어와 비슷한 것도 있지만 (예 : Quake 는 C 언어로 닮은 QuakeC가) 일반 언어에는없는 독특한 기능을 가지고있는 경우가 많다. Emacs Lisp 기능을 갖춘 LISP 언어의 방언이지만, Emacs의 기능 개선 사항 또는 변경에 편리한 특징을 많이 갖추고있다. 응용 프로그램 전용 스크립트 언어는 특정 애플 리케이션에 특화된 도메인 특정 언어 라고 볼 수도있다.

Web 브라우저 편집 ]

Web 브라우저는 웹 페이지를 표시하는 어플 리케이션이다. 해당 작업을 제어하기위한 전용 언어가 개발되어왔다. 예를 들어, JavaScript , 마이크로 소프트 의 VBScript ( Internet Explorer 에서만 작동), Mozilla 프로젝트의 XUL ( Firefox 에서만 작동), XML 컨텐츠를 새로운 형식으로 변환하여 표시하는 XSLT 등이있다. 사용자의 인상을 좋게하고 반응을 이끌어 내기 위하여 XML과 JavaScript의 조합을 이용한 기법이 널리 사용되게되어, Ajax 라는 이름까지 붙일 수있게되어있다.

Web 서버 편집 ]

HTTP 연결에서 서버 측면에서 애플 리케이션 서버 와 CMS 과 같은 동적 콘텐츠 서버에서도 다양한 스크립팅 기법을 활용하고있다. 이 영역에서 자주 사용되는 것은, PHP , JSP , ASP 등이지만 이외에도 Ruby on Rails 등이 일부에서 인기를 얻고있다.

텍스트 처리 언어 편집 ]

텍스트 처리는 옛부터있는 스크립트 언어의 용도 중 하나이다. UNIX 도구이다 AWK , sed , grep 을 위해 작성된 스크립트는 텍스트 형식의 설정 파일과 로그 파일에 대한 처리를 자동화하는 데 사용 해왔다. 이 분야에서는 정규식 이 중요하다. 텍스트 처리 스크립트 언어에서 정규식을 사용하여 처리중인 구조 형식으로 표현한다.

Perl 은 원래 텍스트 처리 도구의 한계를 초과하는 것을 목적으로 개발되었지만, 현재는보다 범용적인 언어로 성장하고있다.

일반 동적 언어 편집 ]

Perl과 같은 언어는 스크립트 언어로 태어 났지만, 더 넓은 용도로 사용할 프로그래밍 언어로 성장 해 갔다. Perl과 비슷한 언어로 실행되는 동안 해석되어 메모리 관리 기능을 제공, 동적 언어는 각각 서로 비슷하다에서 "스크립트 언어"라고 불리는 경우도있다. 그러나 실제로는 응용 프로그램 자체를 설명하는 데 사용될 수 많은 언어도있다. 일반적으로, 그들의 언어 저자 스스로 "스크립트 언어"라고 부르는 것은 아니다.

확장 / 내장 언어 편집 ]

응용 프로그램 전용 스크립트 언어의 대안으로 응용 프로그램에埋め込める언어는 지금까지 여러 설계된왔다. (C 언어 등을 주로 사용) 어플 리케이션 프로그래머가 응용 프로그램을 제어하기 위해 스크립트 언어 "훅"프로그램 제작 넣는다. 그런 언어는 애플 리케이션 전용의 확장 언어와 같은 용도로 사용되지만 다른 응용 프로그램 및 스크립트에 대한 기술을 공유할 수있다는 이점이있다. JavaScript는 웹 브라우저 의 스크립트 언어로 태어나 지금도 그 용도가 대부분이지만, ECMAScript 로 표준화된 것으로, 일반 내장 용 언어로 퍼졌다. 특히 Mozilla 에서 구현한 SpiderMonkey 는 Yahoo! Widget Engine 등 여러 가지 환경에 포함되어있다. ECMAScript 구현 (처리계)을 포함하는 다른 예로는 어도비 제품인 Adobe Flash ( ActionScript )과 Adobe Acrobat ( PDF 파일 스크립팅)가있다.

Tcl 확장 언어로 태어 났지만, Python , Perl , Ruby 등과 같이 범용 언어로 사용되는 경우가 많다.

복잡하고 용도가 제한된 응용 프로그램은 일반 사용자 인터페이스에서 제공할 수있는 기능과는 별도로 내장 프로그래밍 언어를 갖춘 사용자에게 더 많은 제어 수단을 제공하고있다. 예를 들어 3D 제작 도구 Maya 는 MEL이라는 스크립트 언어를 내장하고있다. 또한 Blender 는 그 용도에 Python 을 채용하고있다.

기능을 자주 추가하거나, 다양한 시도는 실행해보 경우 (예 : 게임 엔진 )도 내장 언어를 사용하고있다. 개발중인 프로토 타입 에 위력을 발휘하고 프로그램의 핵심 부분을 몰라도 응용 프로그램 기능을 만질 수있다. 이 용도의 스크립트 언어로서, Lua 와Python 가 유명하지만, 그 밖에도 AngelScript 및 Squirrel 등이있다.

다른 스크립트 언어 편집 ]

시장 분석 편집 ]

2008 년 현재 가장 널리 사용되는 스크립트 언어는 JavaScript 이다. 2 위는 PHP , 3 위는 Perl 하지만 북미에서는 Perl의 인기가 매우 높은 [1] .

각주 · 출전 편집 ]

도움말 ]

관련 항목 편집 ]

외부 링크 편집 ]


==========================================================================================

스크립트 언어(scripting language)란 컴퓨터 프로그래밍 언어로서 응용 소프트웨어를 제어한다. 스크립트 프로그래밍 언어라고도 한다. 스크립트 언어는 응용프로그램과 독립하여 사용되고 일반적으로 응용프로그램의 언어와 다른 언어로 사용되어 최종사용자가 응용프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해준다. 스크립트(scripts)는 연극 용어인 스크립트에서 유래되었으며 초창기 스크립트 언어는 배치언어(batch languages) 또는 작업 제어 언어(job control language)라고도 불리었다.

[편집]역사

최초의 인터액티브 셸(interacive shell)은 시분할 시스템의 동작을 원격 제어하기 위해 1960년에 개발되었다.

[편집]대표적인 스크립트 언어

[편집]함께 보기




'Development > Common' 카테고리의 다른 글

엔터의 의미, CR LF  (0) 2012.02.18
참조 구현(Reference Implementation)  (0) 2012.02.09
ActionScript  (0) 2012.01.23
JIT 컴파일  (0) 2012.01.23
문자 집합(Character Set) 및 문자 인코딩  (0) 2012.01.19
Posted by linuxism
,