유튜브블로그Top 10
내 프로필

데브허브 안내
소개업데이트 소식

데브허브 커뮤니티

Revision 테이블 설계와 JSON 구조

코딩하는오후

2025. 10. 5.

0

#db
#backend
  • 리비전 테이블은 백오피스 시스템의 변경 이력을 단순하게 저장하기 위해 별도로 운영됩니다. 📜
  • 변경 데이터는 JSONB 형태로 저장되어 검색 및 처리 성능을 향상시키고 인덱싱을 지원합니다. 🚀
  • 데이터베이스에 JSONB를 저장하기 위해 MyBatis 환경에서는 PostgreSQL 드라이버의 PGobject를 활용하는 커스텀 타입 핸들러가 필요합니다. 🛠️
  • 이벤트 모델(ChangeEvent, CreateEvent, ModifiedEvent 등)을 활용하여 비동기적으로 변경 이력을 리비전 테이블에 저장합니다. 📨
  • 생성 이벤트와 수정 이벤트에 따라 JSON 구조를 다르게 설계합니다. 생성 시에는 전체 엔티티를, 수정 시에는 propertyName, oldValue, newValue를 포함하여 변경 내역을 명확히 기록합니다. 🔄
  • 수정 이벤트의 JSON 구조는 나중에 변경 내역을 쉽게 비교하고 시각화할 수 있도록 돕는 오픈소스 라이브러리 활용을 염두에 둔 설계입니다. 💡
  • ChangeField라는 함수형 인터페이스 유틸리티를 사용하여 이전 객체와 새 객체를 비교하고 변경된 필드만 추출하여 JSON 형태로 변환합니다. 🔍
  • 리비전 테이블은 변경 이력을 누적하는 용도이므로 modifiedAt, modifiedBy 필드 없이 createdAt, createdBy 필드만 포함합니다. ⏳

Recommanded Videos