[23.12.27] TIL

yy·2023년 12월 27일

개발일지

목록 보기
67/122
post-thumbnail

다시 시작됐다. 지도페이지에서 자꾸 에러가 난다. 지난번 예상했던 것과 같이 게시글 올릴 때 뭔가를 잘못하고 있는건 아닐까?
그래서 대비책으로 준비한게 두가지였다.

1. 이미지 업로드할 때 이미지 사이즈 제한처리( 한 이미지 당 1.5MB 제한을 뒀다 )
2. 사진 없이 올리지 않도록 하는 예외처리

근데도 발생한 에러. 처음에는 며칠 전 떴던 에러가 똑같은 곳에서 발생했다. 근데 여기서 그 부분이 이상한데 코드에 swagger를 넣는 바람에 줄이 밀리는데 여전히 똑같은 줄에서 에러가 났다.

코드가 반영이 안됐던건가.
지난번과 마찬가지로 로컬에서는 조회가 됐기에 서버에서 뭐가 문제인지 확인할 필요가 있었다. 그래서 다 일일히 콘솔로 찍고 서버로 배포를 다시 했다.

0|app  | GET /api/locations?categoryName=%EC%B9%B4%ED%8E%98&qa=37.47279857508396&pa=37.62998742697234&ha=126.88531649735656&oa=127.08358538773741 200 45.365 ms - 911
0|app  | prisma:query SELECT 1
0|app  | prisma:query SELECT `finalProject`.`Categories`.`categoryId`, `finalProject`.`Categories`.`categoryName` FROM `finalProject`.`Categories` WHERE `finalProject`.`Categories`.`categoryName` = ? LIMIT ? OFFSET ?
0|app  | category >>>>>>>>  { categoryId: 2, categoryName: '카페' }
0|app  | prisma:query SELECT `finalProject`.`Locations`.`locationId`, `finalProject`.`Locations`.`storeName`, `finalProject`.`Locations`.`address`, `finalProject`.`Locations`.`latitude`, `finalProject`.`Locations`.`longitude`, `finalProject`.`Locations`.`starAvg`, `finalProject`.`Locations`.`postCount`, `finalProject`.`Locations`.`CategoryId` FROM `finalProject`.`Locations` WHERE (`finalProject`.`Locations`.`latitude` >= ? AND `finalProject`.`Locations`.`latitude` <= ? AND `finalProject`.`Locations`.`longitude` >= ? AND `finalProject`.`Locations`.`longitude` <= ? AND `finalProject`.`Locations`.`CategoryId` = ?)
0|app  | prisma:query SELECT `finalProject`.`Categories`.`categoryId`, `finalProject`.`Categories`.`categoryName` FROM `finalProject`.`Categories` WHERE `finalProject`.`Categories`.`categoryId` IN (?)
0|app  | prisma:query SELECT `finalProject`.`Posts`.`postId`, `finalProject`.`Posts`.`star`, `finalProject`.`Posts`.`imgUrl`, `finalProject`.`Posts`.`LocationId` FROM `finalProject`.`Posts` WHERE `finalProject`.`Posts`.`LocationId` IN (?,?,?,?)
0|app  | location >>>>>>>>  [
0|app  |   {
0|app  |     locationId: 3,
0|app  |     storeName: '카페라르고',
0|app  |     address: '서울특별시 동작구 사당동 1039-49번지 1층',
0|app  |     latitude: '37.4774',
0|app  |     longitude: '126.9794',
0|app  |     starAvg: 0,
0|app  |     postCount: 0,
0|app  |     Category: { categoryName: '카페' },
0|app  |     Posts: []
0|app  |   },
0|app  |   {
0|app  |     locationId: 6,
0|app  |     storeName: '서울앵무새 용산점',
0|app  |     address: '서울 용산구 한강대로62길 55',
0|app  |     latitude: '37.5324',
0|app  |     longitude: '126.9736',
0|app  |     starAvg: 4,
0|app  |     postCount: 0,
0|app  |     Category: { categoryName: '카페' },
0|app  |     Posts: []
0|app  |   },
0|app  |   {
0|app  |     locationId: 7,
0|app  |     storeName: '체리커피',
0|app  |     address: '서울 광진구 능동로 284',
0|app  |     latitude: '37.5552',
0|app  |     longitude: '127.0787',
0|app  |     starAvg: 2,
0|app  |     postCount: 0,
0|app  |     Category: { categoryName: '카페' },
0|app  |     Posts: []
0|app  |   },
0|app  |   {
0|app  |     locationId: 9,
0|app  |     storeName: '근린커피',
0|app  |     address: '서울 은평구 응암로21길 23',
0|app  |     latitude: '37.5941986375938',
0|app  |     longitude: '126.915397572875',
0|app  |     starAvg: 0,
0|app  |     postCount: 1,
0|app  |     Category: { categoryName: '카페' },
0|app  |     Posts: [ [Object] ]
0|app  |   }
0|app  | ]
0|app  | paramsArray >>>>>>>>  [
0|app  |   [
0|app  |     {
0|app  |       Bucket: 'my-omo-bucket',
0|app  |       Key: 'b04c0aa7d5ac24a9f4c71841b57135aee3bb6da72b582814b7c741602eac1861'
0|app  |     }
0|app  |   ]
0|app  | ]
0|app  | signedUrlsArray >>>>>>>>  [
0|app  |   [
0|app  |     'https://my-omo-bucket.s3.ap-northeast-2.amazonaws.com/b04c0aa7d5ac24a9f4c71841b57135aee3bb6da72b582814b7c741602eac1861?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAUW5YJIJMSI3UOBG2%2F20231227%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20231227T164741Z&X-Amz-Expires=900&X-Amz-Signature=fc6d3f2e194cd57bc832f625827773b1d1a543e9a8d329671becf59f663ea007&X-Amz-SignedHeaders=host&x-id=GetObject'
0|app  |   ]
0|app  | ]
0|app  | imgUrlsArray >>>>>>>>  [
0|app  |   {
0|app  |     locationId: 3,
0|app  |     storeName: '카페라르고',
0|app  |     address: '서울특별시 동작구 사당동 1039-49번지 1층',
0|app  |     latitude: '37.4774',
0|app  |     longitude: '126.9794',
0|app  |     starAvg: 0,
0|app  |     postCount: 0,
0|app  |     Category: { categoryName: '카페' },
0|app  |     Posts: []
0|app  |   },
0|app  |   {
0|app  |     locationId: 6,
0|app  |     storeName: '서울앵무새 용산점',
0|app  |     address: '서울 용산구 한강대로62길 55',
0|app  |     latitude: '37.5324',
0|app  |     longitude: '126.9736',
0|app  |     starAvg: 4,
0|app  |     postCount: 0,
0|app  |     Category: { categoryName: '카페' },
0|app  |     Posts: []
0|app  |   },
0|app  |   {
0|app  |     locationId: 7,
0|app  |     storeName: '체리커피',
0|app  |     address: '서울 광진구 능동로 284',
0|app  |     latitude: '37.5552',
0|app  |     longitude: '127.0787',
0|app  |     starAvg: 2,
0|app  |     postCount: 0,
0|app  |     Category: { categoryName: '카페' },
0|app  |     Posts: []
0|app  |   },
0|app  |   {
0|app  |     locationId: 9,
0|app  |     storeName: '근린커피',
0|app  |     address: '서울 은평구 응암로21길 23',
0|app  |     latitude: '37.5941986375938',
0|app  |     longitude: '126.915397572875',
0|app  |     starAvg: 0,
0|app  |     postCount: 1,
0|app  |     Category: { categoryName: '카페' },
0|app  |     Posts: [ [Object] ]
0|app  |   }
0|app  | ]
0|app  | GET /api/locations?categoryName=%EC%B9%B4%ED%8E%98&qa=37.47279857508396&pa=37.62998742697234&ha=126.88531649735656&oa=127.08358538773741 200 69.688 ms - 911

