N
Naver d2
July 28, 20251회
윈도잉(windowing) 기법을 적용한 고성능 표 컴포넌트 개발기

간단 소개
윈도잉 기법을 적용한 고성능 표 컴포넌트 Big Table 개발 과정을 소개하고, 성능 개선 및 자체 개발의 장단점을 분석합니다.
AI Summary
- 윈도잉 기법 소개
- 윈도잉 기법은 데이터를 창(window) 단위로 나눠 처리하는 기술이며, 데이터 스트리밍, 머신러닝, 컴퓨터 그래픽스, React 가상화 등에 활용됩니다.
- 데이터 스트리밍에서는 텀블링, 슬라이딩, 세션 윈도우 방식이 있습니다.
- React에서는 화면에 보이는 범위만 렌더링하여 성능을 최적화합니다.
- React 윈도잉 라이브러리 비교 및 Big Table 개발
- react-virtualized, react-window, @tanstack/react-virtual 라이브러리를 비교 분석했습니다.
- react-window의 div 기반 레이아웃 문제점과 네이버 로그 시스템의 복잡한 요구사항 때문에 Big Table 컴포넌트를 직접 개발했습니다.
- Big Table 설계 및 구현
- 필요한 데이터만 렌더링하고, 스크롤바가 바닥에 도달하면 데이터를 새로 적재하는 방식으로 구현했습니다.
- key 값을 활용해 불필요한 재렌더링을 방지하고, 뷰포트 높이, 행 높이, 행 개수를 이용해 렌더링 범위를 계산했습니다.
- Overscan을 통해 깜박임 이슈를 해결하고, Bottom Threshold를 통해 미리 데이터를 로딩했습니다.
- 컬럼 가상화, 고정 헤더/컬럼, 행 접기/펴기 기능도 구현했습니다.
- 자체 개발을 통해 성능 향상과 유연한 요구사항 대응이 가능했지만, 브라우저 메모리 제한으로 OOM 문제가 발생할 수 있습니다.
Next Feeds

Strands Agents 1.0 소개: 프로덕션에 간편하게 바로 적용 가능한 다중 에이전트 오케스트레이션
Strands Agents 1.0은 다중 에이전트 오케스트레이션을 간편하게 구축하고 프로덕션 환경에 적용할 수 있도록 지원하는 오픈소스 SDK다.
Strands Agents다중 에이전트오케스트레이션A2A세션 관리
2025. 7. 28.
AWS

피그마 플러그인을 통한 개발 생산성 끌어올리기
피그마 플러그인을 개발하여 tailwindcss 스타일을 자동 생성, 개발 생산성을 향상시키고 디자인 시스템을 효율적으로 관리합니다.
피그마 플러그인tailwindcss디자인 시스템개발 생산성정규식
2025. 7. 28.
크리에이트립

DDD를 Merchant 시스템 구축에 활용한 사례를 소개합니다
DDD 기반 Merchant 시스템 구축 사례를 통해 도메인 정의, 아키텍처, 팀 구성의 중요성을 강조하고, 콘웨이 법칙과의 연관성을 설명한다.
DDDMerchant 시스템클린 아키텍처콘웨이 법칙도메인 주도 설계
2025. 7. 28.
LY Corp

Amazon Q Developer를 사용하여 애플리케이션 복원력을 향상시키는 방법
Amazon Q Developer는 생성형 AI를 활용하여 애플리케이션의 복원력을 향상시키는 데 필요한 설계, 재해 복구, 테스트 및 아키텍처 개선을 지원합니다.
Amazon Q Developer복원력재해 복구고가용성FMEA
2025. 7. 28.
AWS

CDC 파이프라인 정합성 검사 Spark 잡 개발 - Part 1. 코드 설계편
카카오 CDC 파이프라인 정합성 검사 Spark 잡 개발 Part 1: 코드 설계. 컴포넌트 분리, 디자인 패턴 적용, 코드 스타일 자동화 방법을 소개합니다.
CDCSpark정합성 검사디자인 패턴Scala
2025. 7. 28.
카카오

CDC 파이프라인 정합성 검사 Spark 잡 개발 - Part 2. Spark 최적화편
CDC 파이프라인 정합성 검사 Spark 잡 개발 시 Spark 최적화 전략 및 데이터 소스별 접근 방식, 성능 문제 해결 노하우를 공유합니다.
SparkCDC최적화IcebergMySQL
2025. 7. 28.
카카오