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 + 분산 락을 이용한 시스템의 트러블 슈팅 경험