입력기 또는 입력 방식 편집기(input method editor, IME)는 한글한자처럼 컴퓨터 자판에 있는 글쇠보다 수가 더 많은 문자를 계산하거나 조합하여 입력해 주는 시스템 소프트웨어이다.

원래는 윈도에서 사용하던 인터페이스에서 유래했고, 한·중·일 윈도에서만 지원했으나, 현재는 일반화되어서 임의의 환경에서 임의의 문자를 입력하는 것을 도와 주는 소프트웨어를 가리키기도 한다. 예를 들어 보통 라틴 문자에 발음 구별 기호를 덧붙일 수 있도록 하는 프로그램도 입력기에 속한다.

목차

  [숨기기

[편집]마이크로소프트 윈도

마이크로소프트 윈도의 IME는 기본적으로 운영 체제 차원에서 낮은 수준으로 동작하는 프로그램이다. (다만 16비트 윈도의 경우 별도의 응용 프로그램으로 동작했다.) 기본적으로 IME 프로그램은 IME 함수 및 메시지 인터페이스를 통해 입력 과정을 수행하는 DLL이다. 낮은 수준으로 동작하는 특성상 IME 개발은 쉽지 않으며, 예를 들어 한·중·일 중 가장 간단한 편인 한글 입력기의 경우 사실상 기본으로 제공되는 MS 한글 IME 이외에 많이 사용되는 입력기가 없다.

글로벌 IME는 IME가 내장돼 있지 않은 외국어 윈도, 특히 9x 계열에서 한·중·일 문자를 입력할 수 있게 하기 위해 마이크로소프트가 임시로 도입한 프로그램이며, IME와는 달리 높은 수준에서 동작하는 응용 프로그램이다. 마이크로소프트 오피스 2000을 비롯해 몇몇 소프트웨어가 이 프로그램을 지원했지만, 소프트웨어에서 별도로 지원해야 하며 사용하기 힘들어 널리 쓰이지는 못했다.

고급 텍스트 서비스(Text Service Framework, TSF)는 윈도 XP부터 지원되는 컴포넌트 오브젝트 모델(COM) 기반의 새로운 입력기 인터페이스로, 이전의 IME를 대체한다. 고급 텍스트 서비스는 현재 편집 중인 모든 텍스트를 접근하고 처리할 수 있으며, 따라서 IME보다 자유도가 넓다. 대표적으로 마이크로소프트 오피스 10.0(2002/XP)에서 지원하는 입력기가 TSF 기반이며, 이러한 각각의 입력기들을 텍스트 입력 처리기(Text Input Processor, TIP)라 부른다.

[편집]유닉스 계열

X 윈도 시스템은 입력 방법(input method)이라는 이름으로 입력기를 지원한다. X11에서 기본으로 제공하는 구현은 XIM(X input method)이라 불리지만, 그 외에도 GTK+나 Qt 등에서 지원하는 입력 방법 모듈(input method module, immodule)을 사용하는 경우도 있다.

SCIM은 X 윈도의 입력 방법보다 높은 수준의 입력기 라이브러리로, 실제로 처리되는 방법과는 별개로 추상화된 C++ 입력기 인터페이스를 지원한다. 또한 SCIM은 GTK+나 Qt 등의 입력 방법 모듈로 동작할 수도 있다.

[편집]맥 OS X

맥 오에스 텐에서 기본으로 제공되는 입력기는 로마자 계열 언어의 입력기나 일본어 입력기에서는 편리한 부가 기능을 가지고 있다. 그러나 상대적으로 한글 입력기는 기본적인 기능만을 제공하고 있으며, 이를 보완하기 위해 하늘 입력기나 바람 입력기같은 텍스트 서비스 관리자가 오픈소스로 개발되어 있다.

[편집]같이 읽기

[편집]바깥 고리



==============================================================================================]

ctfmon.exe 이 파일의 정체는?

1. 요약 : 윈도우의 정식 프로세스가 아니며 MS 오피스 XP부터 도입된 고급 텍스트 서비스로

          한글 입력외에 필기입력, 음성인식과 같이 보다 향상된 입력 방법을 제공한다 

          필수 프로세스가 아니므로 사용자의 필요에 따라 제거할 수 있다.

          하지만, 위에 언급한 정상적인 경우 이외에도 일부 트로이목마가 해당

          파일을 생성하는 경우도 있다.

2. 정상적인 ctfmon.exe 파일과 제거 요령 : [내용보기]

 - 위치 : %시스템%ctfmon.exe (%시스템% 이란? : 클릭)

3. 악성코드 감염에 의한 ctfmon.exe 파일

 - 감염시 위험도 : 보통

 - 감염 위치 : 가변적 %윈도우% 또는 %시스템%, %Program Files% 등

3.1. ctfmon.exe 파일을 생성하거나 다운로드 하는 악성코드들 

 - cure.exe 와 W32/Sobarbo 정보 : [보기] (07/11/14) (New)

 - [autorun.inf] 와 W32/Autorun-G 정보 : [보기] (07/10/25)

 - ctfmon.exe, ver32.dll 와 BackDoor-DIW 정보 : [내용보기]

 - ctfmon.exe 와 Spyware.TotalSpy 정보 : [내용보기]

 - divx5.dll 와 트로이목마 Viran-B 정보 : [내용보기]

 - ctfmon.exe 와 W32/Snow.a 바이러스 정보 : [내용보기]

4. 위험도가 높은 또 다른 파일 정보

  [csrss.exe], [iexplore.exe], [rundll32.exe], [spoolsv.exe], [ svchost.exe], [기타]

5. 본 문서의 이용에 관한 조건 : [내용보기]


출처 - http://nologout.blog.me/26385724

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

작업관리자 ctfmon.exe의 정체는?


 작업관리자를 띄우면 ( Ctrl + Alt + Del  or  Ctrl + Shift + ESC ) ctfmon.exe라는 프로세스를 볼 수 있습니다. 이 녀석은 시작 프로그램에도 등록이 되어 있어서 시스템 시작시에 실행이 됩니다. ctfmon.exe를 시작 프로그램 목록에서 체크를 해제 하여도 다음 시스템 가동시에는 어김없이 설정이 되어 있습니다.

ctfmon.exe

msconfig로 본 시작 프로그램




* ctfmon.exe 은 무엇인가?

 ctfmon.exe 프로세스는 마이크로 소프트 오피스 패키지에 포함된 프로스세입니다. 이 프로세스는 Alternative User Input Text Input Processor ( TIP )와 마이크로소프트 오피스 XP 랭귀지 바 ( Microsoft Office XP Language Bar )를 활성화 시킵니다. 이 프로그램은 시스템에 필수적인 요소는 아니기 때문에 필요 없으신 분들은 제거 하셔도 됩니다. 하지만 ctfmon.exe를 제거 하시면 Microsoft Office 패키지가 정상적으로 작동하지 않을 수 있으므로 제거 하지 않으시는것을 추천합니다.

ctfmon.exe

ctfmon.exe 가 실행시키는 랭귀지바



* ctfmon.exe가 트로이안 바이러스라고?

 네, 동일한 이름의 트로이안 바이러스가 존재합니다. 만일 ctfmon.exe라는 프로세스가 두개 이상 로드가 되어 있거나 컴퓨터에 이상이 있다면 바이러스 스캐닝 프로그램을 이용하여 검사를 해보시기 바랍니다. 이 트로이안 바이러스는 여러분이 웹 브라우져로 인터넷을 돌아다닐때 로그인 정보와 패스워드 등을 가로 챌 수도 있으며, 특히 인터넷 뱅킹을 할 때에는 더욱더 위험합니다.


