Network Traffic Analysis with Process Mining: The UPSIDE Case Study

이 논문은 온라인 게임 네트워크 트래픽을 프로세스 마이닝을 활용해 비감독적으로 상태 분석하고 해석 가능한 페트리 넷으로 인코딩하여 클래시 로얄과 로켓 리그와 같은 게임들을 분류하는 UPSIDE 사례 연구를 제시합니다.

Francesco Vitale, Paolo Palmiero, Massimiliano Rak, Nicola Mazzocca

게시일 Tue, 10 Ma
📖 4 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

이 논문은 **"온라인 게임의 네트워크 트래픽을 분석해서, 어떤 게임을 하고 있는지 알아내는 새로운 방법"**을 제안합니다.

기존에는 인공지능 (딥러닝) 을 많이 썼는데, 이건 마치 **"검은 상자 (Black Box)"**처럼 결과가 나오기만 할 뿐, 그렇게 판단했는지 사람이 이해하기 어려웠습니다. 이 연구는 **"프로세스 마이닝 (Process Mining)"**이라는 기술을 써서, 마치 "게임의 행동을 지도로 그려서 누구나 볼 수 있게 만든" 방법을 개발했습니다.

이 내용을 일상적인 비유로 쉽게 설명해 드릴게요.


🎮 1. 문제 상황: 혼잡한 고속도로와 블랙박스

온라인 게임 (클래시 로얄, 로켓 리그 등) 을 할 때, 우리 기기에서 게임 서버로 수많은 데이터가 오갑니다. 이는 마치 복잡한 고속도로처럼 수많은 차 (데이터 패킷) 가 지나다닙니다.

  • 기존 방식 (딥러닝): "저 차들이 지나가는 패턴을 보면, 아마도 A 게임을 하고 있겠지!"라고 말해줍니다. 하지만 **"왜 A 게임이라고 생각했는지?"**에 대한 설명은 못 해줍니다. 마치 운전을 잘하는 AI 가 "저기서 오른쪽으로 돌아"라고만 하고, 그 이유를 설명하지 않는 것과 같습니다.
  • 이 연구의 목표: "이 차들이 어떻게 움직이는지, 어떤 규칙을 따르는지 사람이 이해할 수 있는 지도를 그려서, 그 지도를 보고 A 게임인지 B 게임인지 명확히 구분하고 설명해 주는 것"입니다.

🔍 2. 해결책: 프로세스 마이닝 (행동 지도 그리기)

연구진은 게임 데이터를 분석할 때 네 단계를 거칩니다.

① 감시 카메라 설치 (네트워크 모니터링)

게임 중인 사람들의 기기에서 들어오고 나가는 데이터 (패킷) 를 모두 기록합니다. 하지만 이 데이터는 너무 많고 지저분해서 그 자체로는 쓸모가 없습니다.

② 조각 내기 (특징 추출 & 윈도우링)

이 거대한 데이터 덩어리를 **작은 조각 (윈도우)**으로 잘라냅니다.

  • 비유: 긴 영화 필름을 10 초짜리 짧은 클립으로 자르는 것과 같습니다. 각 클립마다 "누가, 무엇을, 얼마나 보냈는지"를 기록합니다.

③ 행동 패턴 분류 (상태 특성화)

잘라낸 조각들을 보면, 게임 상황마다 데이터 흐름이 다릅니다.

  • 비유: 게임에서 "전투 중일 때", "메뉴를 볼 때", "채팅할 때"의 데이터 흐름은 다릅니다. 연구진은 **클러스터링 (군집화)**이라는 기술을 써서, 비슷한 패턴끼리 묶어서 **"상태 1, 상태 2, 상태 3..."**으로 분류했습니다.
    • 예: "상태 1 = 공격을 할 때의 데이터", "상태 2 = 상대방이 공격할 때의 데이터"

④ 지도 만들기 (네트워크 트래픽 모델링)

이제 각 상태별로 데이터가 어떻게 흐르는지 **Petri Net (페트리 넷)**이라는 그림으로 그립니다.

  • 비유: 각 상태마다 **"행동 지도"**를 그리는 것입니다.
    • "A 게임은 보통 '공격 → 확인 → 수비' 순서로 흐른다."
    • "B 게임은 '수비 → 반격 → 공격' 순서로 흐른다."
    • 이 지도는 사람이 눈으로 봐도 이해할 수 있는 형태로 그려집니다.

🧪 3. 실험 결과: 두 게임 구하기

연구진은 실제 **'UPSIDE'**라는 게임 행사에서 데이터를 가져와 실험했습니다.

  • 게임 A: 클래시 로얄 (전략 게임, 작은 패킷을 자주 보냄)
  • 게임 B: 로켓 리그 (액션 게임, 데이터 흐름이 다름)

결과:

  1. 지도의 정확성: 각 게임마다 그려진 '행동 지도 (Petri Net)'가 서로 확실히 달랐습니다. 마치 클래시 로얄의 지도는 '작은 섬'처럼 복잡하고, 로켓 리그의 지도는 '넓은 평야'처럼 단순했다는 식으로 구분되었습니다.
  2. 게임 구별하기: 이 지도들을 이용해 새로운 데이터가 들어오면, "이건 A 게임의 지도와 비슷하니 A 게임이야!"라고 88% 이상의 정확도로 맞췄습니다.
  3. 해석 가능성: 단순히 "A 게임이다"라고만 말하는 게 아니라, **"왜? 왜냐하면 이 게임은 '공격' 버튼을 누를 때마다 데이터가 이렇게 튀어 오르기 때문이다"**라고 설명할 수 있었습니다.

💡 4. 핵심 교훈 (창의적인 비유)

이 연구는 **"데이터의 양을 늘리는 것보다, 데이터의 흐름을 어떻게 정리하느냐가 중요하다"**는 것을 보여줍니다.

  • 너무 긴 창 (Window Length): 너무 긴 시간의 데이터를 한 번에 보면, 모든 게 뒤섞여서 **"무슨 게임인지 구별하기 힘든 거대한 소음"**이 됩니다. (비유: 1 시간짜리 영화를 한 프레임으로 보면 아무것도 안 보임)
  • 너무 단순한 상태: 상태를 너무 적게 나누면, **"모든 게임이 비슷해 보이는 평범한 지도"**가 됩니다.
  • 적당한 균형: 연구진은 **"적당한 크기의 조각 (윈도우)"**과 **"적당한 수의 상태"**를 찾았을 때 가장 잘 작동한다는 것을 발견했습니다.

🏁 결론

이 논문은 **"복잡한 게임 데이터를 사람이 이해할 수 있는 '행동 지도'로 변환하여, 어떤 게임을 하고 있는지 정확하게 찾아내고 그 이유도 설명해 주는 방법"**을 제시했습니다.

이는 단순히 게임을 감시하는 것을 넘어, 네트워크 관리자가 "왜 이 게임이 네트워크를 느리게 만드는지?"를 눈으로 확인하고 해결할 수 있게 해주는 매우 유용한 도구입니다. 마치 블랙박스 대신, 운전자가 직접 볼 수 있는 내비게이션 지도를 만들어준 것과 같습니다.