Skip to content

[기록] 목적에 따른 데이터 구조 분리와 매핑 #4

@SH0123

Description

@SH0123

배경

앱을 개선하고 방향성을 변경하면서 두가지 요구사항이 발생했다.

  • 도서 검색 API를 국내용, 해외용 두가지 사용해야한다.
  • 코어데이터 구조를 나타내는 엔티티의 이름이 모호하고 속성에도 변경이 필요하다.

이 때 아래와 같은 문제가 발생했다.

  • API 마다 Response를 decoding 하기 위한 객체를 만들어줘야한다.
  • 상황에 따라 서로 다른 API를 사용해야하고, decoding하여 객체를 매핑해주는 함수 또한 각각 다르게 사용해줘야한다.
  • 코어데이터 엔티티 이름을 변경하고 속성을 변경하는 경우, 이 변경이 영향을 미치는 모든 파일을 수정해줘야한다. (변경에 취약한 상태)
  • 실제로 코어데이터 엔티티 이름을 변경하고 속성들을 변경하다보니 모든 파일에서 명칭 문제로 수정이 불가피해졌고, 이는 많은 시간을 소요하게 했을 뿐만 아니라 오류 가능성으로 인한 불안함을 증가시켰다.

고민사항

  1. 두 가지 API를 사용하는 함수, 객체를 각각 작성해야하는데 어떻게 하면 코드를 최대한 재사용하여 만들 수 있을까?
  2. 데이터 구조체와 다른 객체들간의 결합도를 어떻게 낮출 수 있을까?

내 생각

오늘은 2번에 대해 학습하고 정리해보겠다.
클린 아키텍쳐 with mvvm 글들에서 관련 내용을 간단히 접해볼 수 있었다

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions