배달의민족, Flutter로 멀티 플랫폼 구축!

by DD
5개월 전
조회수 430

Flutter를 활용하여 Windows, Android, iOS, macOS 등 멀티 플랫폼 지원을 시작함

Clean ArchitectureBLoC 패턴을 적용하여 코드의 유지보수성과 확장성을 확보함

웹뷰 기반 컨테이너 앱으로 전환하여 배포 속도를 획기적으로 개선함

플랫폼 독립성을 위한 Clean Architecture

Clean Architecture는 UI, 프레임워크, 외부 의존성으로부터 비즈니스 로직을 분리하여 플랫폼 독립성을 확보한다. 구체적으로, AppUpdateManager와 같은 추상 인터페이스를 정의하고, 플랫폼별 구현을 분리하여 코드 재사용성을 높였다. 따라서, 유지보수성확장성을 동시에 달성했다.

BLoC 패턴을 활용한 명시적 상태 관리

BLoC 패턴은 명시적인 상태 변화를 추적하고, 디버깅을 용이하게 한다. Event를 통해 상태 변화를 기록하고, UseCase를 호출하여 비즈니스 로직을 처리한다. 따라서, 버그 디버깅 시간 단축코드 가독성 향상을 동시에 얻을 수 있으며, 유지보수성을 높이는 데 기여한다.

웹뷰 컨테이너 앱으로의 전환: 배포 속도 개선

웹뷰 기반 컨테이너 앱으로 전환하여 배포 속도를 획기적으로 개선했다. 비즈니스 로직을 웹으로 이관하고, Infrastructure 계층을 재사용하여 개발 생산성을 높였다. 결과적으로, 긴급 버그 수정신규 기능 배포 시간을 단축하여 서비스 안정성을 확보했다.

배달의민족 주문접수 채널에 Flutter를 도입하며 고민한 것