우아팝 개발 비하인드 스토리: 게임 보안, 결정론, 그리고 2,000명 동시 접속!

by DD
5개월 전
조회수 76

우아콘 2025에서 운영된 미니게임 우아팝(WOOWA POP!) 개발 과정에서 겪은 기술적 도전과 해결 과정을 다룸

결정론적 물리 엔진 구현을 위해 WASM 기반 엔진을 사용하고, 클라이언트-서버 간 교차 검증 구조를 설계함

2,000명 동시 접속 환경에서 로컬 메모리 캐싱CoW 패턴을 적용하여 리더보드 성능을 개선함

결정론적 물리 엔진의 설계

우아팝은 WASM 기반의 물리 엔진을 사용하여 클라이언트와 서버 간의 결정론을 확보했다. 구체적으로 Rust로 구현된 물리 엔진은 JavaScript의 Math 함수 의존성을 제거하고, 크로스 플랫폼에서 동일한 결과를 보장한다. 따라서 클라이언트-서버 교차 검증을 통해 게임의 무결성을 확보했다.

2,000명 동시 접속 환경에서의 리더보드 최적화

2,000명 동시 접속 환경에서 데이터베이스 병목 현상을 해결하기 위해 로컬 메모리 캐싱을 도입했다. 3초 간격으로 갱신되는 캐시는 CoW 패턴을 적용하여 데이터 일관성을 유지했다. 결과적으로 리더보드 API 응답 속도를 개선하고, 데이터베이스 부하를 줄였다.

게임 보안과 해킹 방지 전략

우아팝은 NP-Hard 수준의 물리 엔진을 통해 해킹을 방지했다. 사용자 입력 시퀀스를 기반으로 게임을 시뮬레이션하여 점수를 계산하고, 일방향 함수를 적용하여 해킹 비용을 높였다. 따라서 게임의 무결성을 유지하고, 공정한 경쟁 환경을 조성했다.

WOOWACON 2025 미니게임 WOOWA POP!