Tcl/Tk로 크로스 플랫폼 CLI·GUI 도구 개발하기

5 days ago 10

Tcl/Tk는 Windows·Linux·macOS에서 CLI와 네이티브형 GUI를 함께 만들 수 있으며, 비차단 이벤트·I/O와 격리된 스레딩을 지원하는 BSD 라이선스 도구 모음임 Tcl은 첫 단어를 명령으로 해석하고 코드와 데이터를 문자열로 다루는 명령 중심 언어이며, Tk는 운영체제별 UI를 위젯과 이벤트로 추상화함 2025년 11월 13일 출시된 Tcl/Tk 9.0은 64비트, 전체 Unicode, 엄격한 인코딩, ZipFS 단일 파일 패키징, SVG·고해상도 DPI·Dark Mode를 추가했지만 일부 기존 코드에는 호환성 변경이 있음 git gui, FPGA·EDA 도구, Cisco IOS, ESA 운영 환경, SQLite 빌드·테스트, Decent Espresso 앱 등에 장기간 활용됐으며, 1990년대 스크립트가 최신 버전에서도 실행되는 사례가 있음 대규모 수치 계산보다 접착 언어로서 이벤트 기반 UI, 자동화, I/O, DSL, 네이티브 프로세스 조정에 적합하며 계산은 C·C#·Python 같은 외부 구성요소에 맡길 수 있음 Tcl/Tk를 선택한 이유 Tcl/Tk는 일반 패키지를 포함해도 약 100MB 이하 환경을 구성할 수 있고, 지원 플랫폼별 작은 단일 파일 앱과 웹 앱을 만들 수 있음 BSD 라이선스는 수정·재배포와 전체 또는 일부 판매를 허용하며, Tcl 커뮤니티가 코어와 릴리스를 유지함 검토한 다른 GUI 선택지에는 다음과 같은 제약이 있었음 AutoHotkey v2는 작은 Windows 도구에 적합하지만 Windows 전용이며 Wine에서 네이티브 호출을 보장하지 못함 C# WinForms는 Windows API에 종속되고, MAUI·Avalonia는 의존성이 크며 소규모 비엔터프라이즈 개발이 번거로움 Electron형 로컬 웹 앱은 프런트엔드·백엔드 통신, 포트 충돌, 보안을 관리해야 하며 빈 브라우저도 100MB 이상을 소비할 수 있음 Go의 Fyne·Gio로 만든 단순 창은 약 4만 개의 간접 의존성과 30MB가 넘는 정적 바이너리를 가졌고 네이티브 앱처럼 보이지 않았음 Qt는 MOC, 네이티브 경계의 signal·slot, GPL/LGPL·상용 라이선스 구성이 복잡함 많은 현대 GUI 프레임워크는 운영체제 UI API보다 캔버스에 직접 그리며, 실행 환경 전체를 OS·CPU별로 묶어 네이티브 외형을 얻기 어려움 접착 언어로 설계된 Tcl John Ousterhout가 1990년 ...

Read Entire Article