· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Tcl Tk-HOWTO

리눅스 Tcl/Tk HOWTO

리눅스 Tcl/Tk HOWTO

Luca Rossetti lukaros@tin.it

v0.2, 1998년 11월 7일 심상만 yeuri78@hanmail.net
이 문서는 리눅스 상에서 사용되는 Tcl 스크립트 언어에 관한 글이다. Tcl은 배우기 쉬운 인터프리 터 언어이며 "typeless"방식을 사용하여 고차원의 프로그래밍과 빠른 애플리케이션 개발을 하게해준다. Tk툴 킷은 X윈도우 시스템에서 GUI(Graphic User Interface)를 구현하기 위한 프로그램밍 환경이다. 이들은 다른 애플리케이션으로의 확장이나 이식이 쉽고 빠른 개발시간과 사용이 용이하다는 장점을 가진다. 따라서 Tcl/T k 는 개발자나 사용자 모두에게 많은 이점을 가져다준다. Tk로 구현한 사용자환경이 C나 C++ 툴킷을 기반 으로한 것들보다 더욱 구현하기 쉽고 동적이다. Tk는 Motif의 모습이나 느낌을 구현한다. 현재 많은 종류의 X 응용프로그램이 새로운 응용프로그램 명령을 전혀 사용하지 않고 Tk로만 구현되어 있다.

1. 소 개

이 문서는 리눅스 Tcl/Tk HOWTO이다. 이 문서는 Tcl/Tk의 설치나 환경설정 시 알아야 할것들, 그리고 Tcl /Tk 개발법을 소개하고 있고, 또 Tcl/Tk의 역사, 리눅스에서 이들의 장점 및 단점에 대한 분석, 이 간단하지 만 강력한 기능의 스크립트 언어와 관련된 다양한 참고자료들을 소개하였다. 만일 당신이


make xconfig

라는 명령으로 리눅스 커늘을 리빌드 해 본 적이 있다면 당신은 벌써 이 스크립트언어의 강력함을 맛 보았을 것이다. 커늘 리빌드의 첫단계에서 "kconfig.tk"라는 스크립트가 "wish(tcl 인터프리터)"를 통해 실행되며, 이 에의해 "Linux Kernel Configuration"이라는 창이 나타나게 된다. 이것은 모든 항목을 차례로 설정하지 않고 체크박스를 이용하여 원하는 항목만 설정할 수 있도록 해준다. 또 한 이렇게 한번 설정된 항목을 저장 해두었다가 추후에 재사용하므로써 항목의 추가 삭제를 더욱 쉽게한다. 그리고 항목의 설정순서에 연연하지 않아도 된다. 이렇게 간단한 설정을 통해 전처럼 커늘 리빌드를 수행할 수 있다. 또 하나 "Printtool(Printer Config Tool (C) Copyright 1994 by Red Hat Software - 만든이: Michael Callahan)"

만일 당신이 레드햇 배포본을 설치했다면 프린터 환경설정에 이 프로그램을 사용해 보았을 것이다. 역시나 이 printtool의 모든 것이 Tcl/Tk 스크립트로 되어있다. 혹시나 레드햇을 모르는 사람을 위해, 이 도구가 얼마나 프린터 환경설정을 쉽게 해주는지 설명한다면, 이 것 은 단지 몇가지의 텍스트 박스와 체크박스를 채움으로써 설정을 완료할 수 있다. 이것은 "spooling directory" 생성, "/etc/printcap"과 프린터의 "filter" 수정, "lpd" 재장착 그리고 아스키 혹은 포스트 스크립트 문서 시험 출력 등의 일을 수행해 낸다. 그럼 다른 프린트 서비스 프로그램과 무엇이 다를까? 응용프로그램과 일반 리눅스 환경설정 파일 사이를 가시적이고 대화방식인 X 윈도우 창을 사용해서 Tcl/Tk가 연결시켜준다는 것이다. 새로운 프로그램은 전혀 사용되지 않는다.

1.1 목적

나는 이 문서의 목적을 기초적인 참고자료로 제한하겠다.(앞으로 작은 "Programming Tutorial"항목을 추가할 생각은 있다.) 이 문서는 Tcl/Tk 프로그램 개발에 대한 사용자 매뉴얼이나 참고자료가 아니며 앞으로도 그럴 것이다. 이것은 단지 리눅스 사용자에게 Tcl/Tk에 대한 시작점을 제시할 뿐이다. 여기서 "reference manual"의 개념은 "man page"의 정의와 같으며 사람들은 주로 이런 문서를 이용해 정보를 얻는다. 이 파일들은 소스코드에 포함되어 배포되며 리눅스 박스에 설치 된다. "man" 명령어를 이용하면 Tcl /Tk의 "manual page"를 볼 수가 있다. 새로운 사용자들을 위해 Tcl/Tk를 분석해 놓은 체계적이고 완성된 프로그래밍 학습서가 다량 작성되어 있고 엄청난 양의 정보들이 인터넷에 존재한다. 인터프리트 되는 Tcl/Tk의 철학은 새로운 것을 만들지 않고 기존 의 도구들을 이용하자는 것이다. 이 문서의 참고문서 항목에 Tcl/Tk와 관련된 정보를 검색할 수 있도록 여러 문서를 기록해 두었다.

