[이슈해결] 이미지서버 에러 픽스

이나현·2023년 5월 27일
0

오라운드

목록 보기
15/18
post-thumbnail

이미지서버 에러 로그

== oround-ce-notification 에러 내용 분류 2023.01.26==

A. api/22435/520377/1/112002::T00056.jpg
=> :: 옵션정보 누락

B. api/9048/348413/3/112003:T00040.webp
=> =-groupDelimiterName=-= accessory 존재하지 않는 분류
상품코드: 9010820001

C. api/22435/520377/1/112002:T00056.jpg
=> API요청 에러 https://api.oround.com/api/v2/artwork/product/edit-info
( errorCode: 'V1001', errorMessage: "'사이즈 옵션 코드' 정보는 필수입력 항목입니다.")

D. api/26893/593706/1/112002:T00003,112024:T00182,112003:T00033.jpg
=> eventProduct 없는 이미지 패스 호출
=> 현재 없는 상품

E. api/25034/569388/2/112003:T00033.webp
=> 컬러코드가 없어서 디바이스 이미지 못가져옴. 정상호출 예시(api/18863/540796/3/112014:T00261,112001:T00095,112021:T00276,112003:T00033.webp)

F. api/12423/356341/2/112003:T00033.webp
=> 어페럴 사이즈 코드 옵션만 호출함. printPositionCode, colorCode등의 옵션정보가 없다. 정상호출 예시( https://cdn-prd-image.oround.com/api/13213/362474/1/112002:T00003,112003:T00034,112020:T00129,112004:T00056.webp)

G. api/null/335447/1/null.jpg
=> null 정보 호출...
=> 현재 삭제된 상품

H. api\/24412\/561247\/1\/112003:T00033.jpg
=> 옵션 추가하고 1번 이미지를 호출하는 곳 확인

원인파악

A. 옵션정보 누락

B.accessory 존재하지 않는 분류 ⇒ 예시 상품: Dex 스티커 팩

C. 편집기 문제

D. eventProduct 없는 이미지 패스 호출(?)

E. 컬러코드가 없어서 디바이스 이미지 못가져옴.

예시: 자석

아래 내용: 핸드폰 케이스

{"invalidationList":[{"type":"Generator","requestURL":"api\/28885\/620083\/3\/112003:T00033.webp","message":"not found image","errorUrl":"undefined.png","artProductIndex":"620083","artworkIndex":"28885"}]}
4:41
[운영서버]
{"invalidationList":[{"type":"Generator","requestURL":"api\/28885\/620083\/2\/112003:T00033.webp","message":"not found image","errorUrl":"/undefined.png","artProductIndex":"620083","artworkIndex":"28885"}]}
4:41
[운영서버]
{"invalidationList":[{"type":"Generator","requestURL":"api\/28885\/620083\/1\/112003:T00033.webp","message":"not found image","errorUrl":"undefined.png","artProductIndex":"620083","artworkIndex":"28885"}]}

F.어페럴 사이즈 코드 옵션만 호출함

오류 픽스

  • E/F 수정 관련 자체 QA [개발서버 테스트]
    1. 옵션을 마구 변경한 뒤 장바구니 버튼 클릭 시, 사이즈가 2개 세팅되면서.. 오류 생김
    • 패션의류
      • 남녀공용의류
      • 남성의류
      • 여성
      • 유아동
    • 스티커
    • 굿즈
      • 아크릴키링
      • 아크릴스탠드
      • 아크릴코스트 ⇒ 없는 상품
      • 유리컵
      • 리유저블텀블러
      • 피크닉매터
      • 담요
      • 팀케이스
      • 핀버튼
      • 거울버튼
      • 자석버튼
      • 슬리퍼 ⇒ 없는 상품
      • 장패드 ⇒ 없는 상품
      • 모자 ⇒ 없는 상품
      • 앨범 ⇒ 없는 상품
      • 인형 ⇒ 없는 상품
    • 문구
      • 노트
      • 스프링노트
      • 카드
      • 메모패드
    • 폰액세서리
      • 젤리폰케이스
      • 하드폰케이스
      • 투명젤하드
      • 투명초슬림
      • 스마트톡
      • 에어팟케이스
      • 버즈케이스
    • 잡화
      • 에코백
      • 파우치
    • 월아트
      • 프레임액자
      • 프레임리스액자
      • 아트프린트
      • 캔버스
💡 * 문제 원인: productImage 내 changeImage 함수 내 propertyOption 부분에서 초기에 set해지는 option이 사이즈이기 때문에 사이즈가 먼저 pass * 해결 방법 1) setSizeOption 부분과 setOptions 부분이 set해주는게 다른 이유를 찾아보기 2) 만약, 둘을 구분해야한다면 setOption해주는 부분에 따라서 sizeOption값을 가져올 수 있도록 수정 3) 메가셀럽의 경우를 분기처리 상단으로 올려서 분기처리 수정

G. null로 요청하는 곳 찾아야함

H. 1번 이미지를 호출하면서 옵션을 요청하는곳 확인
⇒ 1번 이미지를 호출하면서 .jpg로 박혀있는 내용은 없애고 반영 완료 (이미지가 깨지면 확인필요)

