./projects/chat-assignment-lockavailable
completed

㈜위메프/큐텐테크놀로지(유) / W-Service Dev. Division W-Member Dev. Team

챗봇/채팅 상담 서비스 기술 결함 추적 및 해결

사용자 문의로 상담원 채팅 연결 시 고질적으로 발생하는 문제, 사용량 감소로 인해 서비스 종료 검토 요청 접수. 발생하는 문제를 종류/빈도 별 수집하여 기술적 결함 추적 및 해결

기간
2023.08 ~ 2023.09 (1개월)
역할
개발
인원
1인
기술
Kotlin(Spring webflux), node.js(meteor.js), Redis, MongoDB, Jenkins

핵심 수치

일일 중복 할당
10건+ → 0건

git log --oneline

주요 업무

  • 대기 상담이 있을 경우 채팅 상담사에게 상담이 할당되는 과정에서 중복 할당, 할당 지연이 발생
  • Redis 분산 락을 이용한 중복 할당 방지 로직이 있으나 정상 동작하지 않는 문제점 파악
  • 비동기 처리(webflux) 특성으로 인한 동일 thread ID를 부여 받을 경우 중복으로 Lock을 획득하는 문제점 확인
  • Lock 획득/해제 시 thread ID가 다르기 때문에 지속적으로 오류가 발생하는 문제점 발견
  • Lock 획득/해제 시 진입 시점에 저장한 thread ID를 통해 획득/해제 시도하도록 로직 개선
  • 동일 thread ID로 진입한 호출을 방어하기 위해 최초 Lock 획득 시도 전 획득된 Lock 의 존재 여부 파악 로직 추가
  • Kotlin
  • Spring webflux
  • Redis
  • MongoDB

cat result.md

프로젝트 성과

  • 서비스 런칭(2020년) 시점부터 발생하던 상담 중복 할당, 지연 문제 해결로 시스템 신뢰도 개선.
  • 일일 중복 할당 발생 횟수 10건 이상 -> 0건.
  • 챗봇/채팅 상담(위메프톡) 서비스 지속 이용으로 시스템 종료에 들어갈 인력, 신규 또는 기존 운영 중인 시스템의 개발 비용 절감

cat lessons.md

경험 및 성장

분산 락을 통한 동시성 제어 매커니즘 파악, webflux + 분산 락을 이용한 시스템의 트러블 슈팅 경험