앱 대신 웹페이지로, 개발자의 분노와 해결책
불필요한 추적 및 광고 기능 포함한 Android 앱의 비효율성을 지적함
리버스 엔지니어링(Reverse Engineering)을 통해 앱의 API 및 데이터 구조를 파악함
Ruby 스크립트와 Cron 스케줄러를 활용하여 웹페이지 자동 생성 및 배포
웹 표준 기능(Web Standard Features)을 활용한 경량화 및 접근성 개선
앱 트래픽 가로채기 및 분석 과정
개발자는 Android Studio의 가상 장치(Virtual Device)와 Magisk를 이용해 루팅된 환경을 구축했다. 이후 HTTP Toolkit을 프록시로 설정하여 앱의 네트워크 트래픽(Network Traffic)을 가로챘다. 이를 통해 앱이 사용자 이름과 비밀번호를 결합하여 특정 URL에 요청을 보내고, JSON 형식의 응답(JSON Response)을 받아 콘텐츠를 구성하는 방식을 파악했다. 특히, 앱이 데이터 격리 아키텍처(Data Isolation Architecture) 없이 사용자 계정 추적 및 광고를 포함하는 점을 비판했다.
웹페이지 전환을 위한 데이터 처리
추출된 JSON 데이터에는 일정 시간 후 만료되는 S3 이미지 URL이 포함되어 있어 주기적인 재요청이 필요했다. 개발자는 이 데이터를 활용해 Ruby 스크립트를 작성하여 일정(Cron Schedule)에 따라 최신 정보를 가져오도록 했다. 'inspirations'로 불리는 광고 데이터는 제외하고, 일정 정보와 참조되지 않은 파일(PDF 링크 등)만 추출하여 HTML 페이지를 생성했다. 이는 데이터 미저장 정책(Zero-Retention Policy)을 준수하며 불필요한 요소를 제거한 결과다.
웹 표준 기능 활용 및 장점
개발자가 구축한 웹페이지는 원본 앱보다 크기가 훨씬 작으며, 복사, 인쇄, 북마크, 검색 등 웹의 기본 기능을 무료로 제공한다. 또한, 다양한 기기에서의 접근성(Cross-Device Accessibility)이 뛰어나다는 장점이 있다. 이는 앱 스토어 배포 및 유지보수 비용, 그리고 GDPR 규제 준수(GDPR Compliance) 부담 없이 콘텐츠를 제공할 수 있다는 점에서 웹의 우위를 보여준다. 앱의 43MB 용량과 비교했을 때, 웹페이지는 0.05MB로 경량화되었다.
앱 문화에 대한 비판적 시각
본 사례는 콘텐츠 전달에 있어 웹페이지보다 앱이 반드시 더 나은 선택이 아니라는 점을 시사한다. 특히, HTML 콘텐츠를 제공하는 경우 앱 개발은 개발 복잡성(Development Complexity)과 비용 증가를 초래하며, 사용자에게는 추적 및 광고라는 불이익을 준다고 지적한다. 개발자는 이러한 '앱 문화'가 불필요하게 사용자 경험을 저해한다고 비판하며, 데이터 미저장 정책(Zero-Retention Policy)을 준수하는 웹 기반 솔루션의 필요성을 강조했다.