- 프로젝트 진행 방식 2~3 - 스크럼, 회고 - 그라운드룰(코어타임에 화상회의에 들어와있기, 고민이 길어질 때 함께 논의해보기) - 문서 정리 - DB 스키마 - 스키마 이미지 - 왜 이렇게 했나 - 댓글을 post 안에 넣을 것인가? - 평가를 어떻게 저장할 것인가? 배열? - 구매 요청 테이블을 나눈 이유 - monstache, mongodb replica set, elasticsearch 5~6 - 사용 이유 : 검색을 위해 ES를 사용하였습니다. 이를 위해 MongoDB와 ElasticSearch를 동기화 시킬 필요가 있었다. 이를 찾아본 결과 mongo connector, transport, monstache를 찾아보았는데 앞의 두개는 최신 버전을 지원하지 않아서 monstache를 사용하기로 했다. - 설정 과정 : monstache를 사용하여 동기화를 시켜주기 위해서는 먼저 mongoDB가 replica set로 되어있어야 했다. (아마 change stream으로 변경사항을 받아오기 때문인 것 같은데.. ) 공용으로 사용할 수 있는 서버 X, 엘라스틱 서치 mongoDB, monstache를 도커로 관리 - 기술 설명 - Monstach 설정을 통해 쉽게 동기화 시킬 수 있었다. - - 겪었던 문제 - swr vs apollo client 왜 swr 사용했고 어떤 좋은점이 있었는지 => 상태관리라이브러리를 사용하지 않았다. 3 - 조사 했던 것 - 사용하면서 느낀 차이 - 코드 비교 - key, value 배열로 넣어주기 vs fetcher를 함수로 한번 더 감싸기 - 차별화를 위해 판매자의 희망 거래 위치를 기준으로 당근마켓보다 더 검색.., ~~레벨~~(당근마켓과 차별점) 원래는 주소검색만 되지만 5~6 - 상세, 주소 설정 이미지로 비교 - 지도 위치를 기준으로 검색 - 레벨 산출 방식, 사용처(구매확인에서 먼저 나온다.) - 마무리 2 - 느낀점 mutate 시켜줘야할 때? 생성시, 추가시, 수정시, 삭제시 ``` mutate({ variables, update: (cache) => { const data = cache.readQuery({ query: updateQuery}); cache.writeQuery({ query: updateQuery, data: { updateTarget: { ....data[updateTarget], newData }, }, }); }, }); ``` ``` mutate({updateTarget:{...data, newData}}); ```