비지칼크(VisiCalc)의 복원 및 재구현

1979년 댄 브릭클린과 밥 프랑크스톤이 개발한 최초의 스프레드시트 '비지칼크(VisiCalc)'는 16K RAM의 Apple II 기기에서 100만 장 이상의 판매고를 올린 역사적인 소프트웨어입니다. 최근 이 고전 앱의 핵심 로직을 64개 열과 256개 행 규모의 데이터 모델과 재귀 하강 파서(Recursive Descent Parser)를 통해 현대적으로 재구현하려는 기술적 시도가 공유되었습니다.

AI 요약

스프레드시트는 지난 반세기 동안 데이터 관리의 표준으로 자리 잡았으며, 그 시작은 1979년 댄 브릭클린(Dan Bricklin)과 밥 프랑크스톤(Bob Frankston)이 개발한 '비지칼크(VisiCalc)'였습니다. 비지칼크는 수천 줄의 6502 어셈블리 코드로 작성되어 단 16K RAM을 가진 Apple II 컴퓨터에서 구동되었으며, 개인용 컴퓨터를 단순한 장난감에서 진지한 비즈니스 도구로 탈바꿈시키며 100만 장 이상 판매되었습니다. 본 기사는 이러한 비지칼크의 핵심 구조인 데이터 모델, 수식 평가기, UI를 최소 기능 제품(MVP) 형태로 재구현하는 과정을 상세히 다룹니다. 특히 현대의 엑셀과 달리 수식 접두사로 +를 사용하고 함수에 @를 사용하는 비지칼크만의 특징을 살려 재귀 하강 파서를 활용한 연산 로직을 설명합니다. 이를 통해 현대 스프레드시트의 근간이 된 기술적 원리를 되짚어보며 소프트웨어 디자인의 정수를 조명합니다.

핵심 인사이트

  • 역사적 의의: 1979년 출시된 비지칼크는 Apple II의 '킬러 앱'으로서 100만 장 이상의 판매고를 기록하며 PC 산업을 견인했습니다.
  • 하드웨어 제약: 초기 비지칼크는 단 수천 줄의 6502 어셈블리 코드로 작성되었으며, 16K RAM이라는 극도로 적은 메모리 환경에서 작동했습니다.
  • 그리드 규모: 현대 엑셀이 100만 개 이상의 행을 지원하는 것과 달리, 원조 비지칼크는 64개 열과 256개 행의 제한된 그리드 구조를 가졌습니다.
  • 특유의 문법: 현대의 = 접두사 대신 +를 수식 시작점으로 사용하며, 함수 호출 시에는 @SUM, @ABS@ 기호를 사용합니다.

주요 디테일

  • 데이터 모델: 스프레드시트는 각 셀이 값(숫자 또는 텍스트), 수식, 또는 빈 상태를 가질 수 있도록 정의하며 그리드 배열로 관리합니다.
  • 수식 파서 구조: expr(표현식), term(항), factor(인자) 단계로 이어지는 고전적인 '재귀 하강 파서'를 사용하여 수식을 실시간으로 계산합니다.
  • 오류 처리: 계산 중 발생하는 오류는 NAN(Not a Number)을 통해 처리하며, 이는 부동 소수점 연산 특성을 이용해 결과값까지 자연스럽게 전파되도록 설계되었습니다.
  • 함수 및 범위 지원: 단일 인자 함수(@ABS, @INT, @SQRT)뿐만 아니라 @SUM(A1...C3)와 같은 범위 연산 로직을 포함하여 구현되었습니다.
  • 참조 로직: 열 문자와 행 숫자를 조합한 셀 주소(예: AB123)를 파싱하여 그리드 내부 인덱스로 변환하는 기능을 갖추고 있습니다.

향후 전망

  • 교육적 가치: 고전 소프트웨어의 아키텍처를 현대적 언어로 재구현하는 시도는 주니어 개발자들에게 효율적인 리소스 관리와 파서 설계 원리를 가르치는 좋은 사례가 될 것입니다.
  • UX의 지속성: 반세기 전 정립된 스프레드시트의 UI/UX 모델은 현대의 클라우드 및 AI 기반 데이터 도구에서도 여전히 핵심적인 인터페이스로 생존할 전망입니다.
출처:hackernews
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...