피드로 돌아가기
Dev.toFrontend
원문 읽기
소스코드 유실 상태의 Flash 앱을 TypeScript 기반 HTML5로 완전 재설계 및 마이그레이션
Legacy Flash to Modern HTML5: A Developer's Migration Guide
AI 요약
Context
브라우저의 Flash 지원 중단으로 인해 기존 ActionScript 기반 레거시 애플리케이션의 기술적 부채가 임계점에 도달함. 특히 원본 소스코드 유실 상황에서 단순 포팅이 아닌 동작 기반의 현대적 웹 아키텍처로의 전환이 필요함.
Technical Solution
- JPEXS Decompiler를 통한 바이트코드 분석 및 동작 명세서(Behaviour Specification) 구축을 통한 Black-box 참조 모델링
- Flash의 Frame-based Timeline 모델을 TypeScript 기반의 모듈형 이벤트 구조로 전면 재설계
- 렌더링 성능 최적화를 위해 Phaser 및 PixiJS를 채택하여 Flash의 Display List 모델을 효율적으로 구현
- Vector 자산을 최적화된 Sprite Sheets로 변환하여 Draw Call 횟수 및 리소스 다운로드 크기 최소화
- 저사양 교육용 기기(Chromebook, RAM 2-4GB) 환경을 고려한 공격적 자산 압축 및 Web Audio API 기반의 저지연 오디오 설계
- Frame-based timing을 Time-based timing으로 변경하여 브라우저 환경에서의 애니메이션 일관성 확보
실천 포인트
1. 소스코드 유실 시 디컴파일 결과물을 구현 코드가 아닌 '동작 참조용'으로만 활용하고 로직은 새로 작성할 것
2. 타겟 하드웨어의 최저 사양(Worst-case)을 기준으로 성능 버짓(Performance Budget)을 설정할 것
3. 레거시 실행 모델과 현대적 런타임의 차이(Timeline vs Event-loop)를 분석하여 아키텍처를 재설계할 것
4. 단순 이미지 변환보다 Sprite Sheet 적용을 통해 GPU 렌더링 부하를 줄일 것