검색 홈의 복잡성 해결을 위해 모듈 분리 및 SwiftUI 전환을 진행함
탭 구조 개선을 통해 각 탭의 독립성과 확장성을 확보하고, 부드러운 화면 전환 구현
Converter를 활용한 데이터 변환 로직 분리로 코드 유지보수성 향상
기존 GCSearch 모듈을 GCSearchHome과 GCSearchResult로 분리하여 책임 분리를 달성했다. 구체적으로, 각 모듈은 하나의 화면에 집중하도록 설계되었으며, 인터페이스 기반 통신을 통해 의존성을 최소화했다. 따라서 빌드 속도 향상과 코드 유지보수성을 확보했다.
각 탭의 상태를 추상화하기 위해 TabInfoAppModel 프로토콜을 정의하고, 각 탭의 상태 모델이 이를 채택하도록 설계했다. 따라서 SwiftUI View에서 일관된 방식으로 탭을 렌더링할 수 있다. 데이터 추상화를 통해 코드 중복 감소 및 유지보수 용이성을 확보했다.
각 탭의 데이터 변환 로직을 Converter로 분리하여, 서버 API 응답이나 로컬 DB 데이터를 AppModel로 변환한다. Converter 분리를 통해 변경 범위 최소화 및 뷰의 안정성을 확보했다. 결과적으로 테스트 용이성을 높여 코드 품질을 향상시켰다.