* ctfmon.exe의 짝퉁

 제가 어디선가 본 짝퉁 시리즈에는 T와 F의 소문자가 쉽게 구별하기 힘들다는 단점을 이용한 이름 짝퉁이 있었습니다. 즉, cttmon.exe나 cffmon.exe 같은 녀석들이 바로 그런 녀석들이죠. 또 ctmon.exe나 cfmon.exe와 같이 좀 허전한 녀석들도 있구요. 여기서 말하는 진짜는 ctfmon.exe 뿐이며, 이름마져도 같은 바이러스도 있기 때문에 의심이 가시면 안티 바이러스 프로그램으로 스캔해보시는게 좋습니다.


* ctfmon.exe 제거 하기

 "ctfmon.exe 따위 필요없어, 메모리가 아깝다." 라고 하시는 분들과 IE( Microsoft Internet Explorer )를 이용하여 입력을 할 때 가끔 한영 전환이 안되시는 분들을 위해서 ctfmon.exe를 제거하는 방법을 알려드리겠습니다. 일단 이 ctfmon.exe라는 녀석은 msconfig나 알약같은 프로그램을 이용해서 시작 프로그램에서 제외를 하여도 귀신같이 살아나서 실행되는 프로세스이기 때문에 몇가지 파일을 지워야 합니다.

 1. 현재 실행중인 모든 응용프로그램들을 종료 합니다.

 2. 작업관리자를 켜서 현재 실행 중인 ctfmon.exe를 강제 종료합니다. ( 작업관리자는 Ctrl + Alt + Del 이나 Ctrl + Shift + ESC를 누르시면 켜실 수 있습니다. )



3.  이제 msimtf.dll과  msctf.dll을 삭제 합니다. msimtf.dll -> msctf.dll 순으로 삭제해야 합니다. [시작]->[실행]( 혹은 윈도우키 + R )을 클릭하셔서 아리와 같이 차례대로 입력을 합니다.




4. [시작]->[실행]을 클릭하시고 msconfig를 입력하시고 확인 버튼을 누릅니다. 시작프로그램 탭에서 ctfmon.exe 를 체크 해제 하시고 확인을 누른후 재부팅 해줍니다.

5. 재부팅 후 ctfmon.exe라는 프로세스가 실행되고 있지 않으면 제거가 성공한 것입니다.



ctfmon.exe는 동일 이름의 트로이안 바이러스도 있기 때문에 유의 해야 합니다. ctfmon.exe는 큰 문제는 없지만 쓸모도 없는 프로세스라는 평이 있습니다. 오히려 장점보다는 단점이 많다는 얘긴데, 가끔 다름 프로그램과 충돌을 하기도 한다더군요. 이상이 없으신 분들이라면 제거하지 않으시고 가만히 두셔도 무방하지만 자꾸 충돌과 같은 문제를 일으킨다면 제거 하셔서 원활한 컴퓨터 사용을 도모하셔야 할 것입니다.

 그래도 원활한 사용이 어려우시다면 백신을 이용해서 PC를 검사해 보시기 바랍니다. 


출처 -  http://www.plusblog.co.kr/23 






'기타' 카테고리의 다른 글

워드에서 티스토리 글 작성  (0) 2012.03.11
여의도맛집 본가참치  (0) 2012.03.08
2012년 정보처리기사 시험일정  (0) 2011.12.14
WAP  (0) 2011.11.25
데이타 단위  (0) 2011.11.23
Posted by linuxism
,

Apache Tomcat

Web/WAS 2012. 2. 5. 12:14

Apache Tomcat (or Jakarta Tomcat or simply Tomcat) is an open source web server and servlet containerdeveloped by the Apache Software Foundation (ASF). Tomcat implements the Java Servlet and the JavaServer Pages (JSP) specifications from Oracle Corporation, and provides a "pure JavaHTTP web server environment forJava code to run.

Tomcat should not be confused with the Apache web server, which is a C implementation of an HTTP web server; these two web servers are not bundled together, although they are frequently used together as part of a serverapplication stack. Apache Tomcat includes tools for configuration and management, but can also be configured by editing XML configuration files.

