Lobsters

Lotus Improv on the NeXT

NeXT에서 살펴본 Lotus Improv

Lotus Improv는 행과 열 대신 범주와 항목으로 데이터를 모델링하고, 같은 데이터를 여러 방식으로 재배치해 보는 스프레드시트입니다. NeXT 버전의 실제 사용 경험을 바탕으로 수식, 피벗 뷰, 그룹 기능을 설명하고, 일반적인 스프레드시트로서의 한계와 후속 제품 Quantrix를 함께 짚습니다.

에디터 노트

Improv의 장점은 수식 몇 개를 쉽게 쓰는 데 그치지 않고, 데이터 구조와 여러 보기를 같은 모델 안에서 다룬다는 점입니다. 범주 단위 수식과 충돌 알림은 관계를 명시적으로 표현한다는 설명과 잘 맞습니다. 다만 범주를 추가할수록 항목이 다른 차원과 조합되는 제약이 생기고, 그룹은 이를 보완하는 대신 차원을 합쳐야 합니다. 글의 사례도 Improv이 모든 표 작업을 간편하게 만든다기보다 데이터 모델링에 적합한 도구였음을 보여줍니다. 댓글에서는 스프레드시트의 즉각적인 실험성을 대체하기 어렵다는 의견과 실제 업무에서 CRUD 앱으로 옮긴 사례가 함께 나옵니다. 두 경험은 서로 모순이라기보다 데이터와 업무 조건에 따라 대체 비용이 달라진다는 점을 드러냅니다. Improv의 수식과 피벗 뷰는 데이터 관계를 명료하게 하지만, 실행 취소와 스크립팅 같은 기능 부족, 범용 표 작업의 경직성은 확산을 막을 만한 제약으로 글에 구체적으로 기록돼 있습니다. 댓글의 대안 논의는 이 역사적 사례에서 더 나아간 개인 경험과 의견으로 구분할 필요가 있습니다.

AI 요약

Lotus Improv는 1980년대 말 NeXT 전용으로 등장한 스프레드시트입니다. 이 글은 NeXTstation Turbo에서 NeXTSTEP 3.3과 Improv 1.0을 실행하며 기능을 직접 살펴봅니다. Improv의 독특한 점은 셀 주소 대신 도메인에 맞는 범주와 항목으로 데이터를 구성한다는 데 있습니다. 예를 들어 행과 열에 월과 날짜를 붙이는 대신 각각을 범주로 만들고 항목을 정의합니다. 워크시트에는 실제로 정한 데이터만 들어가며, 수식은 셀마다 복제하지 않고 별도 Formula Panel에서 범주나 항목 단위로 적용합니다.

범주, 수식, 충돌 처리

수식은 January나 27 같은 항목 이름, 또는 April:19 같은 교차 지점을 참조합니다. December 전체에 수식을 적용하거나 PREV, NEXT, THIS로 상대 위치를 지정할 수 있어 셀 참조 복사와 절대·상대 참조 표시를 줄입니다. 하나의 셀을 여러 수식이 대상으로 삼으면 Improv은 겹침을 표시하고 사용자가 적용할 수식을 고르게 합니다. 글은 이 방식을 소개하며, 프로그램이 사용자의 의도를 임의로 추측하기보다 충돌을 드러내고 해결 권한을 주는 편이 낫다고 설명합니다.

데이터를 여러 차원으로 늘리면 제약도 드러납니다. 범주에 속한 항목은 다른 범주와 조합되므로, 리그와 디비전마다 다른 팀 목록처럼 계층에 따라 달라지는 데이터를 단순 범주만으로 표현하기 어렵습니다. Improv의 그룹 기능은 범주 안의 항목을 묶고 그룹을 다시 묶어 이런 구조를 표현합니다. 다만 범주를 그룹으로 합치면 원래 차원을 따로 활용하는 능력이 줄어듭니다. 또 PREV와 NEXT는 한 번에 한 축에서만 작동하며, 수식 순서를 바꾸려면 잘라내기와 붙여넣기를 해야 합니다.

피벗 테이블과 비교

