컴포넌트 모델화
61
39 asked
안녕하세요 강사님,
ProductCard 코드를 보다가 궁금한 점이 있어서 질문드립니다.
현재 ProductCard 위젯이 ProductModel과 RestaurantProductModel 두 모델의 데이터를 받아서 처리하는데,
이런 경우 일반적으로 ProductCardModel처럼 별도의 UI 전용 모델 클래스를 만들어서 처리하는 구조도 있다고 알고 있습니다.
혹시 이번 강의에서는 단순화를 위해 별도의 모델을 만들지 않으신 건가요?
아니면 실무에서도 이렇게 UI 위젯에서 도메인 모델을 바로 사용하는 방식이 일반적인 편인지 궁금합니다.
추가적으로, 모델을 따로 만들어서 공통 속성만 뽑아내는 방식도 괜찮을지 의견 듣고 싶습니다!
감사합니다.
Answer 2
0
안녕하세요!
중간 인터페이스는 사실 무한하게 만들 수 있습니다.
이는 UI 뿐만 아니라 다양한 영역에서 가능합니다.
Clean Architecture의 경우도 공부 해보시면 본질은 정확히 클린 아키텍처에서 말하는대로 레이어를 나누라는 이야기가 아닙니다.
편의성과 협업 가능을 항상 염두해두고 작업해야합니다.
말씀하신 모델에서 공통 속성을 뽑아내는 경우도 똑같이 해당됩니다.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. Full Stack 개발자님.
ProductCard와 관련된 질문을 주셨군요. ProductCard 위젯이 다양한 모델 데이터를 처리하는 방식은 상황에 따라 다르게 설계될 수 있습니다.
UI 전용 모델 클래스 생성의 필요성
ProductCardModel과 같은 별도의 UI 전용 모델 클래스를 만들어서 사용하면, UI 로직과 도메인 로직을 분리하여 유지보수가 쉬워지는 장점이 있습니다. 특히, 모델 데이터가 UI에 직접적으로 영향을 미칠 가능성이 있는 경우나 데이터 변환 작업이 복잡할 때 유용합니다.
현재 강의 구조의 이유
강의에서는 학습의 간결함과 복잡성의 회피를 위해, ProductModel과 RestaurantProductModel을 직접 사용하는 구조를 선택했을 수 있습니다. 이 방법은 데이터 구조가 매우 간단하거나 적은 경우에는 유용할 수 있습니다.
실무에서의 일반적인 접근
실무에서는 UI 로직과 데이터 로직을 분리하여 다양한 요구사항을 더 깔끔하게 처리할 수 있도록 모델을 나누는 경우가 많습니다. 특히, 여러 곳에서 모델 데이터를 재사용하거나 각기 다른 UI 요구사항이 존재하는 경우, UI 전용 모델을 만들어서 공통 속성만 뽑아내는 방식이 좋습니다. 이는 코드의 재사용성과 유연성을 높이는 데 큰 도움이 됩니다.
참고할 수 있는 유사 질문
“ Restaurant Card 컴포넌트 내의 factory에 대한 질문”: 다양한 상황에 맞게 데이터를 조작하는 방법과 여러 데이터를 처리하는 방법에 대해 설명하고 있습니다.
“ ProductCard factory 관련 문제 질문”: Factory 패턴을 통해 데이터 모델을 처리하는 방법에 대해 논의한 바 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Isar 마지막 업데이트는 2년전입니다.
0
25
0
FlutterSecureStorage 질문
0
25
0
Dio onError Interceptor 만드는 부분에 질문이 있습니다.
0
74
2
관리자 기능에 대한 질문
0
96
2
part 'restaurant_model.g.dart';
0
91
1
36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.
0
54
2
2번 반환 상황 관련 질문
0
58
2
riverpod 3.0
0
139
2
Asset folder??
0
79
2
디자이너와 협업 시 프레임 크기 설정 관련 질문
0
111
2
FutureProvider, StateNotifierProvider 선택 기준
0
68
2
쿼리 파라미터
0
81
2
화면 안보임
0
64
2
PaginationListView
0
50
1
강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.
0
99
2
프로토타입이미지
0
59
2
여러 객체를 상태 관리하는 방법에 대한 질문
0
82
2
장바구니 결제하기 응답이 500이 옵니다.
0
102
2
removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?
0
64
2
이 두가지는 완전히 동일한 기능인가요?
0
104
3
내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...
0
75
2
_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?
0
81
2
코딩 작성 순서 관련 질문
0
83
2
ProductCard factory 관련 문제 질문
0
47
2

