고객이 갖고 있던 문제
Objective-C 초기 버전으로 만들어진 네이티브코드가 포함된 하이브리드 앱을 운용중이었는데, 현재의 다양한 기기, OS 환경에 대응을 못하고 시각적으로 고객이 클레임이 많은 상황이었습니다.
저희를 찾은 이유
빠르게 분석하고 수정해줄 수 있는 사람, 회사를 찾고 있었고, 저희를 신뢰하는 분이 소개하고 바로 진행 되었습니다.
문제를 해결한 방식
먼저 Objective-C 전체 코드를 분석해서 패턴을 찾았습니다.
아주 독특한 방식으로 동작하는 앱이었습니다.
쇼핑몰의 각각의 페이지가 독립적이고, 각 페이지별로 Scheme를 통해 데이터를 주고 받으면서 페이지를 전환하는 방식이었습니다. 패턴들을 분석하고, 그동안 유지 보수하면서 파편화된 다양한 기능들, 그리고 현재는 없어도 될 기능들을 분석하고, 코드를 설계 했습니다. 최소한의 코드로 Flutter, 일부 네이티브 플러그인을 통해 1개월 동안 분석후 Flutter로 제작 했고, 현재 스토어에 출시 했습니다.
회고
모바일 기술은 정말 빠르게 변합니다. 그리고 빠르게 적용하고 앞으로 나아가는 기업도 결국엔 또 새로운 기술을 받아 들이기도 하고 유지하기도 합니다. 고객이 많이 사용중인 부분에서는 유지하는 결정을 많이 하게되고, 또 새로운 시도에서는 새로운 기술을 적용하며, 여러 가지 오래되고 새로운 것들이 교차로 운영되게 되는데, 인력적으로도 이렇게 유지하기 어렵고, 언제나 고충이 발생하는 조건이 됩니다.
이런 호환성에 대해서 늘 고민을 많이 하게됩니다.
과거에 기술 초년시절에 더 깊은 설계를 해보고자, 윈도우에서 제공하는 MFC라는 C 라이브러리를 역분석 했던 적이 있습니다. 무려 MS, Microsoft에서 만든건데 메소드 이름이 정말 구려.. 보이는 것들이 제법 보였습니다.
C를 아주 오래했던 선배들과 논의를 한적이 있는데, 제가 들었던 대답이 “호환성” 이었습니다.
계속 새로운 버전이 나오는데, 과거 버전 사용자들을 위해 계속 남겨 놓는 상황 이었고, 제가 본건 그 잔재였습니다.
한때는 그런것이 사라져야만 하는 것으로 보였지만, 누군가는 사용중인 것이죠, 어떻게 더 고객이 빨리 업데이트를 받게 하는지에 대한 고민으로 이어 지는 포인트 이기도 합니다.
이런 호환성에 대한 생각을 다시 한번 해보게된 미션 이었습니다.