Develop/Flutter

[Flutter] 플러터 Bloc 패턴과 Provider

JunJangE 2021. 12. 21. 15:43

Flutter 앱을 개발하다 보면 자주 등장하는 Bloc 패턴과 Provider 에 대해서 간단하게 알아보자.

Bloc 패턴은 Google 개발자가 권장하는 Flutter의 상태 관리 시스템이다. 프로젝트를 관리하는데 도움이 되며 프로젝트의 중앙 위치에서 데이터에 액세스 할 수 있다. 이 아키텍처는 다른 아키텍처와도 연관시킬 수 있다. 예를 들어 MVP와 MVVM이 있으면, 여기서 Bloc이 MVVM에 ViewModel로 대체 가능하다. 하지만 간단한 로직 하나 구현하는데도 패턴을 적용하면 최소 4개의 클래스를 작성해야 하는 불편함이 있다.

그래서 등장한 것이 Provider 이다. Provider 는 Bolc 패턴보다 쉽게 적용할 수 있어, 데이터 공유와 로직의 분리를 좀 더 간단하게 할 수 있다. Provider는 Google IO(2019 Google IO)에서 추천되면서 큰 주목을 받았다. 원래 커뮤니티에서 만든 플러그인인데 구글에서 공식적으로 추천하게 된 것이다.

결국 두가지 개념은 상태 관리를 목적으로 하고 있으며, UI와 비즈니스 로직을 분리하는 목적에서 동일하다. 그러나 Provider 를 쓰면 더 간단하게 목적을 구현할 수 있다. 

구글에서는 중규모 프로젝트는 Provier 를, 대규모 프로젝트는 Bloc 패턴을 추천하고 있다.

다음에는 Bloc 패턴과 Provider 를 구현하면서 어떤 코드가 더 효율적인지 왜 구글에서는 중규모 프로젝트는 Provider를, 대규모 프로젝트는 Bloc 패턴을 추천했는지 알아보자.