1.2 기본지식

당신이 Tcl/Tk의 기본적인 것들을 이해하기 위해서 프로그래밍의 전문가일 필요는 없다. 문법은 매우 쉬은 편이며 기본적으로 아래의 것들은 알아두어야 한다.

  • 프로그래밍 기본 개념;
  • 기본적인 리눅스 명령어와 유틸리티의 사용법;
  • 인터넷 접속법;
  • FTP 사용법.

1.3 이 문서의 새판

이 문서의 새판은 아래 FTP 사이트 및 그 미러 사이트에 올려진다. ftp://sunsite.unc.edu/pub/Linux/HOWT O/

HTML 혹은 다른 형태의 리눅스 HOWTO 문서는 sunsite.unc.edu/LDP/lpd.htmlwww.linux-howt o.com 및 여러 미러 웹 사이트에 존재한다.

나의 웹 페이지에도 최근의 html과 sgml 형식의 문서를 올려 놓을 예정이다. 대부분의 리눅스 CD-ROM 배포본은 HOWTO 문서(대부분 "/usr/doc" 디렉토리에)를 포함하고 있다. 몇몇 회 사에서는 프린트된 형태로 배포하기도 한다. 그러나 CD-ROM, ftp 사이트 그리고 출판서적 형태로 배포하는 HOWTO는 오래된 경우가 많으며 만일 6개월 이상이 지난 문서라면 인터넷에 새로운 문서가 등록되어 있는 지 확인해 보라.

만일 당신이 이 문서를 다른 언어로 번역한 후 나에게 알려주면 참고문서항목에 추가하겠다.

1.4 개정

  • Version 0.1: 1998년 10월 28일 - 첫 번째 판;
  • Version 0.2: 1998년 11월 7일 - 스타일 수정, 내용 추가.

1.5 피드백

이 HOWTO 문서가 가치 있으려면 여러분들의 도움이 필요합니다. 만약 어떤 제안이나 수정사항 그리고 주의 사항이 있다면 저에게( Luca Rossetti ) 알려주십시오. 그러면 바 로 다음 개정판에 수용하도록 하겠습니다. 만일 이 문서에서 지시한 문서들의 위치가 없어지거나 수정되었을 경우, 수정하거나 삭제할 수 있도록 즉시 저에게 알려 주십시오

저는 일반적인 Tcl/Tk와 리눅스에 관련된 질문에 대해 최대한 성실히 대답해 드리겠습니다. 그렇게 하기 위 해서 이 HOWTO에 나오는 내용을 전부 읽어 보시고 문제에 대한 정보를 자세히 알려 주시기 바랍니다.

만일 당신이 CD-ROM이나 출판물 형태의 문서에 이 문서를 삽입시켰을 경우, 무료로 저에게 그것을 보내 주 신다면 정말 고맙겠습니다. 이메일 주시면 우편 주소를 알려드리겠습니다. 이 문서의 많은 항목에서 저는 여 러 회사나 기업을 언급했지만 저는 절대 그들을 위해 일하지 않음을 알려드립니다.

1.6 감 사

이 HOWTO 문서의 대부분은 Unsterhout의 Scriptics와 Lar ry W virden의 comp.lang.tcl FAQs을 참 고하였다. PLUTO Italian Linux User Group과 모든 ILDP 회원들, 특히나 Eugenia Franzoni와 Giovonni Bortolzzo의 도움에 감사한다.

1.7 배포방법

이 문서의 저작권(1998)은 Luca Rossetti에 있다.

이 문서는 독자들에게 유익할 것이라는 생각에 배포된 것으로 어떠한 제한, 특히 상업적이거나 특정 목적으로 사용하는 것에 대한 제한이 없다. 이 HOWTO 문서는 무료이므로 LDP 저작권 하에서 재 배포 및 수정이 가능하다. .

자세한 내용은 LDP 선언을 참조하 기 바란다.

2. Tcl/Tk의 역사

Tcl/Tk는 John Ousterhout 박사("오스티어 호우트"라 읽 음)가 켈리포니아 버클리의 켈리포니아 대학에서 교편을 잡고 있을 때 시작되었으며 1988년 봄 버클리로 돌 아왔을 때 사실상 구현을 시작했었다. 그해 여름 Tcl/Tk는 내부 응용프로그램에 사용되었는데 당시 Tk는 존 재하지 않았다. 작가가 들려주는 Tcl/Tk의 역사를 직접 읽어 보려면 www.scriptics.com/scripting/tclHistory.html을 참조하라.

