패스잇
모바일 개발 · 심화

현재 유지보수 중인 대규모 레거시 MVVM 기반 iOS 앱의 특정 모듈을 Clean Architecture 또는 Composable Architecture로 점진적으로 전환해야 하는 상황입니다. 기존 아키텍처와의 충돌을 최소화하면서 안전하게 마이그레이션하는 전략과 고려사항은 무엇입니까?

힌트 · 새로운 아키텍처를 적용할 경계를 명확히 하고, 어댑터 패턴을 사용하여 기존 코드와 통합하며, 점진적인 리팩토링과 피처 플래그를 활용하여 위험을 줄입니다.

Facade 패턴Anti-Corruption LayerFeature ToggleSide-by-Side테스트 자동화

모범답안

이런 상황에서는 점진적인 접근이 중요합니다. 먼저, 새로운 아키텍처를 적용할 명확한 경계를 설정하는 것이 핵심입니다. 예를 들어, 특정 기능이나 화면 단위로 시작할 수 있습니다.

기존 MVVM 코드와 새로운 아키텍처 간의 충돌을 최소화하기 위해 어댑터 패턴, 특히 Facade 패턴이나 Anti-Corruption Layer를 활용하여 두 아키텍처 간의 인터페이스를 정의할 것입니다. 이를 통해 새로운 모듈은 기존 시스템의 세부 사항을 알 필요 없이 일관된 방식으로 상호작용할 수 있습니다.

마이그레이션 과정의 위험을 줄이기 위해 Feature Toggle을 적극적으로 활용하여 새로운 아키텍처로 구현된 기능을 점진적으로 활성화하고, 필요하다면 즉시 이전 버전으로 롤백할 수 있도록 합니다. 또한, Side-by-Side 방식으로 기존 및 신규 구현을 병행하며 테스트 자동화를 강화하여 안정성을 확보할 것입니다.

핵심은 작은 단위로 시작하고, 명확한 경계를 설정하며, 기존 시스템과의 호환성을 유지하는 것입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 iOS / Swift 면접 질문

← iOS / Swift 면접 질문 전체 보기