---
# System prepended metadata

title: Week5 Day1
tags: [project08, ' 스크럼']

---

---
tags: project08, 스크럼
---
Week5 Day1
===
## 스크럼
- 박은식
    - styling함수들을 모두 리팩토링하였다.
    - 에러 리스트에 있는 대부분의 에러들을 해결해보았다.
- 이연정
    - 검색기능 추가
    - export 창 copy 기능 추가
    - 주말동안 업데이트되는 코드 이해하기
    - local storage 업데이트 타이밍 관해서 찾아봤는데 미루고 있다가 한번에 업데이트하는걸 별로 추천하지 않더라고요.. 아마 transaction 문제로?
- 이은솔
    - 전체 스타일 변경 관련 히스토리 로그 추가하고, undo/redo 기능 구현했습니다.
    - 표기단계 조절 에러 수정했습니다.
    - 크리스마스 테마 우선 만들었습니다..
- 위정훈
    - 마커 URL/JSON 내보내기 및 URL에서 가져오기 구현
    - JSON으로 가져오기는 `verifyJSON`, `changeStyle` 함수를 고쳐야 해서 저 혼자 판단하기 어려운 부분이라 일단 패스했습니다..
    - 마스터 클래스 들으면서 테마 제작 예정입니다..
- 


## 회의록

- 기능 구현 남은 사항
    - 테마추가 후 gif 변경 > 개인
    - 마커 내보내기/가져오기 기능 완료 
- 속도 측정
    - how to..
- 리팩토링
    - style 밝기/채도 상태에서 분리 > 0
    - deepcopy https://junwoo45.github.io/2019-09-23-deep_clone/ > 0
    - 맵 상태 리덕스에서 분리 
        - 비교 beforeMap도 같이 > 0
    - 로컬스토리지 업데이트 시점, 제한 (슬랙으로 질문드리기)
- 권장 브라우저 크롬 추가

```javascript=

import { objType } from '../store/common/type';

function deepCopy(obj: objType): objType {
  if (obj === null || typeof obj !== 'object') {
    return obj;
  }

  const result: objType = Array.isArray(obj) ? [] : {};

  Object.keys(obj).forEach((key) => {
    result[key] = deepCopy(obj[key]);
  });

  return result;
}

export default deepCopy;
```

## 멘토님과의 회의

- 리팩토링
    - 시간 사용에 대한 대가. 비용을 생각해서 수행하기
    - 만약 진행한다면 before after에 관한 모습 혹은 수치를 보여줘야함
- 코드에서부터 시작하는 이야기.. 
- 발표
    - 성능 개선 전후 이야기
    - flag 처리 이야기(상태 업데이트 시점에 관련한 이야기)
        - callback 함수 형태로 시점을 다뤄볼까했지만 결국 전달되는 인자들은 업데이트가 되지 않은 인자들
        - redux 상태 중 하나로 flag 두기. 처리가 가능은 할 것 같지만 좋은 방법이라는 생각은 들지 않음 + 만약 dispatch가 비동기적으로 처리되는 경우라면?
    - 차이 전체 (비교하기 / undo / redo)
    - 체크박스의 역할에 대한 처리방식


## 성능 측정 시점
1. 새로고침
    - 테마 하나 적용된 상태
        - 전후 차이가 있는가?
        -  전
            - 41
        -  후
            - 39/37/47 왔다갔다함..
    
2. 비교하기
3. undo/redo
4. 마커의 유무

- 웹팩에서 소스맵 옵션

## 계획

- profiler를 써서 지금 성능이 어떠한지 파악
    - useCallback, useMemo 최적화 가능한 상황들 ( 우리 프로젝트가 최적화되기 힘들다면 왜 그러한지 )
- 성능 측정 도구
- local storage 업데이트 타이밍 관련 수정(멘토님들 적절한 피드백이 있다면)
- Map filter expression 수정
- history reset 시 마지막으로 보고있던 버전은 남겨두기
- deepCopy
- marker export 시 같은 local storage 공유하는 문제
    - init 시 같은 marker들이 중복해서 추가됨
        - export한 url에서는 마커 표기만 되고 local storage에 추가하지는 x
        - 현재 url 참고하면 해결가능할 것
    - export한 url 환경에서도 마커추가 가능
        - 지도 우클릭시 현재 url이 show 형식이면 마커추가 불가하게 수정 필요