* 해당 내용들이 여러번 불리기도 함
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/3701\/204171\/1\/112003:T00035,112018:T00120.jpg","message":"204171  invalid","artProductIndex":"204171","artworkIndex":"3701"}]} => 삭제되거나 존재하지 않는 데이터
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/13040\/359049\/1\/112003:T00033.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"359049","artworkIndex":"13040"}]} => 고구마머리(아크릴키링)
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/22275\/517733\/1\/112003:T00033.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"517733","artworkIndex":"22275"}]}=> 고구마머리(스마트톡)
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/9048\/348413\/1\/112003:T00033.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"348413","artworkIndex":"9048"}]} => dex 스티커팩
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/5496\/304846\/1\/112003:T00035.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"304846","artworkIndex":"5496"}]} => 단군 청춘부재반팔티
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/5496\/304834\/1\/112003:T00033.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"304834","artworkIndex":"5496"}]} => 단군 청춘부재스냅백
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/22262\/517700\/1\/112003:T00035.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"517700","artworkIndex":"22262"}]} => gazeroshin 패브릭포스터
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/22246\/517480\/1\/112003:T00034.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"517480","artworkIndex":"22246"}]} => gazeroshin 벨보아담요
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/22248\/517529\/1\/112003:T00034.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"517529","artworkIndex":"22248"}]} => gazeroshin 패브릭포스터
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/22251\/518058\/1\/112003:T00033,112026:T00218,112027:T00220.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"518058","artworkIndex":"22251"}]} => 야전삽짱재 셋업
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/24411\/561246\/1\/112003:T00033.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"561246","artworkIndex":"24411"}]} => 83부부 소주잔 세트
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/24412\/561247\/1\/112003:T00033.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"561247","artworkIndex":"24412"}]} => 83부부 소주잔 세트
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/4470\/251032\/1\/112003:T00033,112026:T00219,112027:T00221.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"251032","artworkIndex":"4470"}]} => 야전삽짱재 셋업
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/4470\/251035\/1\/112003:T00035.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"251035","artworkIndex":"4470"}]}  => 야전삽짱재 후디 단품 
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/8425\/336999\/1\/112003:T00035.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"336999","artworkIndex":"8425"}]} => 야전삽짱재 티셔츠
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/22251\/518057\/1\/112003:T00033,112026:T00219,112027:T00220.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"518057","artworkIndex":"22251"}]} => 야전삽짱재 셋업(블랙)
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/22251\/518064\/1\/112003:T00035.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"518064","artworkIndex":"22251"}]} => 야전삽짱재 티셔츠(블랙)
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/789\/33404\/1\/112003:T00036,112018:T00120.jpg","message":"33404  invalid","artProductIndex":"33404","artworkIndex":"789"}]} => 삭제되거나 존재하지 않는 데이터
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/27423\/605603\/1\/112003:T00033.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"605603","artworkIndex":"27423"}]} => 무임술차 소주잔
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/28528\/618266\/1\/112003:T00036.jpg","message":"Cannot read properties of undefined (reading 'init')","artProductIndex":"618266","artworkIndex":"28528"}]} => exploringRabbit 테니스 릴렉스핏 맨투맨
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/4013\/219638\/1\/112003:T00035,112018:T00120.jpg","message":"219638  invalid","artProductIndex":"219638","artworkIndex":"4013"}]} => 삭제되거나 존재하지 않는 데이터

I. 2번 이미지 jpg로 호출
⇒ 대부분의 케이스가 촛불꽃 아트워크의 경우이므로, 확인 필요

{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/17788\/450750\/2\/112003:T00042,112010:T00070,112018:T00121.jpg","message":"size empty","errorUrl":"","artProductIndex":"450750","artworkIndex":"17788"}]}
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/17780\/450749\/2\/112003:T00240,112006:T00236,112015:T00237,112010:T00243.jpg","message":"size empty","errorUrl":"","artProductIndex":"450749","artworkIndex":"17780"}]}
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/17792\/450751\/2\/112014:T00260,112001:T00095,112003:T00033,112021:T00204.jpg","message":"not found image","errorUrl":"https:\/\/oround-image-generator-resources.s3.ap-northeast-2.amazonaws.com\/1040060001\/167001\/model\/undefined_T00033.png","artProductIndex":"450751","artworkIndex":"17792"}]}
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/17782\/450746\/2\/112003:T00040,112015:T00091.jpg","message":"size empty","errorUrl":"","artProductIndex":"450746","artworkIndex":"17782"}]}
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/17779\/450744\/2\/112003:T00042,112010:T00070,112018:T00121.jpg","message":"size empty","errorUrl":"","artProductIndex":"450744","artworkIndex":"17779"}]}
{"invalidationList":[{"type":"Generator","requestURL":"https:\/\/cdn-prd-image.oround.com\/api\/17782\/450747\/2\/112003:T00040,112015:T00128.jpg","message":"size empty","errorUrl":"","artProductIndex":"450747","artworkIndex":"17782"}]}

⇒ 기존 분기처리는 store.images?.productDetailImages.slice()[0] 으로 진행하면서 해당 조건문이 메가셀럽 여부를 체크하는지 불명확했다.

⇒ 현재 메가셀럽 여부는 판매자가 메가셀럽인지 자체를 보고 데이터를 내려주기 때문에 이미지서버를 타는지 아닌지의 플래그가 될 수 없었다.

⇒ 따라서 option이 있는 이미지서버를 타는 작품인지, 직접 이미지를 올린 작품인지 구분할 수 있는 구분자로 cdnYn을 내려줘 분기처리를 진행하기로 함

profile
technology blog

0개의 댓글