2.1 약 력

  • 1989년 : Tcl의 최초 배포, Tk 구현 시작;
  • 1991년 : Tk의 최초 배포;
  • 1994년 : Unsterhout 박사 Sun Microsystems 입사, 저명한 기술자였고 Tcl 프로젝트를 맡 았다.
  • 1997년 4/5월: Tcl 개발에 관련된 선 연구그룹이 "Sun Script"라고 하는 선 비즈니스그룹으 로 분리, 신설 되었다. 그러나 잠시후 많은 것이 바뀌게 된다. SunScript-Story 에서 "sunscript.story"의 선택이 어떤 파장을 일으켰는지 알아볼 수 있다.
  • 1997년 8월 : "Tcl Consortium"이 구성됨 Tcl Consortium에서 참여방법 외에 여러 가지 것들을 알아볼 수 있을 것이다.
  • 1998년 2월 : Ousterhout 박사가 스크립팅 도구, 응용프로그램 그리고 서비스에 집중할 수 있는 회사를 설립하기 위해 Sun을 떠난다. www.scriptics.com /about/news/qa.html에 따르면 코어 Tcl/Tk는 무료로 남을 것이며 Sun의 담당 팀은 우선 Tcl/Tk 8.1의 개발을 계속할 것이라 한다. 다음 배포 후에는 코어 영역이 Sun에서 Scriptics로 이전할 것이다. 기존의 Sun 팀은 Tcl 익스텐션과 응용프로그램에 집중할 예정이다.
  • 1998년 4월 23일 : ACM(Asscciation for Computing Machinery) 에서 John Oust erhout와 Scriptics에게 1997년 "software system award( www.acm.org/awards/)"를 수여한다. 이 상은 새로운 생각으로 혹은 그 상업성으로 소프트웨어 분야의 발전에 기여한 개인이나 단체에 수여된다.

3. Tcl/Tk

3.1 Tcl

Tcl(티클이라고 읽는다)은 "Tool Command Language"의 약자이다. Tcl은 크게 언어와 라이브러리, 두가지 로 나눌 수 있다. Tcl은 텍스트 편집기, 디버거 그리고 쉘 등과 같은 대화방식의 프로그램에 명령을 줄 수 있으며 명령어를 나 열하므로써 보다 강력한 명령어들을 만들어 낼 수 있다. 두 번째로 Tcl은 응용프로그램에 이식가능한 라이브러리 꾸러미이다. Tcl 라이브러리는 Tcl 언어의 파서와 T cl 기본 명령어들을 처리하는 루틴 그리고 응용프로그램이 그에 맞는 명령어을 Tcl로 확장하는 프로시져로 구 성된다. 이 응용프로그램은 Tcl 명령어를 생성하고 Tcl 파서를 통해 실행한다. 명령은 입력소스의 글을 읽으므로써 생성되거나 명령어와 응용프로그램의 UI요소 (메뉴 항목, 버튼 등의 것 들)를 연결킴으로써 생성된다. Tcl 라이브러리가 명령을 받으면 그것들을 요소로 나눠 기본 명령어를 직접 실행한다. Tcl 명령이 종료되면 응용프로그램은 실행을 Tcl에서 돌려받아 자신의 명령을 실행하게 된다. 일반적으로 명 령어들은 Tcl 인터프리터에 계속 실행할 명령어를 줌으로써 재귀적 실행을 만들어낸다.(사실 procedure와 조 건 반복 명령은 이런식으로 수행된다.) 응용프로그램에 Tcl을 사용하면서 얻는 이익은 많다.

  • Tcl은 기본적인 문법을 제공한다. : 사용자가 한번 Tcl을 익히고 나면 어떠한 Tcl 기반의 응용프로그램 에도 명령을 생성할 수 있다.
  • Tcl은 "Programmability"를 제공한다 : Tcl 응용프로그램에서 할 일은 간단한 명령을 작성하는 것 뿐이 다. Tcl은 복잡한 프로시져를 구성하는데에 필요한 많은 유용한 유틸리티와 일반적인 프로그래밍 환경을 제공 한다. Tcl을 사용하면 응용프로그램에서 이런 기능을 다시 만들 필요가 없다.
  • Tk 툴킷과 같은 Tcl 익스텐션은 Tcl 명령어를 주고 받음으로서 애플리케이션 간의 대화를 지원한다. 일반 Tcl 언어 "Framework"는 이런 것을 더욱 쉽게 한다.

큰 소프트웨어 시스템을 디자인할 때 둘 이상의 언어를 사용해야 한다는 생각에서 Tcl은 작성되었다. 어떤 것 은 복잡한 자료구조를 구성해야하고 퍼포먼스가 뛰어나야 한다. 또 어떤 것은 Tcl과 같이 매우 적은 양의 스 크립트로 둘이상의 프로그램을 연결할 수 있어야한다. Tcl 스크립트 작성자에게는 배우기 쉽고 프로그래밍이 쉬우며 프로그램 상호 연결이 쉽다는 특징이 뛰어난 퍼 포먼스의 구현과 복잡한 자료구조나 알고리즘 작성이 쉽다는 특징 보다 더 중요하다. Tcl은 저급한 언어에 고 차원의 기능이 필요한 경우 지원 가능하도록 만들어진 언어이다. 이와 같이 기본적인 코어 기능의 규모가 작 으므로 사용자는 특정기능과 필요를 위해 가져다 쓰면 되는 것이다. "Tcl이 무엇인가?"라는 의문이 든다면 www.NeoSoft.com/tcl/whatistcl.html 을 참고하라.

