inflearn logo
강의

講義

知識共有

Flutter中級2編 - 実戦アプリ開発 - アメリカ株式アプリ(withクリーンアーキテクチャ)

Hiveの設定、DAO作成

entity와 domain의 차이

4506

aoddydrl119

投稿した質問数 5

0

친절한 답변 감사합니다.

Entity와 domain의 차이에 대해 질문 드립니다.

Entity와 domain이 같은 의미인줄 알았으나 구조를 보니 company_listing_entity와 company_listing(domain) 을 사용하는 것을 보고 다르게 사용 된다는 것을 알게 됐습니다.

  1. Entity는 db에 접근하기 위해 사용 되는 domain?의 느낌이고 domain은 비지니스 로직을 수행하기 위한 객체로 느껴졌는데 이것이 맞는지 궁금합니다.

  2. 이전 강의인 클린 아키텍처에서는 Entity를 사용하지 않았는데 그 이유가 궁금합니다.

    캐시로 사용되는 객체와 원격으로 사용되는 객체의 차이, 들어오는 값의 차이 등으로 인해 2개로 나눠서 관리하는 것으로 설명해주셨는데 하나의 파일로 관리가 되지 않나 싶어 혼동이 생깁니다. model 객체가 2개라고 생각이 들기도 합니다.

ios android Flutter

回答 1

3

survivalcoding

아마 말씀하시는 domain 은 이 강의에서 domain 레이어의 model 클래스를 의미하는 것 같습니다.

도메인 레이어는 앱의 핵심 기능을 담당하는 곳이며 추상 클래스로 추상화 한 기능 클래스(레포지토리)와 화면에 표시하기 위한 모델 클래스로 구성됩니다. 기능은 데이터를 제공하는 형태인 경우 레포지토리 이름으로 만들고 그렇지 않으면 일반적인 클래스가 될 수도 있습니다. 이 강의에서는 레포지토리만 등장합니다.

모델 클래스는 화면에 표시하기 위해서 사용하기 좋게 정제화되어 있습니다. 리모트 데이터인 JSON 이나 로컬 데이터인 DB의 내용을 바로 모델 클래스로 변환하는 것이 간단한 경우도 있지만 쉽지 않은 경우도 많습니다. 이 강의에서는 후자를 다루고 있고, DB 같은 경우 모델 클래스를 그대로 사용하려고 한다면 DB를 sqflite로 할 경우와 hive를 쓸 경우 다른 방식의 코드로 엔터티를 구성해야 하고, 이는 테스트를 어렵게 만드는 요인이 됩니다. 때문에 먼저 Entity 객체로 DB 내용을 온전히 가져온 이후에 다시 모델 클래스로 변환하는 과정이 필요합니다.

UI 측에서는 도메인의 모델 클래스만 알면 되며, Entity 를 알 필요가 없습니다.

질문 1. 은 느끼고 계신 내용이 맞습니다.

질문 2.
이전 강의에서는 내용을 그대로 모델 클래스로 옮겨도 되는 간단한 경우를 예를 들었습니다. 느끼신 대로 로컬과 리모트 양쪽에서 바로 받는 모델 클래스가 각각 다릅니다. 이를 도메인 레이어의 모델 클래스로 담아서 활용하기에 모델 클래스로 통일 할 수도 있습니다. 앞서 말씀 드린 것 처럼 JSON의 구조가 복잡하거나, DB 라이브러리가 변경되어도 도메인 측에서는 변경이 없도록 하기 위함입니다. 상황에 따라서는 하나의 모델 클래스만 사용해도 되며, 이전 강의가 그렇습니다.

0

aoddydrl119

추상적이고 애매했던 질문이라고 생각했는데 친절하고 자세한 답변 감사드립니다. 애매했던 부분이 잘 해결 됐습니다.

그래프 그리기 위한 API가 프리미엄 요금제를 구독해야만 가능하다고 합니다...ㅜㅜ

0

75

2

api 제한량 25회

0

100

2

프로젝트 전체 소스코드

0

62

2

DTO 작성시 freezed 3.0 변경 부분 문의

0

167

2

클린아키텍처 의존관계 관련

0

215

2

mapper 생성 시...

0

168

1

강의에 있는 모든 freezed를 제거해도 되나요?

0

257

2

수업과 관련이 없지만 물을 곳이 없어...교수님께 여쭙니다..

0

357

1

뷰모델 생성자로 리스트 불러오

0

219

1

개남님 질문있씁니다! company_listing_entitiy가 왜 엔티티 인가요?

0

198

1

안녕하세요 디버그 모드 관련 여쭤볼게 있어요

0

293

1

다음 로드맵 질문

0

346

1

csv_parser라는 abstract를 작성하는 필요성이 궁금합니다

0

404

1

repository에 관하여

0

357

1

강의 예시에 대한 답변이 궁금합니다.

0

360

1

flutter 실행 관련 질문드립니다.

0

1060

1

폴더 구조에 대해 질문드립니다.

0

819

1

Repository test 관련해 질문이 있습니다.

0

262

1

stock_repository_impl.dart 에러

0

269

2

viewModel에서 context를 받는 행위 질문

0

382

1

stockApi 질문 드립니다.

0

178

1

stockApi 질문

0

260

1

라이브 템플릿 영상

0

314

1

StockApi 메서드 반환 타입에 대해

0

282

1