Contents

  [hide

[edit]Components

Tomcat4.x was released with Catalina ( servlet container), Coyote (an HTTP connector) and Jasper (a JSP engine).

[edit]Catalina

Catalina is Tomcat's servlet container. Catalina implements Sun Microsystems' specifications for servlet and JavaServer Pages (JSP). In Tomcat, a Realm element represents a "database" of usernames, passwords, and roles (similar to Unix groups) assigned to those users. Different implementations of Realm allow Catalina to be integrated into environments where such authentication information is already being created and maintained, and then utilize that information to implement Container Managed Security as described in the Servlet Specification.To implement the Java based applications HTTP webserver..[2]

[edit]Coyote

Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1 protocol for the web server or application container. Coyote listens for incoming connections on a specific TCP port on the server and forwards the request to the Tomcat Engine to process the request and send back a response to the requesting client.

[edit]Jasper

Jasper is Tomcat's JSP Engine. Tomcat 5.x uses Jasper 2, which is an implementation of the Sun Microsystems's JavaServer Pages 2.0 specification. Jasper parses JSP files to compile them into Java code as servlets (that can be handled by Catalina). At runtime, Jasper detects changes to JSP files and recompiles them.

[edit]Jasper 2

From Jasper to Jasper 2, important features were added:

  • JSP Tag library pooling - Each tag markup in JSP file is handled by a tag handler class. Tag handler class objects can be pooled and reused in the whole JSP servlet.
  • Background JSP compilation - While recompiling modified JSP Java code, the older version is still available for server requests. The older JSP servlet is deleted once the new JSP servlet has finished being recompiled.
  • Recompile JSP when included page changes - Pages can be inserted and included into a JSP at runtime. The JSP will not only be recompiled with JSP file changes but also with included page changes.
  • JDT Java compiler - Jasper 2 can use the Eclipse JDT (Java Development Tools) Java compiler instead of Ant and javac.

[edit]Features

Tomcat 7.x implements the Servlet 3.0 and JSP 2.2 specifications.[3] It requires Java version 1.6, although previous versions have run on Java 1.1 through 1.5. Versions 5 through 6 saw improvements in garbage collection, JSP parsing, performance and scalability. Native wrappers, known as "Tomcat Native", are available for Microsoft Windows and Unix for platform integration.

[edit]Deployment

Experienced users can build and install Tomcat manually from source code after installing such dependencies as the Java Development Kit and the Apache Ant build tool.

Depending on the usage requirements, Tomcat may either be deployed as a standalone pure-Java web server or as a component in a more complex configuration in which it serves as a back-end which handles requests passed to it from a general purpose web server such as Apache, using a connector such as mod_jk supplied by the Apache Tomcat team, or mod_proxy an optional module for the Apache HTTP Server supplied by the Apache HTTP Server team.

[edit]History

Tomcat started off as a servlet reference implementation by James Duncan Davidson, a software architect at Sun Microsystems. He later helped make the project open source and played a key role in its donation by Sun to the Apache Software Foundation. The Apache Ant software build automation tool was developed as a side-effect of the creation of Tomcat as an open source project.

Davidson had initially hoped that the project would become open sourced and, since many open source projects had O'Reilly books associated with them featuring an animal on the cover, he wanted to name the project after an animal. He came up with Tomcat since he reasoned the animal represented something that could fend for itself. Although the tomcat was already in use for another O'Reilly title, his wish to see an animal cover eventually came true when O'Reilly published their Tomcat book with a snow leopard on the cover.[4]

[edit]Releases

VersionRelease DateDescription
Apache Tomcat versions
3.0.x. (initial release) 1999 Merger of donated Sun Java Web Server code and ASF and Implements Servlet 2.2 and JSP 1.1 specifications.
3.3.2 2004-03-09 Latest 3.x release.
4.1.31 2004-10-11
4.1.36 2008-03-24
4.1.39 2008-12-03
4.1.40 2009-06-25 Latest 4.x release.
5.0.0 2002-10-09
5.0.23
5.0.24 2004-05-09
5.0.28 2004-08-28
5.0.30 2004-08-30 Latest 5.0.x release
5.5.0 2004-08-31
5.5.1 2004-09-07
5.5.4 2004-11-10
5.5.7 2005-01-30
5.5.9 2005-04-11
5.5.12 2005-10-09
5.5.15 2006-01-21
5.5.16 2006-03-16
5.5.17 2006-04-28
5.5.20 2006-09-01
5.5.23 2007-03
5.5.25 2007-09
5.5.26 2008-02
5.5.27 2008-09-08
5.5.28 2009-09-04
5.5.30 2010-07-09
5.5.31 2010-09-16
5.5.32 2011-02-01
5.5.33 2011-02-10
5.5.34 2011-09-22
5.5.35 2012-01-16 Latest 5.5.x release
6.0.0 2006-12-01
6.0.10 2007-03-01
6.0.13 2007-05-15
6.0.14 2007-08-13
6.0.16 2008-02-07
6.0.18 2008-07-31
6.0.20 2009-06-03
6.0.24 2010-01-21
6.0.26 2010-03-11
6.0.28 2010-07-09
6.0.29 2010-07-22
6.0.30 2011-01-13
6.0.32 2011-02-03
6.0.33 2011-08-18
6.0.35 2011-11-28 Latest 6.x release.
7.0.0 beta 2010-06-29 First Apache Tomcat release to support the Servlet 3.0JSP 2.2, and EL 2.2 specifications.
7.0.4 beta 2010-10-21
7.0.5 beta 2010-12-01
7.0.6 2011-01-14
7.0.8 2011-02-05
7.0.10 2011-03-07
7.0.11 2011-03-11
7.0.12 2011-04-06
7.0.14 2011-05-12
7.0.16 2011-06-17
7.0.19 2011-07-19
7.0.20 2011-08-11
7.0.21 2011-09-01
7.0.22 2011-10-01
7.0.23 2011-11-20 Fourth stable version.
7.0.25 2012-01-21 Current stable version.

[edit]Communities

Apache software is built in a community process, with both user and developer mailing lists. The developer list is where discussion on building and testing the next release takes place, while the user list is where users can discuss their problems with the developers and other users.

Some of the free Apache Tomcat resources and communities include Tomcatexpert.com (a SpringSource sponsored community for developers and operators who are running Apache Tomcat in large-scale production environments) and MuleSoft's Apache Tomcat Resource Center (which has instructional guides on installing, updating, configuring, monitoring, troubleshooting and securing various versions of Tomcat).

[edit]Apache TomEE

Apache TomEE (pronounced "Tommy") is the Java Enterprise Edition of Apache Tomcat (Tomcat + Java EE = TomEE) that combines several Java enterprise projects including Apache OpenEJB, Apache OpenWebBeans, Apache OpenJPAApache MyFaces and others.[5] In October 2011, the project obtained certification by Oracle Corporation as a compatible implementation of the Java EE 6 Web Profile.[6][7]

[edit]See also

[edit]References


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

Apache Tomcat (아파치 톰캣)은 Java Servlet 과 JavaServer Pages (JSP)를 실행하는 서블릿 컨테이너 (서블릿 엔진)이다. Apache License, Version 2.0을 채용한 오픈 소스 소프트웨어 이며 상용 이용도 많다.Java Servlet 3.0, JavaServer Pages 2.2 대응. 버전 7.0은 JDK 6 이상이 필요합니다.

Apache 소프트웨어 재단 의 최상위 프로젝트의 하나인 Apache Tomcat Project에서 개발되고있다. 이전Jakarta 프로젝트 에서 개발되고 있었다.

목차

  [ 숨기기 ] 

구성 편집 ]