3.2 Tk

Tk("티케"이라 읽음)는 Tcl의 익스텐션으로 프로그래머에게 X11 윈도우 시스템의 인터페이스 구성을 도와준 다. 참고로 Tk는 X11 R4, X11 R5, X11 R6과 Sun's NeWS/X11 환경에서 모두 잘 컴파일 된다. 많은 사람들이 "wish"를 통해 Tcl/Tk를 사용하고 있다. "wish"는 기본적인 환경에서 Tcl/Tk 응용 프로그램을 작성할 수 있게 해 주는 "windowing shell"이다. 현재 Tcl/Tk는 일본어, 중국어, 한국어 등의 폰드를 다루지 못한다.

3.3 익스텐션

Tcl은 확장하기가 쉽기 때문에 많은 사람들이 익스텐션을 사용한다. 유명한 것으로는 itcl, [incr Tcl], ObjectTcl, TclX, Tix 그리고 BLT등 이 있다.

이런 익스텐션은 확장 Tcl 인터프리터가 필요하며 무료 Tcl 응용 프로그램을 실행하는데 특정 Tcl 익스텐션 이 필요한 경우가 많다.

유명한 익스텐션 중에 Expect라는 것이 있는데 이것은 "comma nd-line" 형식의 유닉스 응용프로그램 (ftp, telnet, rlogin, passwd, fsck 등과 같은)의 원하는 부분에 프로그 램을 삽입할 수 있다. Tcl/Tk 익스텐션의 목록은 아래에 있다. www.scriptics.com/resourc e/software/extensions/

3.4 지원 플렛폼

이 장에서는 가장 최근 버전인 Tcl 8.0 과 Tk 8.0에 기준한 정보를 담고 있다. 1997년 8월 18일에 배포된 것이며 가장 최근의 패치로는 1998년 9월 3일에 만들어진 패치 8.0.3이 있다. Tcl/Tk를 다운 받으면 두가지 프로그램(wish와 tclsh)과 지원 스크립트 라이브러리 그리고 온라인 참고 문서 가 들어있다. 이 두가지 프로그램들이 Tcl 프로그램 구현을 위한 일반적인 구현환경이 된다. wish에는 GUI 툴킷인 Tk가 포함되어 있고 설치가 끝나면 이들을 바로 사용할 수 있다. Tcl 8.0과 Tk 8.0은 아래 운영체제들에서 실행이 가능하다.

  • Windows 95
  • Windows NT
  • Solaris and SunOS
  • Linux
  • HP-UX
  • SGI
  • IRIX
  • Digital Unix
  • AIX
  • SCO Unix
  • 이외의 유닉스형 운영체제 Macintosh(64K와 PowerMac)
  • 여러 Linux 배포본에서는 이미 컴파일된 릴리즈를 사용 가능하다.

4. 설치 및 Tcl/Tk의 시작

최근 대부분의 배포본에는 Tcl/Tk를 포함하고 있다. Red Hat SuSE와 Debian 배포본에는 RPM과 Debian 꾸러미 형식으로 포함되어있다.(이런 꾸러미 형식은 설치가 매우쉽다.) X기반의 많은 환경 설정도구에서 Tcl/Tk를 필요로 하기 때문에 근래의 배포본들은 기본적으로 Tcl/Tk를 설 치하고 있다. Tcl/Tk의 소스코드가 현재 인터넷을 통해 무료로 배포되고 있으며 사용상의 엄격한 제한 또한 없다. 라이센 스나 로얄티도 전혀 필요치 않다.(이에 대한 완벽한 정보가 필요하다면 license.te rms 항목을 참고하라) 많은 Tcl/Tk 스크립트와 확장판들 역시 무료로 존재한다.

4.1 배포본 구하기

Tcl/Tk의 기본사양은 Tcl/Tk 라이브러리와 wish, tclsh 응용프로그램, 관련된 문서, 스크립트 l라이브러리 그 리고 데모 애플리케이션을 포함한다. 배포본을 구할 수 있는 대표적인 FTP 사이트는 ftp.scriptics.com/pub/tcl/이고 HTTP site는 www.scriptics.com/software/download.html이다.

4.2 설치

설치되어 있지 않다면 소스코드를 받아서 설치해야 하며 이때 Tcl/Tk 모두의 소스가 필요하다. compress로 압축된 tar 형식과, gzip으로 압축된 tar 형식이 존재한다.

