크로스 (소프트웨어)

크로스(Kross)는 KDE 프레임워크를 위한 스크립팅 프레임워크다. 크로스는 원래 KOffice에서 사용하기 위해 설계되었으나, 결국 KDE 소프트웨어 모음 4의 공식 스크립팅 프레임워크가 되었으며, 이후 프레임워크 6에서 제외되었다. 크로스 스크립팅 프레임워크는 그 자체로 스크립트 언어인 것이 아니라, 개발자가 기능을 지정하여 스크립팅을 지원할 수 있게 해주는 인터페이스이며, 사용자는 크로스가 지원하는 언어를 사용하여 스크립트를 작성하게 된다. 현재 파이썬, 루비, 자바스크립트 및 팔콘(Falcon) 프로그래밍 언어를 지원한다. 다른 언어에 대한 지원은 모듈을 통해 추가될 수 있다.

 다른 스크립팅 프레임워크와의 비교 
 SWIG: Simplified Wrapper and Interface Generator 
 크로스는 현재 지원하는 스크립트 언어의 수가 더 적다.
 크로스는 Qt/KDE 위에 구축되었다. 이를 통해 별도의 래핑 작업 없이도 Qt/KDE 요소에 접근할 수 있다.
 크로스를 지원하는 애플리케이션은 SWIG를 지원할 때만큼 많은 코드를 필요로 하지 않는다.
 SWIG의 경우 지원되는 스크립트 언어 세트가 애플리케이션 컴파일 시점에 결정된다. 즉, 지원되는 각 언어는 해당 언어의 인터프리터를 호출하기 위한 코드를 애플리케이션 내에 가지고 있거나, 해당 애플리케이션-언어 쌍에 특화된 공유 라이브러리를 가져야 한다. 반면 크로스는 실행 시점까지 이를 알 필요가 없다.

 애플스크립트 
애플스크립트의 오픈 스크립팅 아키텍처(OSA)와 비교했을 때:
 OSA는 IPC(애플 이벤트)와 함께 사용될 수 있어 스크립트가 별도의 프로세스에 있을 수 있는 반면, 크로스 스크립트는 항상 메인 애플리케이션과 동일한 프로세스에서 실행된다. 실질적으로 IPC를 사용하면 하나의 스크립트가 이미 실행 중인 여러 애플리케이션 사이의 인터페이스 역할을 할 수 있지만, 크로스는 그렇지 못하다.
(기술적으로 하나의 스크립트가 한 번에 여러 애플리케이션의 코드에 접근하기 위해 IPC가 반드시 필요한 것은 아니다. 스크립트는 SWIG에서 생성된 라이브러리와 같이 해당 애플리케이션의 라이브러리 형태와 링크될 수 있다.)
 크로스는 스크립트 작성자가 자신이 선택한 언어로 스크립트를 작성할 수 있게 해주지만, 애플스크립트는 주어진 하나의 언어다. 다만 다른 (스크립팅) 언어 내에서 호출될 수는 있다.
 크로스는 항상 애플리케이션에 크로스를 위한 코드를 명시적으로 추가해야 하지만, 많은 MacOS 애플리케이션은 코코아와 같은 GUI 툴킷 선택 덕분에 기본적인 스크립트 제어 기능을 갖추고 있다 (macOS의 애플스크립트 참조). (Dogtail 및 기타 GUI 테스트/자동화 도구들도 이러한 특성을 가진다.) 여기서 "기본적인 스크립트 제어 기능"이란 적어도 버튼과 메뉴를 클릭하고 스크린 리더와 같은 컴퓨터 접근성 소프트웨어에 제공되는 정보에 접근할 수 있음을 의미한다.

크로스는 현재 신뢰할 수 없는 스크립트를 실행하기 위한 조항이 없다. 즉, 스크립트가 할 수 있는 일을 제한하는 기능을 제공하지 않는다. 크로스 개발자인 자우어(Sauer)는 (실험적인 자바 플러그인을 사용하는 것과 같이) 샌드박스 지원이 좋은 언어를 사용하거나, 서명된 스크립트를 사용하는 등 스크립트에 대한 신뢰를 높이는 접근 방식을 사용할 것을 제안한다.

 크로스를 사용하는 애플리케이션 

 캘리그라 스위트
 Kexi
 크리타
 KDevelop
 K토렌트
 Kopete
 플라스마

 각주 

 외부 링크 
 Kross 홈 페이지 (개발자용 문서)
 Kross 개발자 인터뷰 
 Kross 튜토리얼
 aKademy 2006 컨퍼런스 Kross 발표 
 Kross 네임스페이스 참조

분류:KDE 플랫폼
분류:캘리그라 스위트
분류:KDE 프레임워크