아 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 진짜 생각이 없나 하위호환을 신경 안쓰고 도대체 무슨 짓거리를 하는지 모르겠다 진짜
아무튼 이걸 만들어야한다.
MySQL에서는 Union 이라는 것을 사용하면 된다고 한다.
근데 TypeORM에서는 그냥 지원을 안하네?
장난하냐진짜