꾸준히 오래오래

데이터 엔지니어의 공부 곳간✏️

Programming 3

[TypeORM] QueryBuilder에서 getRawMany시 skip and take 오류

현재 진행하고 있는 사이드프로젝트에서 TypeORM QueryBuilder를 사용하여 작업 중에 getRawMany에서 skip, take가 작동하지 않는 상황을 마주했다.🤔 처음에는 쿼리의 문제인 줄 알고 쿼리빌더 결과로 나온 쿼리를 디버깅하다가 문제가 없는 것 같아서 검색하니..! raw data에서는 작동하지 않는다는 사실을 알게 되었다. 그래서 해당 경우에는 limit, offset을 사용해야 한다. 우선은 오류 수정을 위해 limit, offset을 사용했으나, 사실 해당 쿼리가 성능이 좋지 않음을 알고 있어서 페이지네이션 방식을 인덱스를 타도록 커서기반 방식으로 고치는 방향을 고려해야겠다.💪🏻 참고 자료 https://stackoverflow.com/questions/57819937/typeo..

Programming/Node.js 2023.02.11

Mongoose error - cyclic dependency detected

Nosql로 mongoDB를 사용 중이고, mongoose라는 라이브러리를 사용 중인데 다음과 같은 에러를 서버에서 발견했다. (참고: node version - 14.18.0) 해당 오류가 나기 전 후를 살펴보았고, 다음과 같은 상황이라는 것을 알게 됐다. axios를 이용한 http 통신에서 status code 500대의 error난 상황이 발생했고, 이후로 해당 error object 전체를 DB에 저장하는 과정에서 발생하는 상황 error 객체 전체를 넣으려고 하는 부분에서 문제가 있는 것 같아서, error를 stringfy 한 결과를 저장하도록 변경하였다. 변경 후에 해당 오류가 더 이상 발생하지 않았다.🤔 검색을 해보니 나와 같은 상황을 겪은 분의 글도 보았고, axios의 문서도 살펴보았..

Programming/ETC 2022.04.25

Git Stash 사용하기 - 커밋하지 않고 변경 사항 저장하기

열심히 A라는 브랜치에서 작업 중이었는데, 오류가 발생하는 등에 이유로 다른 브랜치로 이동해야 하는 경우가 있다.🤭 특히 회사에서 일하면서는 이런 일을 빈번하게 겪었다. 코드리뷰에 대한 답변이 와서 수정이 필요할때, 긴급한 오류를 처리할 때 등등 그럴때마다 아직 미완서인 코드들을 불필요한 커밋을 올리고, checkout 했었다.. 그런 내 이야기를 듣고, 동료분이 stash를 쓰면 되지 않냐고 해서 찾아보고 이걸 왜 이제 알았을까 생각이 들었다..! 커밋하지 않고, 변경사항 저장하기! git stash 간단 정리 git stash : 변경 사항 저장 git stash list : stash한 내역 확인 git stash apply [stash id] : stash한 내역 불러오기(id 미지정시 가장 최근..

Programming/ETC 2022.01.30