잘될리가 없는데..

2023년 12월 05일 화요일

Today I Learned

날짜

2023년 12월 5일 화요일

내용

계획을 작성하기 위해 구체적인 코드를 이해하는 시간을 가졌다.

기능과 효과 이해

어제 파악한대로, 샵의 이름을 바꿀 수 있는 곳은 2개이다. 쇼피파이 관리 페이지와 알파리뷰 관리 페이지. 각각을 바꾸었을 때 정확히 무슨 일이 일어나는지 확인했다. 알파리뷰 관리 페이지의 왼쪽 상단에는 숍 이름이 나타난다. 이 부분과 슈퍼관리자 페이지에서의 변경 사항을 체크하여 표로 작성했다.

수정위치\반영 관리자 대시보드 슈퍼관리자
알파리뷰 세팅 X(세팅엔 적용) 쇼피파이 정보 변경
쇼피파이 세팅 X(세팅엔 적용) 쇼피파이 정보 변경

표에 대한 설명을 첨부한다. 알파리뷰 관리 페이지의 왼쪽 상단에 나타나는 것(위 사진)을 관리자 대시보드라고 표현하였다. 알파리뷰 관리 페이지나 쇼피파이 관리 페이지 어디에서 이름을 바꾸든, 관리자 대시보드는 변화가 발생하지 않았다. 다만, 저 페이지에서 setting을 통해 샵 설정 페이지로 들어가면, 샵에 관한 정보가 나타나는데 그 정보에는 적용이 되있었다.

슈퍼관리자 페이지로 접속하면 고객사 목록을 볼 수 있다. 목록에는 샵이름을 포함한 정보가 나타나는데, 여기에도 변화가 없었다. 특정 샵을 클릭하여 쇼피파이에서 설정한 샵 관련 데이터들을 볼 수 있는데, 여기에는 변화가 있었다.

내가 내린 결론은

  1. 어느 곳에서 샵의 이름을 바꾸던 같은 로직이 발생한다.
  2. 이름을 바꾸었을 때 일부만 변경되는 것으로 보아 숍 이름을 가져오는 데이터가 1곳이 아니다.

라는 것이였다. 파악이 끝났다고 생각하여 구체적인 기능을 구현했다.

슈퍼관리자 페이지에서 샵 이름 병기

DB 모델링을 통해 이름이 어떻게 저장되어 있는지 파악하였다. 테이블에는 shopshop_detail이 있었다. shop에는 shop_name이라는 property가 존재했고 shop_detail에는 store_name이 존재했다. 여기서 골치가 많이 아팠는데, 이름을 바꾸는 두 곳에서 같은 로직이 발생한다고 했는데 왜 이름을 저장하는 속성이 2개나 있는지 이해가 잘 되지 않았다.

하지만 어물쩡 넘어가버렸다. 현재 슈퍼관리자 페이지에서는 shopshop_name만 출력하고 있었다. shop_detail의 store_name 을 출력하면 될 것이라 생각하고 이 데이터를 어떻게 받아올지 고민했다. 다행히 두 테이블이 관계가 맺어져 있었기 떄문에, 쉽게 가져올 수 있었다.

검색 인덱스 추가

검색하는 로직을 살펴봤을 때, 해당 키워드를 모든 기준에 적용했다. 이름, 이메일 ,코드 등등.. 여기에 shop_detailstore_name 만 추가해주었다.

좌상단 샵 이름 출력

상술하였듯, 이름을 변경해도 반영이 안되었다. 여기에 어떤 일이 일어나는지 확인하는게 정말 힘들었는데, 페이지의 head(?)라 따로 컴포넌트가 나누어져 있어서 찾기 힘들었다.. 또한 찾고 나서도 shopAdminAccount 에서 여러 shop들 중 고르는 로직으로 인해 머리가 복잡했다. 저 곳에는 단순히 현재 보고있는 샵의 이름만 출력하는게 아니라, 현재 로그인한 계정의 다른 샵들도 선택하여 이동할 수 있는 옵션을 제공하는 역할이었다. 나의 코드 이해 능력이 떨어진 탓이라 뭐…

결국 저 곳에는 shopshop_name 이 적용된다. 이 shop 은 로그인 떄 생성하여 세션에 저장된 데이터에서 받아온다. 따라서 좌상단에 이름이 적용되기 위해선 세션이 갱신되야 한다. 세션은 페이지가 꺼져야 사라지는 걸로 알고있는데, 따로 갱신 조건을 추가해줘야 하나 고민해볼 필요가 있다.

회고

2주로 설정한 Task인데 너무 빨리 진행되는게 무언가 찜찜하다. 이렇게 수월할 리가 없는데..