메일 발송에 필요한 데이터 수집

2024년 3월 14일 목요일

Today I Learend

날짜

2024년 3월 14일 목요일

내용

의사소통 오류

이번 스프린트에서 내가 데이터베이스 구조를 설계했다. List Desiger에서 위젯은 다수의 상품을 들고 있게 되고 각 상품은 가공된 데이터(최근 구매자, 재고 등)를 갖고 있어야 한다. 기존에 상품과 관련된 데이터 형식을 변경하는 건 당연히 말도 안되는 소리니 위젯에서 사용할 상품의 데이터 형식을 ListDesigerProduct로 만들었다. 내가 이 테이블을 만든 목적은 위젯에서 표시될 데이터를 담아두기 위해서고, 기존에 상품이 가지고 있는 데이터(이름, 가격, sohpify내에서의 고유 ID 등)은 관계를 통해 JOIN으로 해결할 수 있을거라고 생각했다.

이 생각이 공유된 적 없었기 때문에 문제가 발생했다. 위젯을 편집하는 과정에서 새로운 상품을 추가하는 과정에서 생긴 문제였다.

  1. ProductListDesigerProduct 는 연관된 데이터다. 전자는 상품의 원본 데이터들이고 후자는 위젯에서 사용될 가공된 데이터를 담아둔다.
  2. 위젯에 사용되도록 선택된 상품만 ListDesignerProduct 객체가 생성된다. 다시 말해, 모든 ProductListDesignerProduct를 가지는 것은 아니다.
  3. 기존에 위젯에 있는 상품들의 목록을 보여줄 때, 모두 ListDesigerProduct, 연관된 Product 데이터 총 2개를 가진채로 보여주고 있다.
  4. 이유는, 위젯을 설정하는 스토어 주인의 입장에서 봐야될 상품 데이터는 상품의 이름, 전체 평점, 리뷰 작성 수 등 말 그대로 “상품의 정보”이다. 이 데이터는 ListDesignerProduct에 없고 연관된 Product를 참고해야 하기 떄문이다.
  5. 새로 위젯에 포함할 상품을 가져와서 화면에 보여주면, 백엔드 상에서 ListDesignProduct 가 없이 Product 만 가지게 된다. 이와 연관된 ListDesigerProduct를 프론트가 만들어야 한다.
  6. 이 과정에서 여러 문제가 발생하고 있었다.

사실 이 문제에 대해 모르고 있었다. 뭔가 안 풀리는 문제가 있어서 고생한다곤 생각했는데.. 문제점을 듣고, 위젯 편집 과정에선 Product로만 관리하면 문제가 없을텐데 왜 ListDesigerProduct 객체로 주고 받는지 몰랐다. 조금만 더 생각해보니, 내가 설계한 모델을 사용하는 입장에선 왜 이 위젯에서 사용할 상품 데이터인데 필요한 걸 안넣은건지 답답했을 것 같다. 애초에 내가 그렇게 설계한 이유와 사용처에 대해 확실히 공유를 했었어야 했는데.. 이번 스프린트 전에 열심히 개발자 회의를 했지만 아직 부족한게 많다고 느낀다.

회고

대화가 필요해.