Spring 7기 프로젝트/모임 플렛폼 프로젝트
모임 플랫폼의 사용자 신뢰도 시스템과 성능 최적화
JuNo_12
2025. 7. 21. 21:14
들어가며
온라인 모임 플랫폼에서 사용자 간의 신뢰는 서비스 성공의 핵심 요소입니다. 낯선 사람들과 오프라인에서 만나는 특성상, 참가자들이 서로를 신뢰할 수 있는 지표가 필요했습니다. 이번 글에서는 모임 플랫폼에서 구현한 사용자 신뢰도 점수 시스템과 팔로우 기능의 성능 최적화 과정을 공유하겠습니다.
사용자 신뢰도 점수 시스템 설계
점수 체계 설계
사용자의 신뢰도를 객관적으로 측정하기 위해 다음과 같은 3가지 요소를 조합한 100점 만점 시스템을 설계했습니다.
- 평점 (60%): 다른 사용자들로부터 받은 평가의 평균
- 참석률 (30%): 신청한 모임 대비 실제 참석한 비율
- 활동도 (10%): 최근 3개월간 모임 참가 빈도
각 요소의 가중치는 사용자 신뢰도에 미치는 영향도를 고려하여 결정했습니다. 평점을 가장 높은 비중으로 설정한 이유는 실제 모임에서의 행동과 매너가 가장 중요한 신뢰 지표라고 판단했기 때문입니다.
구현 코드

평점 기반 점수 계산

참석률 기반 점수 계산

활동도 기반 점수 계산

평가 시스템의 신뢰성 보장
사용자 평가 시스템의 신뢰성을 위해 다음과 같은 검증 로직을 구현했습니다.
평가 제약 조건

모임 참가자 검증

팔로우 시스템 성능 최적화
기존 문제점
초기 언팔로우 기능에서는 User 엔티티를 통해 팔로우 관계를 삭제했습니다. 이 방식은 다음과 같은 문제가 있었습니다.
- User 엔티티와 연관된 모든 데이터를 로딩해야 함
- 불필요한 메모리 사용량 증가
- 응답 시간 지연
해결 방안
JPA의 @Modifying 쿼리를 활용하여 직접 삭제하는 방식으로 개선했습니다.


성능 개선 효과
- 메모리 사용량 감소: 불필요한 엔티티 로딩 제거
- 응답 시간 단축: 직접 삭제 쿼리로 인한 처리 속도 향상
- 동시성 향상: 락 경합 시간 감소
데이터 정합성 관리
팔로우 수 실시간 업데이트
User 엔티티에 followingCount와 followerCount 필드를 추가하여 실시간으로 관리합니다. 이를 통해 팔로우 목록 조회 시 별도의 COUNT 쿼리 없이 미리 집계된 값을 사용할 수 있습니다.

팔로우 목록 조회 최적화

마무리
이번 구현을 통해 다음과 같은 성과를 얻었습니다.
- 신뢰도 시스템: 객관적이고 공정한 사용자 평가 체계 구축
- 성능 최적화: 팔로우 시스템의 응답 속도 및 자원 효율성 개선
- 데이터 품질: 각종 검증 로직을 통한 시스템 신뢰성 향상
특히 사용자 신뢰도 점수 시스템은 모임 플랫폼의 핵심 차별화 요소가 될 것으로 기대됩니다. 모임 플랫폼에서 사용자 신뢰도와 성능 최적화를 고민하고 계신 분들에게 도움이 되었기를 바랍니다.