닥터킴의 연구소

[커피런] 패치 노트 v1.3.1 - 메모리 누수 문제 해결 본문

1인개발

[커피런] 패치 노트 v1.3.1 - 메모리 누수 문제 해결

drkim7 2025. 8. 5. 11:17

[주요 개선사항]

1. 메모리 누수 문제 해결

연속 게임 플레이 시 발생하던 성능 저하 문제를 근본적으로 해결했습니다.
 
문제점

  • 게임을 여러 번 반복할 때 Lottie 애니메이션 인스턴스가 메모리에 누적
  • DOM 요소와 이벤트 리스너가 정리되지 않아 점진적 성능 저하 발생
  • 모바일 환경에서 3-4회 게임 후 현저한 랙 현상
게임 연속 플레이시 메모리가 누적되어 랙이 발생하는 문제.

 
 
해결 방법

[cleanupResources() 함수 구현]
- Lottie 애니메이션 인스턴스 완전 파괴
- DOM 참조 해제 및 메모리 정리
- 이벤트 시스템 초기화

 
기술적 개선사항

  • resetGame() 함수에 window.location.reload() 적용
  • 게임 초기화 시점에서 선제적 메모리 정리 실행
  • 메모리 사용량 모니터링 기능 추가

2. 성능 모니터링 추가

// 메모리 사용량 실시간 추적
if (window.performance && window.performance.memory) {
    console.log(`JS Heap: ${Math.round(m.usedJSHeapSize/1024/1024)}MB`);
}

[기술적 세부사항]

1. 메모리 정리 프로세스

  • Lottie 인스턴스 정리: 게임 캐릭터 및 프리뷰 애니메이션 destroy
  • DOM 요소 정리: 레이스 트랙 및 동적 생성 요소 제거
  • 상태 초기화: 플레이어 배열 및 이벤트 시스템 리셋
  • 페이지 새로고침: 완전한 메모리 초기화 보장

2. 호환성

  • 모든 주요 브라우저 지원
  • 모바일 환경 최적화 유지
  • 기존 게임 로직 변경 없음

[사용자 경험 개선]

Before 

  • 3-4회 게임 후 애니메이션 끊김
  • 모바일에서 심각한 성능 저하
  • 브라우저 새로고침 필요

After 

  • 연속 게임 가능
  • 일정한 성능 유지
  • 자동 메모리 관리
연속 플레이 시에도 메모리가 누적되지 않고 쾌적하게 게임 가능

[개발 환경]

환경: Vanilla JavaScript, Lottie.js
배포: GitHub Pages
테스트: Chrome, Safari, Mobile WebView


커피런 바로가기: https://coffeerun.kr

[커피런] - 신개념 커피내기 게임

1분만에 끝나는 재미있는 커피내기 게임! 회사나 친구들과 함께 누가 커피를 살지 정해보세요.

coffeerun.kr

 
이제 회사에서 더욱 원활한 커피 내기 게임을 즐기세요! ☕