- 모든 코드는 TDD(테스트 주도 개발) 방식으로 작성되었으며, 테스트 코드를 통해 이력 관리 구현 데모를 진행합니다. 🧪
- 비즈니스 도메인 엔티티는
Ent인터페이스를 구현하여getId()메서드를 반드시 오버라이드하며, ID가 없으면 예외가 발생하도록 설계되었습니다. 🛡️ - 이력 저장소(리비전 테이블)에 데이터를 저장하는 핵심 로직은
recordingChangeData메서드를 통해 SQLINSERT문으로 구현됩니다. 💾 - 리비전 테이블의 이력 데이터를 조회할 때는
lookup event를 활용하며, 이를 통해 저장된 변경 이력을 효율적으로 불러옵니다. 🔍 - 비즈니스 도메인에서 이벤트를 발행(
publishEvent)하면, 이력 관리 컴포넌트의 리스너(ChangeEventListener)가 이를 받아 리비전 테이블에 저장하는 이벤트 기반 아키텍처를 사용합니다. 🚀 - 디버깅을 통해
publishEvent시 발행된 이벤트(예:CreatedEvent)가 실제 리스너에 의해 정확히 처리되는 과정을 시각적으로 검증하여 이벤트 흐름의 유효성을 확인했습니다. ✅ - 이력 관리 컴포넌트는 범용적으로 재사용 가능하도록 설계되었으며, 개발자의 깊은 고민과 애정이 담긴 결과물입니다. ❤️
- 구현된 데모 소스 코드는 GitHub의 "Demo Auditing" 리포지토리 내
component/auditing/change경로에서 확인할 수 있습니다. 🔗





