핵심 요약
잡코리아가 SD-UI 도입의 변경 이력을 2-Tier 아키텍처로 관리하고, 이력과 캐시 배포 이력을 구분해 DiffData로 필드 변경까지 추적하는 솔루션을 도입했습니다.
구현 방법
- Spring Event 기반 비동기 이력 저장, AFTER_COMMIT으로 트랜잭션 커밋 후 처리
- History(변경 이력)와 CacheSyncHistory(배포 이력) 두 계층의 분리 구조
- JSON 스냅샷(jsonb) 저장 및 변경 필드 목록(diffData, 배열) 저장
- SiteType 기반 멀티테넌트 및 MapStruct를 활용한 2-layer 매핑
주요 결과
- 이력 저장 실패가 비즈니스 로직에 영향을 주지 않는 안전한 설계
- AFTER_COMMIT 및 REQUIRES_NEW로 트랜잭션 독립성 확보
- DiffData를 통한 필드 단위 변경 추적 및 증분 배포 판단에 기여
- 사이트별 독립 배포 관리로 멀티테넌트 운영 강화