HyperCard의 유산을 잇는 인터랙티브 문서 플랫폼, Decker
Decker는 사운드, 이미지, 하이퍼텍스트, 스크립트 동작을 결합한 인터랙티브 문서를 만들고 공유할 수 있는 멀티미디어 플랫폼이다. 1980~90년대 Mac 사용자들에게 익숙한 HyperCard의 철학과 클래식 macOS의 시각적 감성을 현대적으로 재해석한 도구로, 웹 브라우저에서 바로 사용해볼 수 있다. 프로토타이핑 도구로서 "스케치처럼 불완전하게 시작하는" 접근을 장려한다는 점이 독특하다.
백엔드 개발자 입장에서 흥미로운 점은, 완성된 덱(Deck)을 독립 실행형 .html 파일로 저장할 수 있다는 것이다. 웹 서버나 별도 런타임 없이 브라우저에서 자체 실행되므로, 가벼운 내부 도구나 데모 프로토타입을 빠르게 공유하는 용도로 활용 가능하다. macOS, Windows, Linux, BSD 네이티브 실행도 지원한다.
내장 스크립트 언어 Lil의 설계 철학
Decker의 핵심 중 하나는 Lil이라는 자체 스크립트 언어다. Lil은 게임 엔진 임베딩으로 유명한 Lua의 명령형 스타일과, 시계열 데이터베이스에서 쓰이는 APL 계열 함수형 언어 Q의 영향을 동시에 받았다.
-- 암묵적 스칼라-벡터 연산 예시
a: 10
v: 1,2,3,4,5
v + a -- 결과: 11,12,13,14,15
특히 눈에 띄는 점은 SQL 유사 쿼리 언어가 언어 내부에 통합되어 있다는 것이다. 별도 라이브러리 없이 데이터 집합을 필터링하고 집계할 수 있어, 소규모 인터랙티브 데이터 뷰어를 만들 때 코드량을 크게 줄일 수 있다. 임베디드 DSL 설계나 내부 도구용 스크립팅 언어를 고민하는 개발자에게 Lil의 설계 방식은 참고할 만한 레퍼런스가 된다.
컴포넌트 재사용과 클립보드 기반 공유 모델
Decker는 버튼, 필드, 슬라이더 등 기본 위젯 외에도 커스텀 위젯을 정의하고 시스템 클립보드로 복사·붙여넣기할 수 있는 구조를 갖는다. 텍스트로 직렬화된 위젯 정의를 그대로 공유할 수 있으므로, 별도 패키지 저장소 없이도 컴포넌트 생태계가 자연스럽게 형성된다.
이 구조는 Java 생태계의 의존성 관리와는 다른 관점을 제시한다. 무거운 빌드 시스템 없이 "모든 덱이 재사용 가능한 부품의 툴킷"이 되는 모델은, 내부 어드민 도구나 팀 내 프로토타입 공유 방식을 설계할 때 시사점을 준다.
정리
- Decker는 HyperCard 계보의 인터랙티브 문서 플랫폼으로, 완성물을 독립 실행형
.html로 배포할 수 있어 서버 없는 경량 도구 제작에 적합하다. - 내장 언어 Lil은 명령형·함수형을 절충하고 SQL 유사 쿼리를 언어 수준에서 통합한 설계로, 임베디드 DSL 설계 시 참고할 만한 사례다.
- 클립보드 기반 위젯 공유 모델은 패키지 저장소 없이도 컴포넌트 재사용을 가능하게 하는 대안적 접근 방식을 보여준다.