피드로 돌아가기
Hacker NewsHacker News
Frontend

Rust 기반 엔진과 .xlsx 호환성을 갖춘 Lotus 1-2-3 스타일 TUI 스프레드시트 설계

L123: A Lotus 1-2-3–style terminal spreadsheet with modern Excel compatibility

2026년 4월 27일5intermediate

Context

현대적 스프레드시트의 무거운 리소스 사용과 복잡한 UI로 인한 생산성 저하 문제를 해결하려는 시도임. DOS 시대의 고속 키보드 중심 워크플로우를 현대적 시스템 환경에서 재현하며 .xlsx 파일과의 상호 운용성 확보를 목표로 함.

Technical Solution

  • Engine Trait을 통한 추상화 레이어 설계로 IronCalc 엔진을 캡슐화하여 향후 계산 엔진 교체 가능성을 확보한 구조
  • l123-parse 모듈을 통해 Lotus 1-2-3 고유의 @SUM, .. 문법을 표준 Excel 문법으로 변환하여 하위 계산 엔진에 전달하는 전처리 파이프라인 구축
  • ratatui와 crossterm 기반의 UI 레이어를 엔진과 완전히 분리하여 Engine-agnostic한 렌더링 구조 설계
  • l123-core를 최하위 의존성 제로 레이어로 설정하여 타입 정의의 순수성을 유지하는 엄격한 계층형 아키텍처 적용
  • .tsv 기반의 Acceptance Transcripts를 도입하여 키 입력과 화면 상태 변화를 정밀하게 검증하는 테스트 자동화 체계 구축
  • UTF-8 기반 문자열 처리와 Sixel 이미지 지원을 통해 TUI 환경 내 Graph 렌더링 및 현대적 텍스트 표준 준수

1. 외부 라이브러리 의존성이 높은 핵심 로직은 Trait으로 추상화하여 교체 가능한 구조로 설계했는가

2. UI 레이어가 비즈니스 로직이나 데이터 엔진의 내부 타입에 직접 의존하지 않고 독립적으로 작동하는가

3. 복잡한 상태 전이가 발생하는 인터페이스의 경우 입력-출력 쌍을 기록한 트랜스크립트 기반의 회귀 테스트를 적용했는가

원문 읽기