inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter 고급 - 현업 수준의 아키텍처

23 의존성 주입 (DI)

view model 은 팩토리로 생성하는 이유

273

Seung Min Liang

작성한 질문수 19

0

23강의 5:10에서 usecase,repository 는 싱글톤으로 만들고, viewmodel은 팩토리로 만드는 것이 일반적이라고 하셨습니다.

싱글톤으로 만드는 것은 이해했는데, 팩토리를 사용하는 이유는 무엇일까요?

 

viewModel 안의 state 의 내용이 UI 의 데이터로 채워지고, viewModel 안의 state 는 가변적이니 싱글턴으로 하는게 맞지 않을까라는 생각이 갑자기 들어서요. viewModel을 다시 만드는 것이 어떤 경우가 있는지 궁금합니다.

 

강의항상 재밌게 듣고 있습니다. 감사합니다.

flutter mvvm state-management 클린-아키텍처

답변 1

0

오준석

ViewModel 은 화면에 표시할 데이터를 제공하는 데이터 Holder 역할을 하게 됩니다.

화면을 위한 것이므로 화면과 같은 생명주기를 가져야만 버그 발생 가능성을 줄일수가 있습니다.

 

만약 List, Detail 두 개 화면이 있을 때 DetailViewModel 이 싱글턴으로 유지되면

새로운 항목 클릭해서 Detail 화면으로 왔을 때 기존 화면의 내용이 잠깐 남아 있다가 교체가 될 수도 있고

기존 화면의 내용 일부가 남아 있을 수도 있는 등의 버그 발생 가능성이 있고, 굉장히 귀찮아 집니다.

 

그래서 화면과 ViewModel 의 생명주기를 같게 하는 것이 중요합니다.

1

Seung Min Liang

이해가 됐습니다! 감사합니다.

강의 잘 봤습니다.

0

26

2

강의를 다 듣고난 후

0

27

2

25강 앱 아이콘 만드는 방법에서 그래픽 소스는 어디에 있나요?

0

26

1

자동화 프로그램 프로젝트

0

36

1

198강 (){onTap(e);}의 이해 돕기

0

52

1

Node 관련 질문입니다

0

60

3

구글 소셜 로그인 후 로그인 시 구글에러

0

49

2

실습중(개인 비용 관리 앱) 문의드려요

0

54

2

6강에 비디오가 이상해요

0

43

2

현재강의 완성된코드가있을까요?

0

82

1

플러터 환경분리 (production, qa 등) 질문

0

94

2

dataclass 오류

0

139

2

수업 노트에 있는 json 파일에 ingredient 관련 내용이 없습니다.

0

106

2

개발자 도구

0

77

1

figma

0

88

1

개발자도구

0

82

3

ui 테스트 코드 링크가 없습니ㅏㄷ.

0

91

1

jdk 설정 및 오류

0

393

3

텍스트 전체입력 후 검색 결과 조회

1

138

2

라이브 템플릿 링크 어디서 확인하나요?

0

167

2

ingredient view model의 _loadRecipe

0

112

1

BigButton 만들때.

0

136

1

31강 stream 활용시 어떤장점이 있나요?

0

226

2

domain 에 data_source 를 만드는 이유.

0

374

3