쿼리문에서 또는 사용법

2024년 7월 26일 금요일

Today I Learned

날짜

2024년 7월 26일 금요일

내용

또 이슈..

또 이슈가 터졌다. 우리 프로덕트 리뷰 기능에는 구글 검색에 나타나는 제품 스니펫을 추가해주는 기능이 있다. 제대로 들어갔는지는 링크에서 확인해보면 되는데, aggregateRating과 리뷰가 없다고 결과가 나온다. 스니펫이 없다거나, 스니펫에 들어갈 데이터가 상품 메타필드에 없거나 하는 문제가 있을까 싶어 열심히 찾아봤는데 다 있다. 그럼 도대체 어디가 문제인가…

비정상을 찾는 최고의 방법은 정상과 비교해보는 법. 우리 서비스를 이용하는 다른 샵들의 대시보드로 들어가서 구글 스니펫을 사용하는 샵들도 테스트를 돌려봤다. 근데 다 똑같은 오류가 뜬다..? 그럼 둘 중 하나다. 저게 뜨는게 정상적인 상태였거나, 애초에 기능 자체가 고장나버린 상태거나.. 월요일에 도움을 받아 다시 봐야 겠다. 혹시나해서 구글에 검색해봤는데 역시나 리뷰 갯수나 평점 등의 스니펫은 안뜨긴 한다. 아마 고장났나보다…

바본가?

id가 1, 2인 샵 데이터 2개가 있을 때, 쿼리를 작성했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
stmt_1 = select(models.Shop).where(
	models.Shop.id == 1 or models.Shop.id == 2
	)
shop_1 = db.execute(stmt_1).scalars().all()
print(len(shop_1))

>> 1

stmt_2 = select(models.Shop).where(
	or_(models.Shop.id == 1, models.Shop.id == 2)
	)
shop_2 = db.execute(stmt_2).scalars().all()
print(len(shop_2))

>> 2

id가 1이거나 2인 모든 샵을 찾을땐 or_ 를 써야한다. 이걸 이제 알았다니. 바본가? 위처럼 적고 데이터베이스랑 결과값이 다르게 나오길래 뭔가 싶었다. 사실 코파일럿이 나의 본체인걸까?

회고

아임리포트를 람다함수에서 실행한다고 옮기는 과정이 오래걸렸다. QA도 지체됐고, 아직도 할 일이 남았다… 근데 제일 바쁠때 중요한 이슈가 계속 터진다. 심지어 내가 히스토리를 잘 모르는 메일 요청이나 스니펫 부분이…

하.. 성장을 위한 실크로드…