왜 저 Posts에 게시글이 찍히지않는걸까?

Posts가 찍히지 않는 posts의 글을 확인했는데 삭제가 되어서 게시글이 불러와지지않았다. 없는 게시글의 imgUrl을 불러오려고 하니 자꾸 에러가 떴던것이었다.

코드를 확인해보니 posts를 삭제할 때 location의 postCount가 없으면 아예 장소가 삭제가 되는 코드가 없어서 추가해줬다.

// 게시글 삭제할 때 마지막 게시글이 삭제가 되면 로케이션 정보도 삭제가 되어야한다.
      const findLocation = await prisma.locations.findFirst({
        where: { locationId: post.LocationId }
      })

      if (findLocation.postCount === 0) {
        await prisma.locations.delete({
          where: { locationId: post.LocationId }
        })
      }

테이블의 연관관계가 많아서 이런 부분을 놓치고 말았다. 그렇게 며칠을 소비했는지 모르겠다. 꼭 연관관계를 다 하나씩 따져가면서 확인을 해야겠다. 단순히 삭제하면 연쇄적으로 지워지겠거니 했는데 그렇지 않은 관계가 존재하는걸 왜 깨닫지 못했는지...😓 이제서야 알았으니 됐다 싶다.

profile
시간이 걸릴 뿐 내가 못할 건 없다.

0개의 댓글