출근 12일차

·2022년 9월 7일
1

회사이야기

목록 보기
12/118

아 SQL

오늘은 SQL이랑 짝짝꿍 한 날이라 좀 짧다
한번 날잡고 TypeORM 사용법을 적어놔야겠다. 나도 편하고 다른 사람도 볼 수 있게

어...이게맞나?

특정 API가 로직 상 이해가 안가는 부분이 있었다.

수량이 0개가 되면 자동으로 해당하는 데이터가 소프트딜리트가 되는 현상이 있었다.

근데 그 API는 소프트딜리트가 되는 값도 포함해서 가져와야했다.

그래서 이해가 안됐다;

아니 어짜피 가져올거면, 그냥 놔두면 되는데 왜 지워서 가져오는걸 힘들게 하는거지?

알고보니 도메인 관련 지식이 있어야 이해를 할 수 있는 것이였고
좀 복잡적으로 엮여있는 것이 있어가지고 ㅎㅎ; 쉽사리 해결을 못하고, 고민을 하고 있는 부분이였다.

수요일은 프로덕트 백엔드 회의!

회사에는 한달에 3번의 회의(회고)가 있다.

매주 수요일 : 프로덕트 팀 회고
매주 목요일 : 백엔드 팀 스터디 & 회고
매달 첫째 목요일 : 백엔드 한달 스터디 & 회고

오늘은 수요일이라 프로덕트 팀 회고가 있었는데

현재 일이 어떤 것이 진행되고 있는지
요즘 잘 안되는게 뭐가 있는지
아님 궁금한게 뭐가 있는지 같은 것을 물어볼 수 있는 시간으로 마련됐다.

그래서 위에 저런 질문도 할 수 있었다 ㅎ;ㅎ
도메인에 관련된 부분이라서... 조금만 생각을 했더라면 알 수 있던 것이지만

내가 있는 회사는 평소에 알고 있던 도메인과는 같지만, 또 살짝은 다른 곳이라
아마 조만간 창고를 보고 일 굴러가는 것을 본다면, 그때는 알게될 것 같다.

이 쓰레기를 어찌할꼬?

지금 회사에서 쓰는 ORM은 TypeORM 0.2버전대다.

애초에 문제가 많은 ORM + 저버전이라 난항을 겪고 있다(...)
나도 부캠에서 0.2버전을 쓰면서 아...뭐이리 안되는게 많을까 라는 고민을 했는데

실무를 느껴보니 더더욱 심하더라;

버전업 하면 해결되는거 아니에요?

TypeORM이 존나 개노답인게 버전업을 하면 하위호환이 안된다.

0.2 버전에서는 connection 으로 쿼리빌더로 이을 수 있었는데
이게 datasource로 바뀐다.

그리고 내가 아는 것으로는 ORM 구문 중 릴레이션을 거는 구문이 있는데

v0.2

await this.messageRepository.find({
        where: {
          user: currentUser.userId,
          sendReceived: 'SEND',
        },
        relations: ['messageInfo'],
      });

v0.3

await this.messageRepository.find({
        where: {
          user: currentUser.userId,
          sendReceived: 'SEND',
        },
        relations: {
        messageInfo:true
        },
      });

Sibal 진짜 생각이 없나 하위호환을 신경 안쓰고 도대체 무슨 짓거리를 하는지 모르겠다 진짜

아무튼 이걸 만들어야한다.

  1. 일반적인 데이터를 가져온다.
  2. 소프트딜리트 된 데이터를 가져온다.
  3. 소프트딜리트가 된 데이터 중, 특정 값이 있다면 0으로 변환한다.
  4. 두개의 데이터를 한개로 합친다.

MySQL에서는 Union 이라는 것을 사용하면 된다고 한다.

근데 TypeORM에서는 그냥 지원을 안하네?

장난하냐진짜

profile
물류 서비스 Backend Software Developer

0개의 댓글