피드로 돌아가기
Dev.toDatabase
원문 읽기
Source-less 대칭형 스키마 설계를 통한 다국어 콘텐츠 정합성 해결
There is no source language: a manifesto for symmetric multilingual content
AI 요약
Context
특정 언어를 Source로 설정하고 타 언어를 Overlay로 관리하는 기존 구조에서 UI 설정값에 따른 잘못된 Source Locale 매핑 발생. 엔티티나 필드 단위의 단일 Locale 가정이 실제 다국어 혼용 콘텐츠의 복잡성을 수용하지 못하는 아키텍처적 한계 노출.
Technical Solution
- 모든 (Entity, Field, Locale) 조합을 독립적인 Row로 관리하는 Symmetric Model 도입
- Source-Overlay 계층 구조를 제거하고
source_version_id를 통한 데이터 Lineage 기반 추적 체계 구축 superseded_by컬럼과 Partial Unique Index를 활용한 최신 버전 관리 및 이력 보존 구조 설계origin컬럼을 통해 Human 작성분과 MT 생성분을 구분하여 데이터 신뢰도 확보- 변경된 원본 Row에 종속된 MT Row만 정밀하게 타겟팅하여 무효화하는 Cascade Invalidation 구현
- Pydantic Literal 기반의 Locale 확장으로 DDL 변경 없는 유연한 언어 추가 구조 확보
실천 포인트
1. 다국어 시스템 설계 시 특정 언어를 '기준(Source)'으로 설정하는 계층 구조가 비즈니스 요구사항을 제약하는지 검토하십시오.
2. 데이터 간의 관계를 상위-하위 개념이 아닌 Lineage(계보) 관점으로 모델링하여 정합성 문제를 해결하십시오.
3. Partial Unique Index를 활용하여 데이터 이력을 유지하면서 최신 상태를 효율적으로 조회하는 패턴을 적용하십시오.
4. 변경 영향도를 최소화하기 위해 원본과 파생 데이터 간의 명시적인 연결 고리(ID 참조)를 구축하십시오.