Skip to content

Conversation

@1Seob
Copy link
Collaborator

@1Seob 1Seob commented Jan 9, 2026

📝 요약(Summary)

기존 일간 리포트 생성 로직에서는 AnswerEntry 생성과 Pending DailyReport 생성을 각각 REQUIRES_NEW 트랜잭션으로 분리하고 있었습니다.
이로 인해,

  • 상위 트랜잭션 실패 시에도 일부 데이터가 커밋되는 부분 커밋 위험
  • prepare 단계에서 불필요하게 트랜잭션 경계가 쪼개져 정합성 추론이 어려운 구조
  • 동시 요청 시 find → save 패턴으로 인한 중복 생성 가능성
    이 존재했습니다.

변경 사항

  • AnswerEntry / Pending DailyReport 생성 로직에서 REQUIRES_NEW 전파 제거
  • 일간 리포트 prepare 단계를 단일 트랜잭션으로 묶어 원자성 보장
  • AnswerEntry, DailyReport에 DB 유니크 제약을 기반으로 중복 생성 방지
  • 동시 요청으로 유니크 제약 위반 발생 시, 재조회 방식으로 멱등 처리

🔗 Related Issue

  • Closes:

💬 공유사항

✅ PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • PR 제목을 커밋 메시지 컨벤션에 맞게 작성했습니다.

일간 리포트 준비 단계를 단일 트랜잭션으로 묶어 원자성 보장, DB 유니크 제약 기반 중복 생성 방지 및 멱등 처리 적용, 유니크 충돌 시 재조회 방식으로 동시 요청 안정성 개선
@1Seob 1Seob merged commit 9db2b34 into develop Jan 9, 2026
1 check passed
@1Seob 1Seob deleted the refactor/daily-report branch January 9, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants