- 프로젝트 진행 방식 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}});
```