Skip to content

Conversation

@parkmineum
Copy link
Collaborator

@parkmineum parkmineum commented Feb 19, 2025

#️⃣연관된 이슈

#96

📝작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)



image image

[투표 기능]
Redis의 분산 락과 캐싱을 활용하여 투표 생성 시 성능을 최적화하였습니다. 락을 사용하여 동시 투표를 방지하고, 캐싱을 통해 불필요한 DB 조회를 최소화하여, 실시간 투표 성능을 개선하였습니다.



[투표 결과 조회 기능]
기존 방식은 유저 목록을 조회 후 각 사용자에 대한 투표 정보를 가져오는 과정에서 여러 번의 DB 호출이 있었고,
여행 계획에 속한 모든 유저를 조회한 후, 각 사용자의 투표 정보를 조회하는 방식이므로 N+1 문제가 발생할 가능성이 높았지만,

이를 QueryDSL 를 통해 DB 호출 횟수를 한 번으로 줄였고, 필요한 데이터만 추출함과 동시에 실시간 조회 성능도 개선할 수 있었습니다.


스크린샷 (선택)

💬리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

@parkmineum parkmineum added the ♻️ REFACTOR 코드 리팩토링 label Feb 19, 2025
@parkmineum parkmineum self-assigned this Feb 19, 2025
@parkmineum parkmineum changed the title [refactor] 투표 기능 동시성 처리 및 성능 개선 (Redis, QueryDSL) [refactor] Redis, QueryDSL를 통한 투표 기능 동시성 처리 및 성능 개선 Feb 19, 2025
@parkmineum parkmineum changed the title [refactor] Redis, QueryDSL를 통한 투표 기능 동시성 처리 및 성능 개선 [refactor] Redis, QueryDSL를 이용한 투표 기능 동시성 처리 및 성능 개선 Feb 19, 2025
@parkmineum parkmineum merged commit 8c20884 into dev Feb 20, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

♻️ REFACTOR 코드 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants