1만 개의 작업에서 Angular Gantt가 느려지는 이유 (그리고 해결 방법)
(dev.to)대규모 데이터셋(1만 개 이상의 작업)을 처리할 때 Angular Gantt 차트가 급격히 느려지는 근본 원인은 과도한 DOM 노드 생성과 Angular의 변경 감지(Change가 발생할 때마다 전체 트리를 확인하는 비용)에 있습니다. 이를 해결하기 위해 가상 스크롤링(Virtual Scrolling)부터 OnPush 전략, 수동 변경 감지 및 DOM 재사용에 이르는 단계별 최적화 전략을 제시합니다.
이 글의 핵심 포인트
- 11만 개의 작업은 최대 10만 개의 DOM 노드를 생성하여 브라우저 렌더링에 심각한 과부하를 유발함
- 2성능 저하의 핵심 원인은 Angular 프레임워크 자체보다 과도한 DOM 노드 수와 변경 감지(Change Detection) 비용임
- 3가상 스크롤링(Virtual Scrolling)은 수직적 렌더링은 해결하지만, 수평적 복잡성이나 극단적인 대규모 데이터에는 한계가 있음
- 4OnPush 전략, trackBy 사용, runOutsideAngular를 통한 수동 변경 감지는 중규모 데이터 최적화의 필수 요소임
- 5최적화는 단순한 코드 수정을 넘어, DOM 노드의 존재 자체를 관리하는 아키텍처적 접근이 필요함
이 글에 대한 공공지능 분석
왜 중요한가
서비스의 확장성(Scalability)은 단순한 기능 구현을 넘어 제품의 생존과 직결됩니다. 프로토타입에서는 완벽했던 기능이 실제 대규모 데이터 환경에서 멈춘다면, 이는 사용자 이탈과 프로젝트 실패의 결정적 원인이 됩니다.
배경과 맥락
최근 SaaS 및 프로젝트 관리 도구의 복잡도가 증가하며, 브라우저가 수만 개의 DOM 요소를 관리해야 하는 고부하 환경이 빈번해지고 있습니다. 이는 프레임워크의 문제가 아닌, 브라우저 렌더링 엔진의 한계와 DOM 노드 관리 비용에 관한 기술적 도전 과제입니다.
업계 영향
성능 최적화 역량은 기술적 차별화 요소가 됩니다. 특히 실시간 데이터 업데이트가 중요한 협업 툴 시장에서, 대규모 데이터를 끊김 없이 처리하는 기술력은 제품의 신뢰도와 사용자 경험(UX)을 결정짓는 핵심 경쟁력입니다.
한국 시장 시사점
글로벌 시장을 타겟으로 하는 한국의 B2B SaaS 스타트업들은 초기 개발 단계부터 '성능 엔지니어링'을 고려해야 합니다. 기능 구현에만 매몰되지 않고, 데이터 규모 확장에 따른 렌더링 병목을 예측하고 대비하는 설계 능력이 글로벌 경쟁력을 확보하는 길입니다.
이 글에 대한 큐레이터 의견
많은 스타트업 창업자들이 '기능 구현'과 '성능 최적화'를 별개의 과제로 생각하는 경향이 있습니다. 하지만 대규모 데이터를 다루는 제품에서 성능은 단순한 '옵션'이 아니라 제품의 '핵심 기능(Core Feature)'입니다. 개발팀이 100개의 태스크에서 10,000개로 늘어날 때의 렌더링 비용을 미리 계산하지 않는다면, 서비스 출시 직후 겪게 될 성능 저하는 기술 부채를 넘어 비즈니스의 위기로 다가올 것입니다.
창업자 관점에서는 개발팀의 역량을 평가할 때, 단순히 '기능이 돌아가는가'를 넘어 '데이터 규모가 커져도 안정적인가'를 묻는 질문을 던져야 합니다. 가상 스크롤링이나 OnPush 전략 같은 최적화 기법은 구현 난이도를 높이고 개발 비용을 상승시키지만, 이는 제품의 생존을 위한 필수적인 투자입니다. 기술적 한계를 미리 인지하고, 필요하다면 Canvas 기반 렌더링 도입과 같은 근본적인 아키텍처 변화를 결정할 수 있는 유연한 엔지니어링 전략이 필요합니다.
관련 뉴스
댓글
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.