Entity와 DTO 분리 및 데이터 바인딩

박진·2026년 2월 12일

2026.02.12 (목)
Troble Shooting: Entity와 DTO의 분리 및 데이터 바인딩


오늘의 공부 내용 이미지 💫


😟 문제 상황

팀 프로젝트 Healthy bag 진행 중, 외부 API나 Firebase에서 받아오는 데이터 구조 (DTO)와 앱의 핵심 비지니스 로직에서 사용하는 데이터 구조 (Entity)를 하나로 합쳐서 사용할지, 분리해야 할지에 대한 혼란이 발생함.
특히 CommentFeed 데이터를 UI에 바인딩하는 과정에서 모델의 역할이 모호해지는 문제

🤯 원인 분석

  • 의존성 문제: DTO를 그대로 UI나 UseCase에서 사용하면, 서버 데이터 구조가 변경될 때마다 앱 전체 코드를 수정해야 하는 리스크가 있음
  • 클린 아키텍처 원칙: 데이터 계층(Data Layer)과 도메인 계층(Domain Layer)은 엄격히 분리되어야 하며, 각 계층에 맞는 최적화된 모델이 필요함.

🥹 해결 방법

Model(Entity) 정의: Comment와 Feed를 순수한 Dart 객체인 Entity로 정의하여 도메인 계층에 위치시킴. (UI는 오직 이 Entity만 바라보게 함)

DTO 및 Mapper 활용: fromJson, toJson 등을 포함한 DTO를 데이터 계층에 두고, 이를 Entity로 변환해 주는 별도의 로직을 구현.

UI 데이터 바인딩 분리: 기존의 복잡한 홈페이지 UI 코드에서 데이터 로직을 분리하여, 전달받은 Entity를 위젯에 주입하는 방식으로 리팩토링 진행.


오늘의 배운 점 😵‍💫

클린 아키텍처는 처음 설계할 때는 번거롭지만, 프로젝트가 커질수록 유지보수에서 강력한 힘을 발휘한다..!

0개의 댓글