codestates / codestates/withpuppy

[❗️Error] 12/12 sequelize include와 attributes로 조금더 똑똑하게 데이터를 조회하기

Open
#97 0 comments 0 reactions 1 assignee Claimed by @chltjdrhd777 View on GitHub
Error
Dominant language
JavaScript
Stars
0
Forks
3
PR merge metrics
No merged PRs in 30d

Description

### 마주친 에러에 대한 설명

- 원래 생각은 그냥 계속해서 User 테이블에서 조회 => Puppy 조회 => Message 조회 => 각 메세지별로 Wirter조회 => Like조회 ...... 로 가려고 했다
- 지금 위에 쓰는것만 봐도 얼마나 지저분할것이고 얼마나 엉망진창인지 알것이다. 실제로도 엉망진창 그 자체였고 버그는 3시간 내내 계속 나고있으며 조회를 하면 할수록 내가 왜 이렇게 바보같이 개발을 하고있지 하는 생각이 계속해서 들고 있었다

> 조회 무간지옥
스크린샷 2021-12-12 오후 4 32 23

## 갑자기 든 생각
- 아까 얼핏 스쳐지나갔었는데, 분명히 sequelize 는 조회를 할 때 include라는 옵션과, attributes라는 옵션이 있다는 것을 보고만 지나갔었다.
- 근데 분명히 그게 실마리가 될 것이라고 확신하고 다시금 내용을 정독해보았다. 그러자 그 내용에서 희망을 발견했다
- include는 조회를 할 때, 서로 연결고리가 있는 데이터를 같이 찾아주는 고마운 기능이다
> 사용할때는 배열형태로 객체타입의 형태를 집어넣으며, model로 포함해서 조회할 모델을 정의내릴 수 있다
스크린샷 2021-12-12 오후 4 35 34

- attributes는 조회를 하려는 내용들 가운데 필요한 칼럼만 추가하는 부분이다
> 사용할떄는 배열 안에 string 형태로 칼럼을 정의하며, 만약 정 귀찮다면 옵션으로 exclude:[] 를 배열안에 정의하여 뺴버릴 애만 정의내릴 수도 있다
스크린샷 2021-12-12 오후 4 37 21

## 결과
- 방금 전의 토나올정도의 Promise 체이닝을 통한 정의는 어디가고, 단 몇줄만에 어마어마한 양의 테이블을 다 조회하는 문을 만들 수 있었다
스크린샷 2021-12-12 오후 4 38 10

- 정말 너무 고통스러웠다..... 다음부터는 기능을 좀 더 알아보고 써보면 어떨까 나야

---

### reference
[sequelize 문법](https://medium.com/humanscape-tech/sequelize-part-7-querying%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC-7655306c1e32}

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.