일지/TIL

TIL 220802

JIN_Coder 2022. 8. 2. 22:26

이번 과제의 최대 고비들

바로 데이터베이스 전환(sql로), map함수에서 await으로 데이터 찾은 뒤 응답하기

 

오전 아침부터 일단 데이터베이스 전환을 위해 생활코딩 mysql도 보고 관계 설정 구글링도 해보았는데

잘 되지는 않았다. 어제 전환을 하면서 데이터는 잘 저장되고, 수정도 가능하지만, 관계 설정을 하지 않아서

결국 몽고 디비처럼 사용하고 실정이다.

User 테이블에서 userId를 가져와 Post 테이블의 userId를 연결하는 게 아니라

그냥 토큰에서 userId를 뽑아서 강제로 값을 넣어주고 있었다.

점심때까지 관계 설정을 해결하고 싶었지만 이 부분도 실마리조차 잡을 수 없을 것 같아서

고민을 했다.

 

고민후 내린 내 결정은 일단 넘어가자

과제를 완벽하게 하는 것도 중요하겠지만, 관계 설정을 위해 완성을 못한느 것보단, 조금 부족하더라도 완성하는 쪽으로 결정했다.

그래서 일단 지금의 모습 그대로 몽고 디비처럼 값을 직접 할당해주는 방식으로 기능들을 완성하기로 생각했다.

 

다행히 내가 생각한 좋아요 기능의 로직은 수월하게 진행되었는데...

또다시 두 번째 고비를 만났다. 필요한 데이터를 찾아서 응답에 넣고 보내야 하는데 응답을 먼저 해버리고 또 나중에 데이터를 찾고 있었다...

map 함수와 await을 같이 쓰니까 가뜩이나 어려운데 감이 오지 않아서 막 stackover flow에도 질문을 남기고, 슬랙에도 도움을 요청했다.

매니저님이 하나하나 댓글 달아주시면서 promise.all이라는 것으로 해결했다.

원하는 데이터를 찾아서 then을 통해 응답을 해주니 해결되었다.

분명 어제 내가 혼자 알아볼 땐 promise.all을 봐도 어떻게 해야 할지 모르겠던데

매니저님과 같이 해보니까 조금씩 풀리더니 해결되었다.

 

너무 감사드리다 ㅜㅜ 한참을 그 코드를 보면서 이해하려고 했으나 100% 이해는 되지 않았다.

그리고 내가 좋아요 누른 게시물을 보여주는 부분도 방금과 같은 코드를 응용해서 혼자서 해결했다.

와... 이게 되네 ㅠㅠ 이로써 기능 구현은 모두 마쳤다.... 

내일 배포를 통해서 제출을 미리 하고, 남은 고비 씨퀄라이즈로 관계 설정을 하거나 mysql을 직접 작성해서 관계를 맺는 것을 연습해 봐야겠다.

 

휴.. 그래도 해결해서 다행이다...

오늘 공부한 개념

https://jin-coder.tistory.com/79

 

sequelize CRUD 사용법

테이블 조회(findAll, findOne) findAll 쿼리 결과를 배열 객체로 반환 조건에 맞는 데이터 전부를 배열로 반환한다. const { User } = require('./models'); // 유저 테이블 안에 있는 모든 데이터를 가져옴 cons..

jin-coder.tistory.com

 

'일지 > TIL' 카테고리의 다른 글

TIL 220804 주특기 숙련 끝  (0) 2022.08.04
TIL 220803  (0) 2022.08.03
TIL 220801 - 베이터베이스 전환 문제  (0) 2022.08.01
TIL 220730 - await 고통... 해결못함 ㅠ  (0) 2022.07.31
TIL 220729  (0) 2022.07.29