엑셀이 1,048,576행과 16,384열을 가진 진짜 이유
엑셀의 그리드는 1,048,576행이나 XFD열의 경계에 도달할 때까지 끝없는 캔버스처럼 느껴집니다. 이러한 한계는 무작위가 아니며, 역사, 하드웨어, 이진 논리에 의해 형성된 디지털 벽입니다. 여기서 '빅 그리드'가 현재 크기를 가지게 된 이유와 2007년 이후로 왜 변하지 않았는지 설명합니다.
한계의 논리: 이진법의 유산
엑셀은 항상 이진수 언어를 사용해 왔습니다. 초기 시절에도 제한은 2의 거듭제곱으로 엄격하게 정해져 있었으며, 이는 소프트웨어가 데이터를 최대한 효율적으로 컴퓨터에 매핑할 수 있도록 해주었습니다.
레거시 병목 현상 (2007년 이전)
2007년 이전에 Excel은 XLS 이진 형식을 사용했습니다. 이 형식의 구식 아키텍처는 행과 열 참조를 위해 좁은 정수 필드를 사용하여 스프레드시트 시대의 처음 20년을 정의하는 한계선을 만들었습니다:
- 행: 2¹⁶=65,536
- 열: 2⁸=256 (열 IV에서 끝남)
오늘 오래된 XLS 파일을 열면 Excel이 호환 모드로 들어가며, 파일을 최신 XLSX 형식으로 변환하기 전까지 이러한 이전 제한이 계속 적용됩니다.
하지만 2000년대 중반쯤, 이 16비트 제한은 위기가 되었습니다. 데이터가 폭발적으로 증가하면서 분석가들은 데이터를 여러 탭에 나누어 처리할 수밖에 없었고, 그로 인해 데이터 통합은 악몽과 같은 일이 되었습니다.
2007년 확장
마이크로소프트가 2007년에 최신 XLSX 형식을 도입했을 때, 단순히 저장 공간을 늘린 것이 아니라 이진 인덱스를 크게 확장했습니다. 마이크로소프트는 특정 비트 주소 지정 이유를 공개하지는 않았지만, 한계를 문서화하고 있으며, 수학적으로는 현대 이진 경계와 일치합니다:
- 행: 2²⁰=1,048,576
- 열: 2¹⁴=16,384 (XFD에서 끝남)
이를 통해 총 170억 개 이상의 셀을 사용할 수 있습니다. 이러한 차원을 고정하면 플랫폼 간 호환성이 유지되고 '버전 혼란'을 방지할 수 있습니다. 컴퓨터의 RAM에 따라 크기가 조정되는 그리드를 사용하지 않음으로써, Microsoft는 스프레드시트가 단순히 다른 장치나 다른 버전의 소프트웨어에서 열렸다는 이유만으로 깨지거나 예상치 못하게 동작하지 않도록 보장합니다.
고층 건물 효과: 왜 행이 열보다 많은가
2²⁰ × 2¹⁴ 그리드는 매우 높은 직사각형을 만들어, 우리가 자연스럽게 데이터를 구조화하고 상호작용하는 방식과 일치하는 형태를 이룹니다.
높은 격자의 논리
데이터 과학에서 우리는 행을 레코드(예: 개별 거래나 사람)로, 열을 필드(날짜나 가격과 같은 속성)로 다룹니다. 대부분의 데이터셋은 자연스럽게 세로로 길며, 즉 속성보다 항목이 더 많습니다. 이 구조는 실제 사용에서도 강화됩니다—수직 스크롤링은 표준적이고 효율적인 작업 흐름이지만, 수천 개의 열을 탐색하는 것은 사용성 측면에서 악몽입니다.
성능 향상
컴퓨터 과학 관점에서 이 높은 구조의 잠재적인 부산물 중 하나는 성능 향상입니다. CPU는 데이터를 연속 블록으로 처리할 때 가장 효율적입니다. 실제 성능은 Excel의 독점적인 내부 메모리 구조에 따라 달라지지만, 수직 데이터 구조는 일반적인 계산 문제를 수행할 때 CPU가 RAM에서 인접한 데이터 블록을 얼마나 효율적으로 가져오는지를 나타내는 캐시 지역성 향상으로 혜택을 볼 수 있습니다.
숨겨진 엔진: 의존성 그래프
엑셀은 정적인 장부가 아닙니다—대신, 그것은 방향성이 있는 비순환 그래프이며, 부모 셀과 자식 셀의 복잡한 네트워크입니다. 셀을 연결하면 엑셀은 반드시 매핑하고 추적해야 하는 영구적인 의존성을 만듭니다. 예를 들어 10행의 가격을 변경하면 1,000,000행의 합계가 즉시 업데이트됩니다(또는 하드웨어 제약에 따라 가능한 한 빠르게 업데이트됩니다).
각 세포는 이 웹에 잠재적인 복잡성을 더합니다. 마이크로소프트가 정확한 숫자 제한에 대한 기술적 근거를 하나도 발표하지는 않았지만, 고정된 차원은 이 웹의 복잡성을 제한하는 데 도움이 되어 소프트웨어가 다양한 하드웨어에서 안정적이고 빠르게 작동하도록 보장합니다.
만약 그리드가 훨씬 더 크다면—예를 들어 1,000만 행이라면—셀 자체가 비어 있어도 이러한 관계를 관리하는 데 필요한 메모리가 표준 하드웨어의 한계를 쉽게 초과할 수 있습니다.
‘보이지 않는’ 그리드: 한계를 속이는 방법
엑셀의 한계에 부딪히는 것을 발견한다면, 이 한계가 실제로 존재하지 않는 '비밀 지하실'이 있습니다: 데이터 모델(Power Pivot)입니다.
데이터 모델 (파워 피벗)
2010년에 애드인으로 소개되었고 2013년에 기본 기능으로 통합된 Power Pivot은 VertiPaq 데이터베이스 엔진을 사용합니다. Power Pivot은 화면에서 보는 일반적인 행-열 형식의 그리드에 데이터를 저장하지 않고, 열 기반 압축(columnar compression)을 사용합니다. 각 열의 고유 값만 저장하고 그 위치를 매핑하기 때문에 수백만 행(또는 그 이상)의 데이터를 아주 작은 공간으로 압축할 수 있습니다. 덕분에 일반적인 Excel 파일도 수백만 행 이상의 데이터를 내부 메모리에 부담 없이 담을 수 있습니다.
창으로서의 그리드
데이터 모델을 사용할 때, 1,048,576행의 그리드는 더 이상 저장 컨테이너가 아니라 뷰잉 창이 됩니다. 1,000만 행을 백그라운드에 로드하고 피벗 테이블을 사용하여 요약하면, 요약된 셀이 보이는 그리드에 나타납니다. 이는 사실상 행 제한을 우회하지만, 실제 용량은 시스템의 사용 가능한 RAM과 데이터 복잡성에 따라 달라집니다.
워크시트 제한보다 많은 행이 있는 CSV 파일을 열면, Excel은 데이터를 잘라내고 워크시트 최대치까지만 가져옵니다. Power Query를 사용하여 데이터를 데이터 모델로 로드하면 이러한 잘림 현상을 완전히 피할 수 있습니다.
엑셀의 한계는 수학적 아름다움과 소프트웨어 공학의 물리적 현실이 만나는 지점을 나타냅니다. 이러한 한계는 단순한 제한이 아니라, 2007년의 노트북을 사용하든 2025년의 슈퍼컴퓨터를 사용하든, 스프레드시트가 기능적이고 안정적이며 빠르게 유지되도록 보장하는 하드코딩된 안전망입니다.