Tomcat 5.0에서 Jasper2을 포함한다.

  • Catalina - Servlet 컨테이너
  • Coyote - HTTP 서버
  • Jasper, Jasper2 - JavaServer Pages

참조 구현으로 Apache Tomcat 편집 ]

서블릿과 JSP의 공식적인 참조 구현 에 사용되고 있지만, 레퍼런스 구현 자체는 아니다.

Web 서버와 연계 편집 ]

Apache Tomcat은 안정적으로 동작하고 정적 콘텐츠 HTTP 서버로 사용할 수 있으므로 별도로 사용할 수도있다. 또한 Tomcat 이외의 HTTP 서버가 HTTP 요청을 받아 필요한 경우 서블릿 컨테이너에 요청을 전달하는 구성으로 HTTP 서버 와 연계해서 사용할 수도있다. 그러나 다른 HTTP 서버와 커넥터 제휴를하면 Advanced IO ( Comet ) 등 일부 기능을 사용할 수 없게된다. 예를 들어, Apache HTTP Server 와 커넥터 모듈을 사용하여 통합하는 경우 Apache Tomcat 측면에서 mod_jk 커넥터로 배포하고있다. 또한 Apache 2.2은 mod_jk과는 다른 방법으로 mod_proxy_ajp 모듈을 이용하는 방법도있다.