compress로 압축된 tar 형식의 소스파일 Tcl 소스파일(tcl.8.0.3.tar.z) : 약 2.4Mb Tk 소스파일(tk.8.0.3.tar.z) : 약 3.3Mb gzip으로 압축된 tar 형식의 소스파일 Tcl 소스파일(tcl.8.0.3.tar.gz) : 약 1.5Mb Tk 소스파일(tk.8.0.3.tar.gz) : 약 2.1Mb

당신은 tcl8.0.3.tar.gz 나 tcl8.0.3.tar.z 의 압축된 tar 파일을 구할수 있는데 이 두 파일은 압축 방식만 다 를 뿐 같은 파일이다.(일반적으로 .gz 파일이 .z 보다 용량이 작다) 압축을 풀려면 파일 압축형식에 따라 아래처럼 명령어를 주면 된다.


gunzip -c tcl8.0.3.tar.gz

혹은


tar xf - zcat tcl8.0.3.tar.Z

혹은


tar xf - unzip tcl80.3.zip

이 명령들은 모든 플렛폼에 대한 소스, 문서 그리고 Tcl8.0 스크립트 라이브러리 등을 포함하는 "Tcl8.0.3" 이라는 디렉토리를 생성한다. 컴파일 및 설치는 "README" 파일의 내용을 참조하라. Tk 컴파일전에 꼭 Tcl 을 먼저 컴파일하라 Tk 컴파일 시 Tcl을 참조하기 때문이다.

4.3 성과물

Tcl로 작성된 스크립트나 C, C++로 작성된 익스텐션등이 들어 있는 많은 다른 꾸러미들이 존재한다. 이런 꾸러미에는 데이터 베이스 응용프로그램, Network access, GUI builder, expect 프로그램, 부가적인 Tk wid get 등 여러 가지 것이 있다. 이런 Tcl/Tk 성과물에 대한 대표적인 사이트는 ftp.neosoft.com/pub/tcl이다.

4.4 미러 사이트

세계 곳곳의 여러 사이트들이 코어 사이트들과 성과물들을 미러하고 있으며 보다 가까운 미러 사이트의 정보 를 이용하는 것이 더욱 유용하리라 생각된다. 당신 국가에 존재하는 미러사이트를 확인하려면 ftp.scri ptics.com/pub/tcl/에 있는 d-mirrior를 참조하라

4.5 어느것을 사용할까?

항상 Scriptics Software Central p age에서 추천하는 Tcl/Tk 코어를 확인하라. 이글을 쓰는 현재, 추천하는 것은 1998년 9월에 배포된 것으 로 가장 최근의 것(Tcl 8.0.3과 Tk 8.0.3)이다.

Tcl8.0은 2-10X 기술을 이용해 실행의 속도를 증가시키는 바이트코드 컴파일러를 포함하고 있으며 namespa ce와 이진 입출력기 등, 여러 가지 새로운 특성을 가진다. Tk8.0은 Macintosh 나 PC 에 친근한 환경을 제공해 준다. Tk 8.0은 애플리케이션 이식성과 새로운 Portabl e 폰트 메카니즘을 지원한다. Tcl/Tk 8.0은 Safe-Tcl 보안 모델을 제공한다.

4.6 문제, 버그, 추가할 사항 알리기

대중과의 대화를 원한다면 comp.lang.tcl을 이용하라.

문제, 제의, 새로운 생각등을 작자에게 직접 보낼수도 있다 John Ousterhout에게 직접 E-mail을 보내도 될 것이다.

문제점이나 버그를 제기할 때 정확한 분석을 위해 세밀한 부분까지 언급하라. 기본적으로 당신의 하드웨어, 운영체제, Tcl/Tk의 버전등을 설명하고 가능하다면 수정사항, 추가 코드 아니면 문제를 설명해 줄 수 있는 c ode의 URL 등을 알려주기 바란다. 만약에 공동체에 유용한 소프트웨어(프로그램 함수, 익스텐션 혹은 예제) 나 문서, 잡지, 저널 기사, 논문, 프로젝트 그리고 상업적인 광고 등이 있다면 사람들에게 알려주길 바란다.

comp.lang.tcl.announce등의 뉴스그룹처럼 각 영 역에 대한 FAQ가 존재한다.

ftp 사이트에 당신의 여러 작품들을 올리는 것은 가치있는 일이며 많은 사람들에게 이익이 되고 그들은 당신 에게 감사해 할 것이다.

comp.lang.tcl.announce뉴스그룹에 기고하려면 tcl-announce에 자세한 이메일을 보내라. 그리고 당신의 웹 사이트나 ftp 사이트를 사람들에게 알리는데 주저하지 말아라.

5. 약간의 프로그래밍

Tcl이 인터프리트 되는 언어이므로 Tcl프로그램(혹은 Tcl스크립트)을 실행하려면 Tcl 인터프리터인 wish를 사용해야 한다. 예를 들면


wish hello.tcl

