Skip to content

[refactor/#383] 게시글 조회수 증가 원자적 업데이트 적용#386

Merged
Dimo-2562 merged 5 commits into
developfrom
refactor/#383
May 7, 2026
Merged

[refactor/#383] 게시글 조회수 증가 원자적 업데이트 적용#386
Dimo-2562 merged 5 commits into
developfrom
refactor/#383

Conversation

@Dimo-2562
Copy link
Copy Markdown
Contributor

❤️ 기능 설명

  • ReadPostCommandService의 조회수 증가 경로를 PostCommandService / PostRepository의 SQL atomic update로 전환했습니다.
  • Post.incrementViewCount()는 production 경로에서 제거하고, 조회수 증가는 atomic update를 canonical write path로 정리했습니다.
  • atomic update 결과를 boolean 계약과 로그로 명확히 하고, 관련 테스트/문서도 함께 최신화했습니다.
  • PostRepositoryTest는 기능별 1단 @Nested 구조로 정리했고, 같은 기능 안에서 V1 → V2 순서로 재배치했습니다.
  • isFirstRead race / idempotency 문제는 이번 PR 범위에서 제외했고 후속 이슈 #385로 분리했습니다.

테스트

  • ./gradlew test --tests 'com.techfork.activity.readpost.application.command.ReadPostCommandServiceTest' --tests 'com.techfork.domain.post.service.PostCommandServiceTest' --tests 'com.techfork.domain.post.repository.PostRepositoryTest'
  • PostControllerV2IntegrationTest는 로컬 검증을 위해 MySqlRedisIntegrationTestBase로 일시 전환해 성공 확인 후, 현재 코드에는 IntegrationTestBase로 원복했습니다.

CLI 환경이라 swagger 테스트 스크린샷 대신 실행 명령과 결과를 기재했습니다.


연결된 issue

연결된 issue를 자동으로 닫기 위해 아래 {이슈넘버}를 입력해주세요.

close #383



🩷 Approve 하기 전 확인해주세요!

  • #385(ReadPost 최초 읽기 판별 race condition 방지)는 이번 PR 범위에서 제외했습니다.
  • PostCommandService의 atomic update 경로를 production canonical path로 유지할지 확인 부탁드립니다.

✅ 체크리스트

  • PR 제목 규칙 잘 지켰는가?
  • 추가/수정사항을 설명하였는가?
  • 테스트 결과 사진을 넣었는가?
  • 이슈넘버를 적었는가?

@Dimo-2562 Dimo-2562 self-assigned this May 7, 2026
@Dimo-2562 Dimo-2562 added 🌟 REFACTOR 리팩터링 (기능 변화 X) 📝 domain:post 게시글 관련 🎯 domain:activity 사용자 활동 관련 (읽은 게시글, 북마크, 검색 히스토리) labels May 7, 2026
@Dimo-2562 Dimo-2562 merged commit cf760f8 into develop May 7, 2026
1 check passed
@Dimo-2562 Dimo-2562 deleted the refactor/#383 branch May 7, 2026 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🎯 domain:activity 사용자 활동 관련 (읽은 게시글, 북마크, 검색 히스토리) 📝 domain:post 게시글 관련 🌟 REFACTOR 리팩터링 (기능 변화 X)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REFACTOR] Post viewCount 증가 atomic update 도입

1 participant