피드로 돌아가기
The worked example that disagreed with its own calculator
Dev.toDev.to
Frontend

데이터 중복 제거와 SSG 기반 Single Source of Truth 구현으로 데이터 불일치 완전 해소

The worked example that disagreed with its own calculator

Mark2026년 6월 17일6intermediate

Context

동일한 계산 결과값이 위젯, 테이블, 예시 문구, FAQ 등 4개 지점에 수동으로 입력되어 관리됨. 서로 다른 가설과 수동 입력 방식에 따른 데이터 드리프트 현상으로 인해 동일 프로젝트 내에서 최대 $5,500의 수치 불일치 발생.

Technical Solution

  • calculate() 함수를 유일한 데이터 생성지로 정의한 Source-first 아키텍처 설계
  • Next.js의 Static Export 기능을 활용하여 빌드 타임에 모든 파생 데이터를 생성하는 SSG 구조 채택
  • 수동 입력 테이블을 특정 범위의 sqft 값을 인자로 하는 calculate() 함수 맵핑 결과물로 대체
  • 텍스트 내 수치를 하드코딩하지 않고 빌드 시점에 계산된 변수를 참조하도록 템플릿화
  • 데이터의 신뢰성 확보를 위해 출처, 참조 일자, 검토 기한을 포함한 provenance 객체 도입
  • 정성적 분석이 필요한 '이유' 영역과 정량적 '수치' 영역을 분리하여 데이터 자동화 범위 최적화

1. 동일한 수치가 페이지 내 2곳 이상 노출될 경우, import 구조인지 재입력 구조인지 확인

2. 데이터 동기화 문제를 관리적 규율이 아닌 빌드 타임 제약 조건(Impossibility-of-drift)으로 해결 가능한지 검토

3. 휘발성 데이터(Perishable fact)의 경우 반드시 reviewBy 날짜를 포함하여 데이터 생명주기 관리

4. 단일 소스화로 인한 '일관된 오류' 위험을 방지하기 위해 데이터 출처(Provenance) 명시 체계 구축

원문 읽기