또한 당신은 명령행에 명령어를 쳐넣으면서 wish를 사용할 수도 있다. 이외에 Tcl 인터프리터에는 tclsh라는 것이 있습니다. 이 것은 Tcl만 해석하는 것입니다. tclsh는 Tk 명령어를 전혀 사용하지 않습니다. 그래서 그 래픽적인 프로그램은 만들지 못합니다. 어떤 Tcl 프리웨어는 C 합수로 된 새 명령어를 추가하여 Tcl 언어를 확장하기도 한다. 그럴 경우, wish를 통해 프로그램을 수행하는 것이 아니라 그 프로그램을 컴파일하여야 한 다. Tcl 관점에서 이런 응용프로그램은 새 C 명령어가 연결된 새로운 버전의 인터프리터라 할 수 있다. 이런 응용프로그램이 단순한 Tcl 인터프리터 보다는 훨씬 많을 것이다. (알아두기 : 시스템이 가능하다면 Tcl 자동 load 기능을 사용할 수 있다. )

5.1 Tcl 일분 프로그램

Tcl은 간단한 구조를 가진다. 매 행이 "button"과 같은 명령어와 몇 개의 인수로 구성되어 마치 C 함수의 구 조와 비슷하다. 이 함수가 주어진 모든 인수를 다루게 된다.

매우 기본적인 예로 아래에 Tcl/Tk "Hello World" 프로그램이 있다.


# This is a comment
button .b -text "Hello World" -command exit
pack .b

이 경우 tclsh이나 wish에서 하나 하나 명령어를 쳐주어야 한다. 이 명령어들을 스크립트 파일로 만들어서 마치 셀 스크립트처럼 실행할 수도 다. 위의 예를 이처럼 하려면 아 래의 파일을 만들어야 한다.


#! /usr/local/bin wish -f
button .b -text "Hello World" -command exit
pack .b

이 파일을 Hello로 저장하고 wish가 "/usr/local/bin"에 설치되어 있는지 확인한다. 그렇지 않으면 경로를 수 정하여야 할 것이다. 아래 명령으로 Hello를 실행 가능하게 한다.


chmod 775 Hello

그리고 나서 X에서 실행시키면, 윈도우상에 Hello 버튼이 나타나고 그 버튼을 누르면 윈도우가 사라질 것이 다.

6. 스크립트 언어의 장점과 단점

Tcl/Tk의 중요성과 미래를 이해하려면 John K. Ousterhou twww.scriptics.com/people/j ohn.ousterhout/를 검색해 보라. 이 문서에는 Tcl/Tk의 중요성 스크립트 언어(Tcl과 같은)와 시스템 프로 그램밍(C 나 Java와 같은)을 비교하였다. 비교에 관련한 글은 비교 토론 영역에서 찾을 수 있을 것이다. 여기에서는 가장 중요한 장단점을 분석하였다.

6.1 Tcl에 대한 매우 일반적인 불만

Tcl은 인터프리트 언어이다.

문자로 데이타를 관리하기 때문에 Tcl프로그램은 느리다. 추가적인 변수지원과 여러번 컴파일을 하여 Tcl 8. x에서는 이를 수정하려고 하였다.

직관적이지 않다

주석문이 전통적으로 쓰이던 방법(8진수가 0으로 시작한다든가, 따옴표의 사용법등) 보다는 명령어처럼 사용 된다. 많은 FAQ에서 이 사항을 다루고 있다.

6.2 Tcl의 대표적 장점

고급 스크립트 언어이다.

같은 일을 수행하는데 더 적은 코드가 필요하다. 특히 Motif와 Win32에 비교하면 더욱 그러하다. 일반적으로 코드의 양은 복잡성에 있어서 가장 큰 지표가 된다.

Tcl은 무료이다.

Scriptics Download Page, Tcl 관련 FTP 사이트와 코어 사이트에서 무료로 소스를 다운 받을 수 있다. 코어 사이트에서는 Windows와 Macin tosh 시스템에서 실행 가능한 파일형식으로 받아볼 수 있다. Tcl/Tk가 무료인 것에 대한 내용은 www.scri ptics.com/about/news/qa.html에 있다.

많은 플렛폼에서 돌아간다.

UNIX(LINUX도 물론), Windows, Macintosh 등을 위한 각각의 제품이 모두 존재한다. 플렛폼 차이에 의한 부분만 빼면 당신의 Tcl 스크립트는 모든 시스템에서 돌아갈 것이다.

인터프리트 된다.

컴파일이나 링크과정 없이 코드를 바로 수행가능하다. (Tcl 컴파일러가 존재하긴 하지만)

확장이 용이하다.

명령을 추가하여 Tcl 언어를 쉽게 확장할 수 있고 그 명령은 Tcl이나 C로 구현가능하다.

이식이 가능하다.

Tcl은 당신이 코드에서 불러올 수 있는 C 함수의 집합일 뿐이다. 이 말은 스프레드쉬트의 매크로와 같은 애 플리케이션 언어처럼 Tcl을 사용할 수 있다는 것이다.

