sequelize 6

[Sequelize] Nested Eager Loading

[01 Eager Loading이란? ] (1) 개념 서비스가 커질수록, 참조하는 객체가 많아지고, 객체가 가지는 데이터의 양이 많아진다. 이렇게 객체가 커지면 DB로부터 "참조하는 객체들의 데이터"까지 한꺼번에 가져오는 행동은 부담이 커진다. 따라서 JPA는 참조하는 객체들의 데이터를 가져오는 시점을 정할 수 있는데, 이것을 Fetch Type이라고 한다. 그리고 이 Fetch Type이 Eager와 Lazy 두 가지로 나뉜다. Eager Loading은 한 마디로 하나의 객체를 DB로부터 읽어올 때 참조 객체들의 데이터까지 전부 열심히 읽어오는 방식을 뜻한다. 반대로 Lazy Loading은 게을러서 참조 객체들의 데이터들은 무시하고 해당 엔티티의 데이터만을 가져온다. 지금까지 쿼리를 짤 때는 따로 ..

[TypeScript Express] Sequelize의 Getters와 Setters

[01 들어가기에 앞서 ] 먼저 상황은 이렇다. 체크리스트의 true 개수를 계산해 그 날의 level 을 1, 2, 3단계로 나누어 저장한다. 각각의 단계는 초록색, 노란색, 빨간색을 뜻한다. 따라서 DB에는 int Datatype으로 저장하고 가져올 때는 green, yellow, red로 convert 해서 응답을 보내주는 과정이 필요했다. 구현을 위해 처음에는 다음과 같이 응답값을 변경하려고 했지만, TypeScript 특성상 다른 Datatype을 할당할 수 없었고 모델의 attributes에 없는 컬럼을 추가할수도 없었다. 따라서 응답값을 복사해 새로 객체를 만들고 key: value를 추가해야만 했다. getWeeklyChecklist: async (fk_user_id: string, { s..

Sequelize에서 where문에 연산자(Operator) 사용하기

[01 Operators란? ] 일단 DB에서 연산자(Operators)란 간단하게 특정 작업을 하기 위한 기호 또는 문자이다. 연산자의 종류로는 비교 연산자, 논리 연산자, 그리고 DBMS에서만 사용하는 기타 연산자들이 존재한다. 비교 연산자 : =, !=, >, < 등 좌우값을 비교하는 연산자 논리 연산자 : or, and 등 참(true), 거짓(false)을 가지고 비교하는 연산자 기타 연산자 : in, not in, between 등 저번 프로젝트에서는 MongoDB를 사용해서 Mongoose를 사용할 때도 이러한 연산자를 사용했는데 그 때는 아래와 같이 $ 표기를 이용해 연산자를 사용할 수 있었다. MySQL의 Sequelize에서도 그렇게 사용한 예제를 확인하고 비슷하게 $ 표기를 사용하려고..

[TypeScript Express] Sequelize 외래키로 참조 테이블 데이터 검색하기

관련글 1 : https://s0n9h2.tistory.com/109 [TypeScript Express] Sequelize로 MySQL 모델 Association 관계 설정하기 관련글 1 : [Typescript Express] Sequelize로 MySQL 연결하기 [Typescript Express] Sequelize로 MySQL 연결하기 [01 Typescript란? ] TypeScript는 JavaScript 기반의 언어이다. JavaScript는 클라이언트.. s0n9h2.tistory.com [01 들어가기에 앞서 ] 저번 포스팅에서 1:1, 1:N, 1:M 관계 설정에 대해 다뤘는데, 이렇게 설정해 둔 외래키로 어떻게 참조 테이블을 검색할 수 있을지 작성해보겠다. 처음 나와 팀원은 당연히(..

[TypeScript Express] Sequelize로 MySQL 모델 Association 관계 설정하기

관련글 1 : [Typescript Express] Sequelize로 MySQL 연결하기 [Typescript Express] Sequelize로 MySQL 연결하기 [01 Typescript란? ] TypeScript는 JavaScript 기반의 언어이다. JavaScript는 클라이언트 측 스크립팅 언어지만 TypeScript는 객체 지향 컴파일 언어이다. TypeScript는 JavaScript의 상위 집합으로 JavaScrip.. s0n9h2.tistory.com 관련글 2 : [TypeScript Express] Sequelize로 MySQL 기본 모델 생성하기 [TypeScript Express] Sequelize로 MySQL 기본 모델 생성하기 관련글 : [Typescript Express..

[TypeScript Express] Sequelize로 MySQL 기본 모델 생성하기

관련글 : [Typescript Express] Sequelize로 MySQL 연결하기 [Typescript Express] Sequelize로 MySQL 연결하기 [01 Typescript란? ] TypeScript는 JavaScript 기반의 언어이다. JavaScript는 클라이언트 측 스크립팅 언어지만 TypeScript는 객체 지향 컴파일 언어이다. TypeScript는 JavaScript의 상위 집합으로 JavaScrip.. s0n9h2.tistory.com [01 model 생성하기 ] MongoDB와의 차이점은 일단 schema 폴더를 사용하지 않고 model을 정의하는 파일에서 생성도 같이하는게 더 편하다는 것이었다. 그런데 이제 이게... 진짜 처음에 감도 못잡아서 많이 헤멘 부분인데 ..