글은 Improv의 범주를 워크시트에서 직접 끌어 옮겨 데이터 보기를 바꾸는 기능을 피벗 테이블의 초기 형태로 다룹니다. 현대 스프레드시트의 피벗 테이블은 대개 원본과 분리된 결과 뷰를 만들며, 원본 변경 사항을 반영하려면 갱신을 요청해야 합니다. Improv에서는 여러 보기가 같은 기본 데이터를 직접 다룹니다. 글쓴이는 LibreOffice Calc와 비교해 Improv에서는 복잡한 데이터 모델을 생각한 구조대로 만들기 쉽다고 설명합니다. 반면 Calc의 피벗 테이블은 필터에서 일부 항목을 제외하는 기능을 제공하는 등 별도의 장점도 있다고 덧붙입니다.

Improv은 차트 작성을 위해 별도 앱인 Presentation Builder를 실행합니다. NeXT의 Display Postscript 덕분에 출력물을 PostScript 파일로 내보낼 수 있지만, 차트 편집 도구와 팔레트가 복잡하고 기본적인 텍스트 정렬 기능은 부족하다고 지적합니다. NeXT 버전에는 실행 취소와 스크립팅이 없고, 다른 프로젝트의 데이터를 참조할 수 없으며, 내보내기 결과도 수식과 관계가 보존되지 않는 값의 스냅샷입니다. 1993년 Windows판 Improv 2는 실행 취소와 LotusScript를 추가했지만 다른 제약은 남았습니다.

글은 Improv의 아이디어를 이어받은 Lighthouse Quantrix 2.3도 소개합니다. Quantrix에는 실행 취소, 수식 재배치, 스크립팅, 워크시트 간 범주 동기화와 여러 축에서 작동하는 상대 참조가 있습니다. 글쓴이는 Improv을 모두가 쓰는 범용 스프레드시트라기보다 엄격한 데이터 모델링을 위한 도구로 봅니다. 유연하게 표를 펼쳐 쓰는 일반적인 작업에는 불편하지만, 차원과 관계를 명시적으로 다루려는 사용자에게는 장점이 뚜렷하다는 판단입니다.

Lobsters 반응

  • @gecko — Improv 이야기는 오래전부터 들었지만 당시에는 NeXT 에뮬레이터가 없었고 중고 NeXTcube도 살 형편이 아니었습니다. 작동 방식과 장점을 이렇게 명확히 정리한 글을 보니 좋았고, 2026년에 이런 버전을 만드는 일이 얼마나 어려울지 궁금해졌습니다.
  • @koala — NeXT와 스프레드시트 대안을 함께 다룬 점이 좋습니다. 스프레드시트에는 피하기 어려운 큰 결함이 있지만 많은 사람은 다른 도구로 옮기지 않습니다. 관계형 데이터베이스를 좋아하는 입장에서 스프레드시트를 대신할 쉬운 도구를 오래 기다렸지만, Notion이나 Coda도 상황을 바꾸지 못한 것 같습니다. 언젠가는 VisiCalc보다 나은 도구가 나오면 좋겠습니다.
    • @calvin — 프로그래머가 스프레드시트를 개선하려면 정적 타입을 정하거나 격자 구조를 미리 설계하는 식의 선택을 요구하는 경우가 많습니다. 그러면 즉시 피드백을 주며 실험하는 장점이 사라지고, 보기 좋은 데이터베이스와 보고서 도구가 됩니다.
    • @koala — 스프레드시트를 다른 도구로 옮기는 일은 초기 비용이 큽니다. 게다가 스프레드시트만으로도 많은 일을 처리하므로 대안으로 전환할 이유가 충분하지 않은 경우가 많습니다.
    • @calvin — 사용자의 스프레드시트를 CRUD 웹 앱으로 교체하려는 프로젝트에 참여했는데, 사용자에게 원하는 기능을 물어도 결과가 실패하는 경우가 반복됐습니다. 사용자가 이미 자기 도구를 만들었기 때문입니다.
    • @koala — 반대로 레코드 회사에서 음반 메타데이터를 스프레드시트로 관리하다가 Spotify가 XML을 요구해 CRUD 앱으로 옮긴 경험도 있습니다. 다른 문제도 스프레드시트로 해결하기 어려워 앱이 맞는 선택이었고 몇 년간 잘 썼습니다. 다만 대부분은 다른 도구보다 스프레드시트로 더 많은 일을 처리할 수 있습니다.
  • @ploum — uBlock의 피싱 URL 차단 목록에서 해당 주소가 차단됩니다. 오탐인가요?
    • @gecko — 오탐입니다.

원문: Stone Tools / 번역·요약: Trawling