피드로 돌아가기
Getting Started With Seal Reports: Sharing Filters Across Multiple Models
Dev.toDev.to
Frontend

Shared Model 기반의 필터 로직 통합을 통한 전역 UI 상태 동기화 구현

Getting Started With Seal Reports: Sharing Filters Across Multiple Models

Vlad Ganușceac2026년 4월 13일2beginner

Context

다양한 UI 컴포넌트로 구성된 리포트 환경에서 각 모델별로 독립적인 필터링 로직을 정의함에 따른 중복 관리 문제 발생. 개별 모델의 필터 조건 불일치로 인한 데이터 일관성 결여 및 유지보수 효율 저하라는 한계점 존재.

Technical Solution

  • 필터 정의 전용 0.Shareable 모델을 구축하여 공통 제약 조건을 단일 지점으로 캡슐화
  • 개별 시각화 모델(DataTable, Charts)의 Reference model 옵션에 Shared 모델을 지정하는 상속 구조 설계
  • JobTitle, EmailAddress 등 11개 주요 필드에 대한 Contains 연산 기반의 전역 필터링 로직 일원화
  • Count Distinct 집계 함수를 적용한 NVD3 Pie/Bar 차트 모델과 Row Elements 기반 DataTable 모델의 분리 설계
  • 모델 계층 구조(View -> Widget -> Container -> Model)를 통한 UI 컴포넌트와 데이터 모델의 디커플링 달성

1. 공통 필터 조건이 3개 이상 중복될 경우 Shared Model 계층 도입 검토

2. 모델 명명 시 `

0.Shareable`과 같이 역할과 우선순위를 명시하는 Screaming naming 적용

3. UI 컴포넌트별 데이터 요구사항(집계 vs 상세)에 따라 Reference 모델을 공유하되 개별 모델의 Data Elements를 최적화

원문 읽기