개발자는 문제에 직면했을 때 코드를 살펴보며 원인을 찾습니다. 하지만 그 문제가 로직에 내재된 버그가 아니라면, '문제를 어떻게 해결할 것인가?'에 대한 사고(思考)가 더 중요합니다. 저는 기존에 네이티브(native)로 구현되어 있는 '친구/대화' 탭의 검색 화면을 웹 뷰로 마이그레이션하는 작업을 진행하였습니다. 이번 글에선 이 과정에서 발생한 문제를 사례로 사고의 중요성을 전달하고자 합니다.
발생한 문제와 개선 방법
1. 앱 크래시
웹 뷰에서 대량의 친구 목록을 네이티브 앱으로 요청하는 경우 앱 크래시가 발생하는 문제였습니다. 원인은 '프로필 이미지'를 요청하는 부분이었습니다. 코드의 로직에는 버그가 없었지만 성능에 문제가 있어서 여러 가설을 세우고 원인을 찾기 시작했습니다.
가설 및 검증
가설 1. 대량의 Base64 이미지를 브라우저가 렌더링할 때 문제가 될 수 있다.
프로필 이미지는 URL로 호출하는 방식이 아니라 네이티브에서 Ba