모아데이터에서 어드민 화면과 회원별 데이터를 차트에 구현해주는 과제였다.
그 중 차트파트를 맡게되어 우선 필요 요소부터 정리하였다.
필요한 상태관리를 다음과 같이 정의했다.
처음 코드를 짤 때 날짜의 배열을 상태관리를 함으로서 조건별로 날짜 배열에 해당하는 날짜를 넣는 형식을 택했었는데 그렇게 되면 컴포넌트 단에서 매우 지저분해짐으로 시작, 끝 날짜만 있으면 원하는 데이터를 들고올 수 있는 함수를 컴포넌트 외부에서 정의해 들고오는 방식을 택했다.
시작, 끝 날짜로 구현해줌으로서 주간, 전체 카테고리는 무시해도 된다.
다만 하루치가 되었을 경우 시간별로 들고와야 함으로 이 부분에 있어서는 따로 함수를 정의하는게 가장 간결하다고 판단하여 아래와 같이 코드를 작성했다.
전부 작성한 후에 일별 평균 심장 박동수를 구현하는 과정에서 소숫점 계산쪽에 버그가 있어
이 부분은 자바스크립트 특성상 소숫점 계산시 오차가 있으므로 bignumber js로 처리하여 주었다.
위와 같이 큰 숫자나 소숫점 계산에는 따로 라이브러리를 사용해주어야 한다.