Tcl/Tk는 2000년 문제(Y2K)에 안전하다.

이 문제에 대한 작가의 생각은 아래에 있다. www.scriptics.com/Y2K.html

7. Tcl/Tk를 사용하는 유명한 프로그램

소개 항목에서 말했던 프로그램 외에도 Tcl/Tk 혹은 Tcl과 C를 함께 이용 한 많은 애플리케이션이 존재한다. 이들의 항목은 Tcl/Tk FAQ의 4번째 항목에 있다. Scriptics' Software Centralwww.NeoSoft.com/tcl/도 추천할 만하다.

가장 훌륭한 Tcl 리눅스 애플리케이션 중 하나는 TkDesk이다. 이 것은 매우 훌륭한 windows 관리자이자 애플리케이션 "launcher"이다.

당신이 리눅스 Tcl/Tk 개발자라면 링크를 마련할 수 있도록 URL을 보내 주십시오 (설명문과 함께)

8. 참고 문서

많은 사람들이 출판물을 참고하고 싶어하며 온라인상의 도움을 받고 싶어한다. 그래서 여기에 참고 문서와 학 습서, 웹 사이트 그리고 뉴스그룹을 추천하겠다.

8.1 서적

현재 Tcl/Tk 관련 서적들이 많이 나와 있고 계속 제작되고 있다. 그러나 여기에서 이런 책들을 모두 나열하 진 않겠다. (다른 어떤 사람도 그럴 순 없겠지만) 다음 글에서 더 많은 정보를 얻을 수 있을 것이 다.

여기에 중급 수준의 책들을 나열해 보았다.

Tcl and the Tk Toolkit

저자 : John K. Ousterhout

책정보 : cseng.aw.com/bookdetail.qry?ISBN=0%2D201%2 D63337%2DX&ptype=0

예제들 : ftp.scriptics.com/pub/t cl/doc/book.examples.Z

지원 : www.scriptics.com/doc/tk 4.0.ps

이책은 최초로 Tcl 7.3과 Tk 3.6을 다룬 책이다.

Practical Programming in Tcl and Tk, II ed.

저자 : Brent Welch

책정보 : www.beedub.com/book/

내부 목록 : www.beedub.com/book/

URL www.borders.com/sections/ section_5000 0.html의 수정정보

이 책은 Tcl/Tk 8.0의 beta test 기간에 쓴 것으로 첫번째판의 내용과 소켓, 꾸러미, namespace, Tcl 7.4, 7.5, 7.6, 8.0 사이의 변화(물론 Tk에 관해서도), Safe Tk, 플러그인등에 관한 내용을 모두 포괄한다.

Tcl/Tk 레퍼런스 메뉴얼

저자 : Donald Barnes, Marc Ewing와 Erik Troan

책정보 : www.lsl.com/catalog/books/tcltk/

The Visual TCL Handbook, 1/e

저자 : David Young

책정보 : www.amazon.com/exec/obidos/ISBN=013461674X/u/7141-5908756-107481

좋은 Visual TCL 가이드로 독자들이 기본적인 GUI 개발 개념에서부터 의미있는 애플리케이션 개발까지를 터 득할 수 있게해 줄 것이다. 이 책은 TCLX와 VT등에 중점을 두고 있고 Tcl의 기본에 대해 설명하고 있다. V T는 Tk와 호환하는 모티프 형식의 그래픽 환경이다. 명령어에 따라 항목이 나눠져 있다. SGI, Solaris, HP- UX, AIX 그리고 Unixware 등의 Visual Tcl이 CD-ROM으로 딸려온다.

Running LINUX

저자 : Matt Welsh 와 Lar Kaufman

책정보 : www.ora.com/ca talog/runux2/noframes.html

Running LINUX는 정말 잘 쓰여진 기초 학습서이다. Tcl/Tk 프로그램 항목이 있다.(Perl, C, C++도 )

Tcl/Tk for Dummies (For Dummies)

저자 : Timothy Webster(Alex Francis와 함께)

책정보 : www.dummies.com/

프로그래밍을 다루는 책 시리즈 중 하나이다. 이 책은 프로그래밍 환경으로 Tcl 플러그인에 관심을 두고 있 다.

Interactive Web Applications With Tcl/Tk

저자 : Michael Doyle Hattie Schroeder

책정보 : www.eolas.com/tcl/

이 책은 프로그래밍을 조금 알지만 전문가는 아닌 사람을 위한, 예제로 배우는 학습서이다. 독립 애플리케이 션과 간단한 서버 응용프로그램 뿐만 아니라 애플릿 개발도 다루고 있다. 분산처리, URL 검색, HTML rende ring, database 관리, 플렛폼 독립적인 파일 관리, Ed, Tcl 편집기, 환경 테스트, 이미지 전환 도구, Tk류의 데모, rolodex 응용프로그램의 클라이언트/서버 버전, 순수 Tcl 웹 브라우저, 클라이언트/서버 푸시 애플리케 이션 그리고 Tcl 웹브라우저 등의 프로시져를 포함하는 "spynergy"가 부록으로 딸려온다.

