Skip to content

user account DB 관계 수정

Park Sang Shin edited this page Dec 9, 2020 · 2 revisions

기존 구조와 구현하고자 했던 것

기존에는 user Document안에 accounts의 objId를 갖고 있도록 해서 user가 속해있는 accounts를 알고 있도록 했다.

가계부 리스트화면에서 가계부에 속해있는 user정보를 보여주는 기능을 구현하려 했다. 이 구조에서는 위와 같은 그림으로 구현할 수 있었다.

  1. user 정보에 따라 user가 속해있는 AccountList를 구하고
  2. 모든 user정보를 불러온 뒤 각각 user가 각 AccountList에 포함되는지를 체크 후 return할 Account에 users라는 property로 주입해서 FE에 전달하는 방식이다.

문제점

그런데 가계부에서 해당하는 user정보를 불러오는 기능은 이번 경우와 가계부 추가 기능에서 사용된다. 꽤 자주 사용될 것으로 예상되고, 반면에 user에 해당하는 AccountList를 불러오는 기능은 크게 자주 사용되지 않는데 후자의 기능에 최적화되어 DB가 설계되어 있었다.

새로운 DB구조

프로젝트 막바지가 다 되어서 DB구조를 수정하는 결정이 쉽진 않았지만

  1. user의 accounts에 연관된 API나 기능들이 수정하는데 큰 시간이 들지 않을 만큼 적다고 판단한 점
  2. 효율성이 커지는 점
  3. Embedded 방식을 사용해보고 싶은 개발 욕구

등을 고려하여 DB구조를 위와 같이 변경하기로 했다.

Clone this wiki locally