Back to Portfolio
Metaverse Project : ON

Metaverse Project : ON

비대면 학습 환경에서 상호작용 지연 문제를 줄이고 안정적인 실시간 동기화를 구현한 프로젝트입니다.

Statuscompleted
Team Size4

Case Study

문제점

메타버스 환경에서 다수의 유저가 동시에 이동할 때, 실시간 좌표 정보를 RDB에 매번 저장하면서 Disk I/O 병목과 Row Lock 경합이 발생하여 동시 접속 시 최대 5.6초의 지연이 발생하였습니다.

해결책

빈번하게 변경되는 휘발성 데이터인 유저 위치 좌표를 Redis로 분리하며, 실시간 처리에 특화된 In-Memory 구조로 아키텍처를 재설계하였습니다.

주요 기술적 성과

  • - Redis 기반 실시간 좌표 처리로 성능 45배 개선: RDB 대비 최대 지연 시간을 5,646ms에서 126ms로 단축하였으며 동시 접속 100명 기준 실시간 좌표 동기화 지연을 0.2초 미만으로 개선하였습니다.
  • - Lua Script 기반의 원자적 동시성 제어: Redis의 싱글 스레드 특성과 Lua Script를 활용해 Stateless 환경에서도 세션의 원자성과 데이터 정합성을 보장하였습니다.
  • - 세션 및 생명 주기 관리 프로세스 설계로 더미 데이터 제거: Heartbeat 기반 TTL 갱신으로 비정상 종료(강제 종료, 탭 종료) 유저를 자동 감지하며 TTL 만료 시 Keyspace Notification와 Scheduler를 결합하여 고스트 유저 및 고아 데이터를 정리하였습니다. 또한 방, 유저, 위치 정보 간 생명 주기를 일관되게 관리하여 Redis 메모리 누수 및 잘못된 방 노출 문제를 해결하였습니다.

기술 상세

실시간 좌표 처리와 세션 생명 주기 관리를 분리해 확장성과 안정성을 동시에 확보했습니다.

Image Example

Live Demo See on GitHub