codestates / codestates/underTheSea

[✍️ Dev Log] 박기정 / 2022-01-15

Open
#94 0 comments 0 reactions 1 assignee Claimed by @pgj0116 View on GitHub
Dominant language
JavaScript
Stars
0
Forks
5
PR merge metrics
No merged PRs in 30d

Description

### 오늘은 어떻게 프로젝트에 기여했나요?

- Manage페이지에 나오는 수조 기록을 반영하는 달력을 제대로 작동하도록 만들었으며 작게는 수조들의 레벨 사진이 제대로 반영되게 조절함

### 오늘의 프로젝트에서 힘든 점은 무엇인가요?

- 백엔드에서 작업하다가 넘어와서 프론트에서의 작업을 파악하는데 상당히 오랜 시간이 걸렸다 .

- 어제 부터 작업했던 부분인데 서버에서 sequelize로 group by를 사용해서 묶으면 날짜 뿐 아니라 시간까지 완벽히 동일해야 하나의 그룹으로 묶여졌다. mySQL과 PostgreSQL의 문법이 상이한 부분이 있는듯 했는데 후자의 경우는 간단히 trunc_date 이라는 함수를 sequelize를 통해 사용할 수 있었으나, mySQL의 경우 해당 함수를 지원하지 않는듯했다 . 아무리 인터넷을 뒤져봐도 sequelize에서 지원하는 MySQL에서 사용할 수 있는 함수를 찾을 수 없어서 결국은 여러가지 시도 끝에 literal을 사용하여 Date(createdAt)을 사용하여 문제를 해결했다.

- 보내온 함수들을 달력에 반영할때 객체의 키를 CreatedAt으로 두고 이후 다시 Type, Count라는 키값을 사용하여 캘린더에 반영하려니 아무리 생각해도 마땅한 방법이 떠오르지 않아 날짜 자체를 키값으로 두고 Array를 하나 만들어서 Type을 그 배열의 인덱스값으로 사용하고 Count를 해당 인덱스의 값으로 설정하니 데이터 자체도 훨씬 깔끔해지고 캘린더에 반영하기도 훨씬 수월해졌다. 구현자체는 크게 어려운 부분이 없었으나 사용하기 편리한 데이터 양식을 떠올리기까지가 많이 힘들었다. 구현하는 부분은 토이 문제 중에서도 중간 이하의 난이도 정도로 느껴졌다.

-최종적인 데이터 양식을 떠올리게 되면서 크게 필요치 않은 부분이 되었으나, Sequelize에서 두가지 이상의 필드로 정렬을 하는 방법에 대해서도 공부를 통해 배울 수 있었다.

```js
//sequelize에서 날짜가 같은 데이터끼리 묶는 코드
group: [sequelize.literal("DATE(createdAt)"), "type"],

//정렬하는 법
feed_list.sort((a, b) => {
if (a.createdAt > b.createdAt) return 1;
if (a.createdAt < b.createdAt) return -1;
if (a.type > b.type) return 1;
if (a.type < b.type) return -1;
});
```

### 내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?

- [ ] 환수기록 추가 역시 캘린더에 반영이 잘 되도록 해야하고, 이후 게시판 완성시킬 수 있도록 손을 본뒤, 클라이언트가 빌드가 될 수 있도록 노력해보아야 할듯 하다.
- [ ] 아직 반응형이 제대로 작동하지 않으므로 반응형 역시 적용시키기 위해 공부하여야 한다 .
- [ ] 가능하다면 위치기반 안내 역시 체크해 보아야 할듯 하다.
- [ ] 마지막으로 조회수 테이블을 스키마에 추가해서 많이 검색된 물고기를 추천 물고기 리스트에 반영할 수 있는 방안을 고민해 봐야할것 같다 .

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.