외부 링크 편집 ]



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

아파치 톰캣(Apache Tomcat)은 아파치 소프트웨어 재단에서 개발된 서블릿 컨테이너(또는 웹 컨테이너)만 있는 웹 애플리케이션 서버이다.

톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다. 톰캣은 관리툴을 통해 설정을 변경할 수 있지만, XML 파일을 편집하여 설정할 수도 있다. 그리고, 톰캣은 HTTP 서버도 자체 내장하기도 한다.

아파치 톰캣은 Apache Licence, Version 2를 채용한 오픈소스 소프트웨어로써 서블릿이나 JSP를 실행하기 위한 서블릿 컨테이너를 제공하며, 상용 웹 애플리케이션 서버에서도 서블릿 컨테이너로 사용하는 경우가 많다. 버전 5.5이후는 기본적으로 Java SE 5.0 이후를 대응한다.

(Tomcat은 사전적 의미로 '수고양이'를 뜻함.)

[편집]웹 서버와의 연동

아파치 톰캣에 내장된 웹 서버로만 웹 시스템을 구성할 수 있지만, 대규모의 사용자가 사용하는 시스템을 구축하려면 웹 서버와 연동하는 안정적인 시스템을 구축해야 한다. 이때, 웹 서버인 아파치 웹 서버와는 연동모듈을 사용하여 연동하고, 연동모듈로는 버전 1.3, 2.0은 mod_jk를 이용하고, 버전 2.2 이후는 mod_proxy_ajp 모듈을 사용한다.

[편집]톰캣의 단점

톰캣은 웹 서버로 사용되기보다는 was로 사용된다. html같은 정적 페이지를 로딩하는데 웹 서버보다 수행 속도가 느리다. 이를 해결하기 위해서 아파치와 연동한다. 아파치는 html같은 정적인 페이지를 로드하는데에 사용되는 웹 서버이다. 원리는 아파치가 실행되면 아파치는 html파일은 자신이 수행하고 jsp파일은 톰캣으로 넘겨서 톰캣이 수행하게 만든다. 또한 톰캣은 java언어만 해석이 가능하기 때문에 톰캣에 자체 내장되어 있는 http서버를 사용할경우 php언어로 작성된 서버 페이지와 통신이 불가능하다. 아파치안에 php,jsp를 넣으면 둘다 수행 가능하게 만들수있기 때문에 이 둘은 상호 보완적이라고 볼수 있다.




'Web > WAS' 카테고리의 다른 글

mod_jk 사용법  (0) 2012.02.10
Jakarta Project  (0) 2012.02.05
Tomcat 무분별하게 catalina.out 크기 커지는것 막기  (0) 2012.02.04
tomcat - crossContext, emptySessionPath, sessionCookiePath  (0) 2012.02.02
tomcat - server.xml 설정  (0) 2012.01.20
Posted by linuxism
,

스크립트 언어 (스크립트 언어, 영어 : 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
,