문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 스크립트 언어 (문서 편집) [include(틀:다른 뜻1, from=스크립트, other1=해당 단어의 본래 뜻, rd1=대본, other2=마인크래프트의 플러그인, rd2=Skript)] [목차] == 설명 == [[프로그래밍 언어]]의 한 종류로, 기존에 이미 존재하는 소프트웨어(애플리케이션)를 제어하기 위한 용도로 쓰이는 언어이다. 일반적인 응용 소프트웨어는 [[컴파일러]]를 사용하는 언어에 의해 기계어로 번역된 채로 실행되기 때문에, 수정이 빈번하게 발생하면 수정 후 일일이 컴파일을 다시 해야 한다. 덩치가 큰 프로그램은 컴파일 시간도 몇 시간 단위로 잡아먹는 일이 많은데다, 일일이 컴파일을 다시 하는 것도 상당히 귀찮은 작업이다. 이 때문에 수정이 빈번하게 발생하는 부분은 소스코드를 한줄 한줄 읽어 바로바로 실행하는 [[인터프리터]] 방식이 상당히 유리하다. 스크립트 언어는 이런 부분에 사용하기 위해 나온 것으로, 응용 소프트웨어에서 스크립트 언어에 맞는 [[API]]를 제공, 응용 소프트웨어와 상호작용하면서 돌아가게 된다. 인터프리터 언어와 헷갈리는 사람이 있는데 인터프리터 언어는 [[인터프리터]] 방식을 사용하는 언어를 뜻하고 스크립트 언어는 앞서 말했듯이 이미 존재하는 소프트웨어를 제어하기 위한 용도로 쓰이는 언어이다. 단지 스크립트 언어 용도상 [[인터프리터]] 방식이 유용하기 때문에 스크립트 언어 대부분이 [[인터프리터]] 방식을 쓰는 인터프리터 언어일 뿐. 사실 엄밀하게 잘 정의된 용어는 아니고 편의를 위해 사용하는 명칭이기도 하다. 프로그래밍 언어인데 그 용도가 주로 운영체제 위에서 움직이는 새로운 프로그램을 만드는 것보다는, 기존에 존재하는 어떤 다른 프로그램들을 제어하기 위해 쓰이며 그 기존의 프로그램들 위에서 구동이 지원되는 언어들을 스크립트 언어라고 부르기로 한 것이다. 웹 브라우저에서 구동이 지원되는 자바스크립트나, 플래시를 제어하기 위해 플래시에서 구동이 지원되는 액션 스크립트 등이 대표적인 스크립트 언어다. 정의가 애매한 단어이기에 독립적인 프로그램의 개발에 사용되더라도 PC에 미리 설치해둔 [[자바 가상 머신]]에서 돌아가는 [[Java]], 마찬가지로 PC에 미리 설치해둔 해석기 위에서만 돌아가는 [[Python]]이나 [[Ruby]] 같은 인터프리터 언어들은 그 자체만으로 스크립트 언어라고 부를지 말지 논란이 일기도 한다. [* 다만 앞서 서술했다시피 저러한 인터프리터 언어들은 구조상 다른 프로그램들에서 스크립트 언어로 사용되기 편리하므로 많은 애플리케이션들에서 스크립트 언어로 사용된다.] 위에서 스크립트 언어로써 언급된 [[JavaScript]]를 봐도 웹 환경이 고도화, 표준화되고 [[Node.js]] 런타임이나 [[The Chromium Projects|Electron]] 등이 등장함에 따라 그 자체만으로도 독립적인 프로그램 개발에 사용될 수 있도록 발전한지라 이를 단순히 웹 브라우저용 제어 언어라고만 정의할 수가 없게 되었다. 더 나아가 [[TypeScript]]나 [[CoffeeScript]]처럼 '''컴파일''' 결과물로 기계어가 아닌 JavaScript를 출력해서 동작하는 언어까지 등장한 상황. 결론적으로 초창기 ~~프로그래밍 언어론 교과서가 쓰였던~~ 시절과는 달리 프로그래밍 언어들이 고도로 발달하고 높은 수준의 추상화가 진행됨에 따라 단순하게 어떤 언어와 그 언어가 동작하는 런타임을 뭉뚱그려서 '이 언어는 XX형 언어이다'라는 식으로 정의하는 것 자체가 무의미해져가는 추세에 있다. == 컴파일 언어와 다른 점 == * 컴파일 과정을 거치지 않고 실시간으로 텍스트를 분석하며 실행된다. (일부 간단한 컴파일을 지원하는 스크립트 언어도 있다) * 코드에 문법 오류가 있으면 실행 시점에서 발견된다. (근래에는 실행 전 파싱 단계에서 발견되는 경우가 많다.) * 컴파일 언어보다 단순하고 쉬운 문법을 사용하는 경우가 많다. * 바이너리 컴파일된 언어는 목표로 한 운영체제에서만 실행할 수 있으나, 스크립트 언어로 된 코드는 [[크로스 플랫폼|스크립트 엔진이 포팅되어 있는 모든 운영체제에서 실행할 수 있다]]. * 컴파일 언어보다 실행 속도가 느리다. (그런데 최근에는[[JIT]] 컴파일 기술의 도입으로 실행속도가 크게 개선된 언어도 있다. [[JavaScript]],[[PHP]], [[ActionScript]]가 대표적.) * 단일 응용프로그램으로 사용되기보다는 응용프로그램 내에서 특정 역할을 수행하는 경우가 많다. == 대표적인 언어 == * [[JavaScript]] * [[TypeScript]] * [[ActionScript]] * [[AutoHotKey]][* 프로그래밍 언어로 안 보는 사람들이 있지만, '''스크립트 언어'''이다. 하지만 오토핫키를 한다고 프로그래머 취급을 받지는 않는다.] * [[JSP]] * [[Perl]] * [[PHP]] * [[Python]] * [[Lua]] * [[Ruby]] * [[VBS]][* [[비주얼 베이직]]을 기반으로 [[마이크로소프트]]에서 만들어진 스크립트 언어이다. [[VBA]] 등에 사용되며 확장자는 vbs.] * [[셸 스크립트]][* [[Bash]], [[Csh]] 등] [[분류:스크립트 언어]]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기