이 게시물은 iOS 신입 개발자로 레거시 코드에 대한 고정관념을 깨고 기술부채를 해결한 과정을 공유합니다.
핵심 문제
iOS 커스텀 키보드가 약 80MB를 초과하면 기본 키보드로 강제 전환되며 충돌이 발생하는 메모리 제한 존재. 아키텍처 부재와 기술 스택 다양성으로 인해 원인 파악에 시간이 많이 소요됨.
기술부채 해결 과정
약 한 달 반 동안 아키텍처 도입, 코드 구조 개선, 불필요한 라이브러리 제거를 진행함. MVVM 아키텍처를 도입하고 View와 스트림 구성을 분리해 상태 꼬임 및 안정성 문제를 해결함. 메모리 개선을 위해 ViewController에서 모든 View를 인스턴스화하던 구조를 DIContainer로 변경해 필요한 기능을 필요한 순간에 주입하도록 수정함.
개선 결과 및 관점 변화
키보드 메모리 점유가 26.6MB로 감소하고 안정화율 및 DAU 지표가 향상됨. 레거시를 의식해 도전 범위를 제한하던 태도를 버리고 의문이 들면 해체해 더 나은 코드를 직접 작성하는 능동적 문제 해결 관점을 얻게 됨.