20230130월
위치 맞추기
어제 얼추 공부했으니 제대로 적용해보는 시간을 가져야지. 기존 코드를 그대로 둘러싸는 형태만 바꿔서 복붙을 했는데, 이상하게 그래프가 그려지지 않는다.
옮기는 과정에서 몇가지 줄을 삭제하다가 실수로 store에 넣는 코드를 넣지 않아서 생긴 문제였다. store가 없으면 없다고 에러 같은 것을 띄워주지 않는 게 조금 아쉽다. 한편으로는 또 다양한 가능성을 열어둔 것으로 생각해볼 수도 있겠다. 개인적인 생각으로는 이 상태에서 옵션은 좁아지고, 임베딩은 넓어지고, 사이드는 좁아지면 된다.
사후분석 페이지 명세
받은 걸로 한번에 바로 진행한다. 이 페이지 내에서는 무언가 바뀔 여지가 없다.
아이템과 유저, 각각을 받아야 한다. 한 실험에 대해서 들어가는 개념이라 그 실험을 입력으로 넣고, 데이터셋에서 나오는 모든 사이드와 실험결과로 나온 메트릭을 받으면 된다.
아이템에 대해 필요한 것은 이렇다. 아이템 프로필도 받는 것이 좋다고 생각하는데, 아마 이건 백엔드에서 계산하고 넘겨주면 될 것 같다. 그러면 이런 모양의 json을 받으면 되시겠다. 참고로 여기에서 실험에 따라 유동적인 것은 좌표값이다.
너무 데이터가 많을 때는 적당히 받아야 하는가? 이건 사실 크게 고민하지 않아도 될 것 같다. 현재 사후분석은 심화과정으로 가져가고 있기 때문. 데이터에 종속적이니 현재 작은 데이터에 대해서 다 받는 건 당연하다고 본다. 아마 그래도 자른다면 인기도, 추천도 순으로 자르는 게 맞겠지.
입력: 실험 이름.
출력: 전체 아이템 - 사이드, 프로필, 추천받은 유저들 / 전체 유저 - 사이드, 프로필, 추천받은 아이템(100), 지표값들
일단 이 정도로 생각해둘까.
'[Feat]: '형태로 쓰자.
얼추 이 정도면 되지 않을까?
의도한 대로 동작해주라 젭알
코드를 조금 뜯어고쳤다. 근데 원하는대로 작동이 안 돼서 고생을 했다.
이제 작동은 이 순서를 따른다. 고객은 옵션을 통한 선택을 하고 그 다음에 그 속 내용물을 범위 지정을 해서 따로 확인할 수 있다. 그리고 옵션 쪽으로 돌아가면 임베딩 시각화는 완전 초기화가 되는 방식. 이어야 하는데.. 후자가 지금 작동을 하지 않는다. 이상하다 싶어서 아예 uirevision을 없애버렸는데도 초기화가 이뤄지지 않는 게 이상하다. 여태는 초기화되지 말라 해도 초기화되더니 이제는 되라니까 초기화가 안 되냐?
결과는 바로 None에서 비롯되는 것이었다. 원래 이 두 함수는 하나로 이뤄져 있었다. 위 코드를 보면 한 입력에 대해서만 임베딩 그래프가 다시 그려지는 것을 확인할 수 있는데, 이전에 한 함수로 이뤄져있을 때는 해당 함수가 임베딩에 의한 입력을 받았을 때 임베딩 그래프에 None가 받도록 되어 있었다. 그러나 이제는 알게 된 것이, 그렇게 되면 그림을 그대로 남아있게 되고 그 dcc.graph에 대해 더 이상 코드적으로 상호작용할 방법이 없어진다는 것이다. 이후에 그림을 새로 그리려고 해도 아무런 작용이 이뤄지지 않는다. 그래서 초기화가 되라고 사정을 해도 변경이 없었던 것이다. 하..
시간 날려먹기 딱 좋은 방식이고만. 앞으로 콜백 함수는 기본적으로 출력을 기준으로 나누어야겠다. 그래야 이러한 일이 없을 것이다.
아. 이제야 원하는대로 작동하는 구나. 한가지 안타까운 점은 임베딩 쪽에 대해 그림 확대를 하고 나서 다시 옵션을 선택을 할 때도 그 확대가 초기화된다. 근데 이 정도는 그냥 안타까운 영역으로 넘기는 게 나을 수도 있는 것이, 확대를 하는 것과 범위 지정을 하는 것이 코드 단에서는 거의 비슷한 정도의 작용을 하는 듯하다.
진행 상황
먼저 코드 부분에서는 본격적으로 선택된 아이템을 이용해 분석할 준비를 마쳤다. 자세한 plotly 코드는 아무래도 그래프를 더 잘 만지는 상준이에게 부탁했다.
방금 전에는 원하는 영화들이 들어갈 수 있도록 카드를 만드는 작업을 했다. 근데 이건 조금 수정이 필요해보인다. 내 생각에는 횡으로 스크롤이 가능한 아이템 목록을 만들어주어야 한다. 지금은 전부다 값을 정해서 뱉는데, 나중에는 콜백을 통해서 원하는 값들이 들어가게 될 것이다.
추가적으로 낑낑 대면서 유저에 대한 사후 분석 페이지 기획을 마쳤다. 저번 기획이 무산된 이후로, 거기에서 그래도 이건 좋지 않을까 싶은 것들을 다시 어떻게 짜내어 페이지를 구성했다. 이전보다는 조금 더 보여줄 것이 많아졌나..? 사실 그때 보여줘야겠다 싶었던 것에서 크게 달라지지는 않았다. 대신 위치를 잡고 얼마나 보여줘야겠다 싶은 것들을 조금 더 수정한 것이다.
회고 및 다짐
이제는 슬슬 헤메는 시간이 아까운 느낌이 든다. 헤매면서 배우는 것은 맞다. 콜백의 출력이 한번에 하나로 되는 게 좋다는 것을 몰랐고, 그것을 하면서 깨닫는 과정은 분명 의미가 있다. 그런데 진척으로 보자면 너무 느린 것이다. 이런 시간이 이제 아깝게 느껴진다는 것은 그만큼 마음이 조급해지고 있다는 뜻이리라. 그래도 다행인 것은, 이제 넣을 것들을 다 정했고 구현하는 일만 남았다는 것. 머리를 굴려가면서 더 페이지를 구현하는 일만 남았다. 더 열심히 해보자.