2008/08/27 23:34
Big Grid
엑셀 2007은 이전 버전에 비해 인터페이스 말고도 여러 부분의 개선이 이루어졌습니다. 사실, 기능만으로 따진다면 이전 버전과 크게 달라진 것이 별로 없다고 볼 수도 있습니다. 하지만 내부적으로 여러 가지 제약사항들이 완화되어 이전 버전의 제한 영역에서 생기던 오동작이 많이 줄어들었습니다.
하지만 엑셀의 제한이 완화되었다고 해서 데이터 크기가 커지는 속도가 완화된 것은 아닙니다. 물론, 엑셀 2007의 모든 셀을 가득 채울만한 거대한 데이터는 엑셀 대신 다른 처리 방법을 고안하는 것이 맞지만, 엑셀만큼 편리한 데이터 처리 도구가 많지 않습니다.
엑셀 2007은 분명 (2^14) * (2^20) 크기의 커다란 스프레드시트 전체에 데이터를 넣어도 제대로 동작해야 합니다. 물론, 모든 셀에 데이터를 넣는다고 해서 즉시 제한 영역에서 일어나는 오동작이 일어나지는 않지만, 다른 세부 제한 때문에 엑셀 2007에서 기존 엑셀 2003에서 사용하는 것보다 아주 큰 데이터를 처리하는데 엑셀을 완전히 신뢰할 수 없습니다.
대부분의 문제는 이전 버전에서 개수로 제한을 두던 사항들이 엑셀 2007에서 개수 제한 대신 메모리 한계만큼 가능하도록 제한을 푼 것에서 일어납니다. 엑셀은 계산 속도 단축을 위해 무조건 잔체 셀을 계산하지 않습니다. 그래서 워크시트에 아주 많은 계산들이 엉켜있어도 쉽사리 느려지지 않는데요, 약 8000개 정도의 다른 셀을 참조하는 계산을 계산하지 않은 상태로 유지할 수 있습니다. 처리하지 않은 계산이 제한을 넘으면 그때서야 엑셀이 잠깐 얼어붙어 전체 계산을 수행합니다.
그런데, 엑셀 2007에서는 이런 제한들이 '메모리가 허락하는 만큼'으로 변경되었습니다. 메모리를 많이 꽂으면 꽂을수록 계산을 나눠서 할 수 있으니 더 빠르다고 생각할 수 있지만, 오히려 처리되지 않은 계산이 늘어나면 셀을 참조하는 과정에서 오동작이 생깁니다. 수식이 들어있는 셀을 새로 고치면 이 셀에 종속된 모든 셀의 계산을 처리해야 하고, 종속된 셀을 처리하는 과정에서 이 셀을 복사해서 만든 다른 셀의 계산도 수행하는 것이 정상이지만, 오동작이 많이 발생합니다. 그래서 가끔씩 워크시트 전체를 수동으로 리빌드 해야 합니다. 처리량이 많다면 엑셀이 한참 얼겠죠.
또, 이전 버전에서 2048개로 제한되어 있던 한번에 복사하거나 붙여넣을 수 있는 필터링 된 셀의 영역 수도 엑셀 2007에서는 '메모리 한계만큼'으로 변경되었는데, 덕분에 이번에도 아주 많은 셀을 옮길 때 문제를 일으킵니다. 필터링 된 상태를 복사했지만 실제로는 필터링 되어 있지 않거나, 필터링 된 데이터의 일부만 복사되거나, 리소스가 부족하다는 에러를 내고 작업이 수행되지 않기도 합니다. 이 상황들이 무작위로 일어나지요.
The Big Grid - 엑셀 2007 - 가 많은 데이터를 처리할 때 일어나는 여러 가지 문제점들이 엑셀 자체의 문제일지, 아니면 엑셀 2007의 워크시트 전체를 사용하려면 이제 32비트 윈도우에서 처리할 수 있는 메모리보다 더 많은 메모리가 필요한 것일지는 잘 모르겠습니다. 하지만, 적어도 32비트 환경과 2기가 정도의 메모리에서는 엑셀 2007이 제시하는 처리 가능한 데이터의 양을 신뢰할 수 없고, 데이터의 처리 결과나 작업 과정도 신뢰할 수 없는 상황이 많았습니다.
엑셀 2007은 분명 엑셀 2003보다 더 많은 데이터를 처리할 수 있도록 만들어졌지만, 아직 아주 큰 데이터를 원활하게 처리할만큼 엑셀 자체가 안정적이지 않고, 그 정도의 데이터를 처리하기 위해서는 32비트 윈도우의 한계에 도달하지 않았나 싶습니다.
2003, 2007, the Big Grid, 엑셀
