1. 개요

1900년~2050년 범위를 지원하는 음력-양력 변환 엔진을 제작하고, 이를 3대 플랫폼(Excel, Hancom Cell, GSS)에 이식·테스트하며 발견한 플랫폼별 연산 엔진의 결함과 구조적 차이점을 다룹니다.

 

2. 날짜 시스템의 '가불기': 1900년 2월 29일 버그

엑셀의 역사적 오류인 '1900년 윤년 버그'에 대한 플랫폼별 대응 방식 차이로 인해, 특정 구간에서의 데이터 동기화가 물리적으로 불가능함을 확인했습니다.

  • Excel: 과거 로터스 1-2-3와의 호환성을 위해 1900년 2월 29일을 실재하는 날로 처리(Serial 60).

  • Hancom Cell: 엑셀의 메커니즘을 그대로 복제하여 동일한 특성을 보임.

  • Google Sheets (GSS): 1900년 1월 1일의 시작 시리얼 넘버를 2로 정의. 이를 통해 3월 1일(Serial 61)부터 엑셀과 동기화되도록 설계함.

[분석 결과] 이러한 설계 차이로 인해 1900년 1월 1일~2월 29일 구간은 '숫자로 된 날짜'로 제공할 경우 플랫폼 간 '타협 불가능한' 구간이 됩니다. 결과적으로 GSS 환경에서의 안정적인 서비스 범위를 1903년 1월 1일 이후로 제한할 수 밖에 없을 거 같습니다.

 

3. 부동소수점 정밀도 결함: 한셀의 '데이터 표류(Drift)' 현상

연산 정밀도 면에서 엑셀과 GSS는 안정적이나, **한셀(Hancom Cell)**에서 치명적인 결함이 발견되었습니다.

  • 현상: 약 500~600일 주기로 날짜 연산 결과가 하루씩 밀리는 현상 발생.

  • 원인: 내부 연산 엔진의 부동소수점 처리 정밀도 부족. LLM 분석 결과, 누적 연산 시 '숫자가 흘러내리는(Floating-point Drift)' 현상으로 판명되었습니다.

  • 대응: 정밀도 한계를 극복하기 위해 기존 압축 로직을 다운그레이드하고, 보정 주기를 단축하는 부품 교체 작업을 진행 중입니다.

 

4. 속도 문제

엑셀에서 1초당 16만 건을 처리하는 로직 기준으로 퍼포먼스 테스트를 진행한 결과입니다.

  • 한셀: 엑셀보다 25배 느림.

  • GSS: 엑셀보다 약 30배 느림. (웹 환경 특성상 테스트 편차가 큼)

 

5. 함수 라이브러리의 호환성: PRODUCT 배열 처리

수식 최적화를 위해 사용된 핵심 함수인 PRODUCT의 배열 처리 방식에서도 차이가 극명했습니다.

  • Excel:SUMPRODUCT와 유사하게 배열을 자동 연산함.

  • GSS & 한셀: 배열 자동 처리가 불가능하여 별도의 INDEX 처리가 강제됨. 

 

가장 뼈아픈 건 한셀 유저를 위해 시작한 작업인데, 정작 한셀이 로직을 감당 못한다는 점입니다. 결국  성능을 낮추는 고통스러운 선택을 할 수 밖에 없었습니다.


LLM에게 데이터와 요약본 주고 그걸 다시 다듬은 방식으로 쓴 글입니다.