8.2 메뉴얼과 온라인 학습서

8.3 웹 사이트

Tcl과 Tcl 익스텐션에 관련해 다양한 정보를 제공해 주는 곳이 많다.

  • Tcl-FAQs (part2) : Tcl/Tk문 서와 웹사이트에 대한 많은 양의 링크를 제공
  • Tcl/Tk Information : 웹상의 Tcl/Tk 관련 자원(정보, 익스텐 션, Tool, Training 그리고 event)을 제공
  • Tcl-Consortium : Tcl/Tk를 발전시키고 개발자들을 지원하는 비영리단체
  • The Official Contributed Sources Archive : NeoSof t에서 관리하는 Tcl/Tk 사이트
  • Cameron Laird 가 쓴 Sun World의 기사 : 대표적인 스크립트언어의 장단점을 토론한 기사
  • Wayne Christopher가 쓴 Comparison : Tcl/Tk와 다른 비슷한 주류의 것들을 다양하게 비교해 놓았 다. comp.lang.tcl에서 발췌한 내용이 대부분이다. 당신이 내용을 더 추가하고 싶다면 작가에게 의뢰하라 그 도 기뻐할 것이다.
  • E.J. Friedman-Hill's Tcl/Tk Course : 파워 포인트 형식과 저질의 HTML 형식 두가지가 존재한다. (HTML 형식은 내용이 조금 빠져 있고 그림은 전혀 들어 있지 않다.)

8.4 기타 문서와 FAQ

현재 소개글, white paper, 학습서그리고 슬라이드 포스트 스크립트 형식의 출판된 책 등을 인터넷에서 많이 구할 수 있다. 더 많은 정보는 Tcl-FAQs를 참고하라.

8.5 뉴스그룹

comp.lang.tcl은 좋은 유즈넷뉴스그룹이고 Tcl, Tcl을 사용하는 툴(X 윈도우의 Tk와 같은) 그리고 Tcl 익스텐션 등에 관련된 내용을 토론하고 있다.

comp.lang.tcl.announce : 배포, 패치, 새 응용프로그 램 등에 관련한 소식을 접할 수 있다.

Tcl-FAQs에서 FAQ를 찾을 수 있다.

9. Tcl/Tk 라이센스

다음 라이센스는 코어 Tcl/Tk 배포본, Tcl/Tk 브라우저 플러그인 2.0, TclBlend 그리고 Jacl 1.0에 적용된 다. TclPr2o는 다른 라이센스가 걸려 있다. 아래는 Tcl/Tk 표준 배표본의 "lisense.terms"의 내용이다.

Tcl/Tk 라이센스

이 제품의 저작권은 캘리포니아 대학의 "regent", Sun Microsystems, Scriptics Corporation 등에 있다. 이 라이센스는 표준 제품에 포함된 파일 중 특별히 기입한 개인적인 파일을 제외한 모든 파일에 적용된다. 작자 는 사용, 복사, 수정, 배포에 자격제한을 두지 않았고 소프트웨어와 문서를 어떠한 목적으로도 사용할 수도 있다. 그러나 모든 복사본에는 이 저작권이 포함되어 있어야 한다. 어떤 사용에도 대가를 받지 않을 것이다. 이 소프트웨어가 수정된다면 그 저자의 저작권을 따르게 되고 여기 에 명시된 라이센스를 따를 필요는 없다. 그들은 그들이 수정한 파일의 첫 페이지에 무엇을 수정하였는지 명 시해야 한다. 이 소프트웨어, 문서 혹은 그것에서 파생된 어떠한 것의 사용으로 일어나는 어떠한 피해도 저자 나 배포자에게 책임이 없다. 작자나 배포자가 어떤 보증이나 소속을 주장하여도 상업적인 보증, 특정목적으로 의 사용, 무결성등으로 제한하지는 않는다. 이 소프트웨어는 말 그대로 기초적인 것만 제공하며 작자와 제공 자가 유지, 지원, Update, 발전 혹은 수정할 의무는 없다.

정부의 사용 : 당신이 만약 미국 정부의 이름으로 이 소프트웨어를 구했다면 정부는 특별히 이 소프트웨어와 문서에 대해 "엄격한 권리"를 갖는다. - 연방 획득물 규정(Federal Acquisition Regulations:FARs) 52.227.19 장에 정의된 항목과 관련해 당신이 국방부의 "Commercial Computer Software"로 편성된 소프트웨어나 정부 명의로 이 소프트웨어를 획득할 경 우 DFAR의 252.227-7013에 정의된 "엄격한 권리"를 가지게 된다. 이렇게 언급했음에도 불구하고 이것을 어긴다면 작자는 미국 정부와 다른 이들에게 그들의 법을 이 소프트웨 어의 사용이나 배포에 적용하겠다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0032 sec