안녕하세요. 그것은 BLoC 과의 차이를 짧게 설명한 문장인데 블록을 잘 모른다면 이해할 수 없는 것이 맞습니다. (여기서는 블록을 자세히 다루지 않았습니다.)
//
우선 BLoC 은 애초에 BLoC 이라는 특정 패턴을 쉽게 구현하기 위해서 만들어진 플러그인 입니다. 따라서 BLoC 을 제대로 사용하기 만하면 특정한 패턴이 구현되고 어느 정도의 레이어 분리가 됩니다.
프레젠테이션 레이어는 BlocProvider, 도메인 레이어는 RepositoryProvider 클래스를 사용해서 따로 분리를 해서 사용하도록 권장하고 있습니다.
//
반면에, riverpod 의 프로바이더 종류가 다양하게 있습니다만, 기본적으로 riverpod 의 역할은 "Data-Binding". 즉, 어떤 데이터와 뷰를 연결해주는 역할을 합니다.
하지만 여기서 "데이터" 라는 것은 어떤 패턴이나 아키텍처에서 특정 레이어(뷰모델, 도메인, 데이터 등) 를 지정하거나 의미하지 않습니다. 따라서 개발자가 나름대로 패턴을 생각하고 사용하지 않으면 이론상 뷰에서 모든 레이어에 직접 접근할 수 있습니다. 심지어 Ref 를 이용해서 프로바이더에서 다른 프로바이더에도 접근이 가능하기 때문에 도메인에서 뷰를 참조한다던가 하는 사고가 발생할 수도 있습니다.
//
요약하면, 블록은 그 자체로 특정한 패턴(레이어)가 되지만, 리버팟에서 프로바이더는 그저 데이터 바인더일 뿐, 그 데이터가 어떤 특정한 레이어에 속하는 것으로 가정되지 않습니다.
혹시, 레이어와 레이어 분리에 대해서 더 알고 싶다면 아래 글을 참고해보세요.