[Flutter / 플러터] BLoc Pattern (블락 패턴)의 장점

반응형

 

Flutter 를 개발하면서 사용할 수 있는 상태관리 패키지가 여럿 있지만

엔터프라이즈 레벨에서 사용하기 제일 좋은 패키지는 Bloc 이라는 의견이 주를 이룬다.

 

본인도 사용해본 결과,
1. 같이 일하는 사람들과 코드 컨벤션이나 구조를 맞추기가 제일 용이하다는게 가장 큰 장점
2. 문서화가 굉장히 잘 되어있다. 개념에 대한 설명과 왜 이런 패턴을 따르는지, 어떤 원리로 동작하는지 설명하고, 예시 코드도 문서에 포함되어 있다. (https://bloclibrary.dev/#/
3. 성숙한 패키지가 존재 (+ DI 패키지를 또 따로 사용하지 않아도 동일한 패키지에서 제공해준다)

 

세부적인 사용 예시는 사용하는 사람에 따라서 여러가지가 있을 수 있지만,
문서에 나와있는 예시만으로도 충분히 좋은 practice를 많이 만들 수 있다고 생각한다.

 

왜 BLoC를 사용해야하는지 문서에 적힌 내용을 살펴보면

 

As developers we want to:
- know what state our application is in at any point in time.
- easily test every case to make sure our app is responding appropriately.
- record every single user interaction in our application so that we can make data-driven decisions.
- work as efficiently as possible and reuse components both within our application and across other applications.
- have many developers seamlessly working within a single code base following the same patterns and conventions.
- develop fast and reactive apps.

 

- 우리의 어플리케이션이 어느 시점에 상태가 어떤지 알고
- 우리 앱이 적절히 응답한다는 것을 확실히 하기 위해 모든 케이스를 쉽게 테스트하고
- 모든 유저 인터렉션을 기록해서 데이터-드리븐 결정을 내릴 수 있고
- 가능한 한 효율적으로 일하고, 앱 내부 혹은 다른 앱 간에서 동일한 컴포넌트를 재사용하고
- 많은 개발자들이 동일한 패턴과 컨벤션을 따르는 하나의 코드 베이스로 일할 수 있고 (의역)
- 빠르고, 반응형인 앱을 개발

위의 것들을 우리가 개발자로서 원하는데, 이 모두를 충족해주는 패턴이라고 설명한다.

 

사용하면서도 다시 한 번씩 문서를 읽어보면 좋은데, 이번에 다시 읽어보면서도 잘 만든 문서라고 생각이 돼서
문서에서 설명한 내용과 써보면서 느꼈던 점을 바탕으로 하나씩 정리해볼 예정이다.
(물론 모호하게 설명하는 것들도 있는 것 같아서 본인이 생각한 점들도 같이 적어보면 좋을 것 같다.)

 


본인은 사이드 프로젝트에서 그나마 깊게 사용해본건 Getx 가 있고 찍먹해본 Riverpod, Mobx 등이 있다.

개발 편의성만 따지면 다른 것들이 솔직히 앞서니까 소규모 앱을 개발할 때는 이런 장점들이 굳이 필요 없을 수도 있고 오히려 개발이 느려질 수 도 있다. 그러니 굳이 사용할 필요는 없다 


따라서 필요에 따라 알맞게 상태관리 패키지를 사용하면 좋다.

반응형