inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter 중급 1편 - 클린 아키텍처

17 Use Case

한 화면에 필요한 기능 만큼 유즈케이스를 따로따로 만드나요? 아니면 한 유즈케이스 안에 여러 메서드들을 생성하나요?

315

원동인 Dongin

작성한 질문수 4

1

이 예제는 검색하는 메서드 하나밖에 없어서 유즈케이스가 하나 밖에 없는데요. 만약 이 화면에 사진 업로드, 유해컨텐츠 신고하기 기능이 있다고 가정하면

GetPhotoUseCase.dart / UploadPhotoUseCase.dart / ReportUseCase.dart 이렇게 각각 유즈케이스들을 만들어서 뷰모델이 사용할 수 있도록 해야하는지, 아니면 HomeViewUseCase.dart 이라는 하나의 유즈케이스 안에 각각의 메서드들을 넣어야 하는지 궁금합니다!

아니면 비슷한 레포지토리를 사용할 것 같은 유즈케이스들끼리 따로 모으는 게 좋을까요?

ios Flutter android

답변 1

2

오준석

전자가 맞습니다.

유즈케이스는 기능 하나당 하나씩 만들고, 뷰모델에서는 필요한 유즈케이스만 가져다가 사용합니다.

HomeViewUseCase 같이 HomeView 에서만 사용할 UseCase를 별도로 모으는 것은 필요하면 하셔도 상관없습니다. 이 강의에서 처럼이요.

중요한 것은 기능별로 하나의 클래스로만 작성하여 재사용성을 높이는 것이 좋습니다.

예를 들어 여러 화면이 있고 각 화면에 다른 앱바와 메뉴가 붙어 있다고 가정합시다.

메뉴에는 공통 메뉴가 한 개가 있다고 합시다.

화면이 10개 입니다. 이 경우 공통 메뉴를 눌렀을 때의 동작을 별도 유즈케이스로 작성해 두면 간단히 재사용 가능합니다.

만약 HomeViewUseCase 에 각각의 뷰모델이 아닌 각각의 메서드를 만들었다면.

여기서 특정 기능만 재사용은 어렵겠지요.

0

원동인 Dongin

감사합니다! 잠들기 전에 궁금증이 해결되었습니다!! 곧 노트앱 들으며 또 질문드리겠습니다!

MVVM, 클린 아키텍처 관련 질문 있습니다.

0

110

2

가끔씩 ui가 깨지는? 현상이 있어서 질문드립니다.

0

104

1

freezed 3.0 대응된 코드 깃헙에도 업데이트 해주실 수 있으신가요?

0

195

3

sealed class 사용시 기능은 동작하지만 Radio위젯에 선택 표시가 안되는 부분 질문

0

131

2

sealed class 사용시 The getter 'orderType' isn't defined for the type 'NoteOrder<dynamic>' 오류

0

102

2

유즈케이스 관련하여 질문 드립니다.

0

99

1

mockito사용시 오류 해결법

1

127

2

sealed class 사용 문의2

0

87

2

sealed class 사용 문의

0

123

2

freezed3.0에서 build시 when생성되지 않습니다.

0

275

2

Try implementing the missing methods, or make the class abstract. 문제해결 공유

0

245

2

This is likely caused by a misconfigured builder definition. 오류 해결 방법

1

329

3

강의 화면이 안보여요

0

141

3

Flutter에서 추천하는 Navigator, Router

0

335

2

The following ProgressEvent object was thrown resolving an image codec: [object ProgressEvent]

0

331

3

event와 ui_event

0

216

1

코드 색깔 관련 질문

0

212

1

Photo.fleezed.dart,photo.g.dart삭제시 에러

0

214

2

sealed class 적용 시...

0

333

1

클린 아키텍처 질문

0

317

1

sealed class 데이터 접근

0

333

1

서버에서 데이터를 가져와서 사용하는 경우...

0

238

1

뷰/뷰모델 작성 질문

0

276

1

freezed JsonKey 사용 예시 공유

1

796

1