핵심 요약
스포카가 기능 테스트로 전환하며 Hibernate 이슈, 트랜잭션 이벤트 흐름 문제를 실제 운영 환경에서 재현하고 Mock 기반 테스트의 한계를 극복해 안정성을 높인 경험을 공유합니다.
주요 경험
- 테스트 전략을 단위/통합에서 기능 테스트로 전환하고, 가이드 문서를 통해 팀의 공감대와 코드 일관성을 확보했습니다.
- Hibernate Lazy Loading, Flush, 그리고 TransactionalEventListener의 작동 순서를 실제 흐름에서 확인하고 문제를 해결했습니다.
- 내장 서버 기반의 기능 테스트 인프라를 구축하고 MockBean 제거로 실제 환경에 가까운 검증을 강화했습니다.
얻은 인사이트
- 실제 흐름에 가까운 테스트가 버그를 더 잘 드러낸다는 점을 확인했습니다.
- Mock 중심의 한계를 넘겨 사용자 관점의 검증이 유지보수성에 크게 기여했습니다.
- 트랜잭션 경계와 이벤트 소비 시점의 중요성을 팀 설계 의사결정에 반영해야 한다는 교훈을 얻었습니다.

