Skip to content

Conversation

@choyeongju
Copy link
Member

@choyeongju choyeongju commented Nov 27, 2025

Related issue 🛠

Work Description ✏️

  • Flyway 마이그레이션 추가

    • V2__add_unique_diary_user_written_date.sql
    • diary(user_id, written_date) 조합에 유니크 제약(uk_diary_user_written_date) 생성
  • 기존 dev/prod는 이미 baseline 적용된 상태 → V2만 정상 적용됨

  • 같은 날짜 일기 중복 저장 요청 race condition 방지

    • Diary 엔티티에 @table(uniqueConstraints=...)로 유니크 제약 선언 추가
    • DB 유니크 제약으로 race condition 상황에서도 확실하게 중복 저장 차단
  • 동시 요청 시 두번째거 일기 저장하려 할 때 기존에 있던 예외 반환

    • "HttpStatus.CONFLICT, 40901, "해당 날짜에 이미 작성된 일기가 있습니다."
  • 피드 조회 시 혹시나 발생하는 중복 저장된 일기 중 하나만 조회되도록 distinct 키워드 추가

Screenshot 📸

설명 사진
V2 마이그레이션 정상 작용 로그 image

예전에 올린 Flyway 도입 PR에서 테스트한다고 만들었던 V2마이그레이션이 local에만 남아있어서, 지우고 다시 적용해서 v1,v2 둘 다 적용된 모습입니다.

Uncompleted Tasks 😅

N/A

To Reviewers 📢

  • 기존에는 빠른 더블탭 / 재시도로 인해 같은 날짜 일기가 여러 개 생성되는 race condition 문제가 있었습니다.
  • flyway V2 파일 작성했습니다.
  • prod db에 있는 유저의 충돌 row 수동 삭제하겠습니다.

@choyeongju choyeongju self-assigned this Nov 27, 2025
@choyeongju choyeongju requested a review from a team as a code owner November 27, 2025 15:25
@choyeongju choyeongju added 🔧FIX🔧 Something isn't working 🐰영주🐰 labels Nov 27, 2025
@choyeongju choyeongju merged commit d3c2933 into develop Dec 3, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐰영주🐰 🔧FIX🔧 Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[fix] 같은 날짜에 대해 일기 중복 저장 방지

3 participants