권장하지 않는 방법과 편한 방법

2024년 12월 31일 화요일

Today I Learned

날짜

2024년 12월 31일 화요일

내용

권장되지 않는 방법은 해도 될까?

네이버 상품 상세정보에서 내가 추가한 태그를 확인해야 한다. 어떤 경우에 어떻게 변하는지 확인하기 위해 구체적으로 테스트 케이스를 설정했다. 약간의 배경지식을 더하자면 상품 상세정보 페이지는 HTML로 직접 작성하는 방식과 스마트에디터원을 사용하는 방식 2가지가 이용된다. 스마트에디터원은 HTML을 사용할 줄 모르는 사람을 위한 손쉬운 편집기 느낌이다. 사용자가 스마트에디터원으로 작성한 상품을 API로 수정할 경우, HTML 형식으로 무조건 변경된다. 그리고 HTML을 스마트에디터원으로 변경할 경우, 내용이 반영되지 않고 모두 제거된채 처음부터 다시 작성해야 한다.

경우 1. 스마트에디터원으로 작성한 상품상세정보 페이지에 API로 배너이미지를 추가

경우 2. 배너이미지를 스마트에디터원으로 직접 추가한 경우

경우 3. HTML로 작성된 상세정보 페이지에 추가한 후, HTML 코드 전체를 스마트에디터원 내에 HTML 작성 툴로 추가한 경우

시간이 충분히 지난(약 하루) 후 상세정보 내용을 API로 조회했을 떄 어떻게 나타났는지를 확인했다.

경우 1: 내가 넣은 그대로 유지되었음. 추적 가능

경우 2: 스마트에디터원으로 이미지를 넣기 위해선 링크가 아니라 파일을 넣어야 해서 나의 S3 링크가 코드에 나타나지 않았음. 추적 불가능

경우 3: 4개 정도의 <div> 태그로 둘러쌓이게 되었고, 각 태그는 고유한 ID를 가짐. 링크는 그대로 유지

1은 현재도 아무 문제가 되지 않았기 때문에 2와 3이 문제였다. 경우 2는 링크자체가 변경되어서 내가 손쓸 도리가 없었고.. 경우3 은 현재 대응되지 않아서 수정이 필요했다. <div> 는 고유한 ID를 가지기 때문에 전체 코드를 찾을 순 없다.

혹시나 해서 <div> 내에 있는 <img> 의 링크 주소만 바뀌면 전체 코드가 망가지는지 확인해보았는데 멀쩡하게 잘 바뀐다. 나는 왜 이 생각을 이제야 했을까… 그냥 이미지 링크만 바꿔주면 된다. 굳이 변경점이 없는 <a><img> 까지 포함해서 문자열로 찾으니 발생하는 문제였는데..

결국 찾고 바꿀때 링크만 추적하도록 변경해줬다. 문제는 경우 2인데… 어떻게 처리할 것인가?

처음 개발할 떄, 네이버 API에서 상품 이미지 다건 등록 이라는 엔드포인트를 봐서 이용했는데 이게 상세정보를 위한 기능이 아니라 말그대로 썸네일 같은 상품 이미지(대표 이미지, 추가 이미지 등)을 위한 기능이었다. 상품 이미지를 저장하는 기능인데.. 저장하면 링크를 반환해준다. 이 링크를 S3 링크 대신 쓰려고 했었는데, 하필 그때 인스타그램 이미지가 만료되어서 엑박되는 문제 떄문에 골머리를 한참 썩힐때였다. 링크가 언제까지 유효한가 싶어 네이버쪽에 물어봤었는데 다음과 같이 답변을 받았다.

‘[상품] 상품 이미지 다건 등록 (POST /v1/product-images/upload)’ API로 등록된 이미지에 별도의 서비스 제공 유효기간을 정하고 있진 않습니다. 그러나 대상 API로 게시하는 이미지는 상품의 대표 이미지, 추가 이미지를 등록하는 용도로만 설계되어있습니다. 설계 용도 이외의 사용에 대해서는 향후 운용 상황 변동에 따른 영향까지 보장하긴 어려울 수 있습니다. 상품 상세 설명 내용으로 이미지 게시가 필요한 경우 스마트스토어 외 외부 이미지 호스팅을 이용할 수도 있습니다.

난 이 답변에 쫄아서 그냥 S3에 저장했는데.. 이걸 쓰면 어떨까? 실제로, 경우 2번에서 내가 알아볼 수 없는 이미지 링크는 여기서 반환하는 이미지 링크와 같은 형식이었다.

물론 이 방식을 쓴다는 것은 ‘유저가 우리가 네이버 상품 이미지 저장소에 추가해준 것을 그대로 쓴다’는 가정 하이긴 한데.. 네이버 저장소에서 반환해준 URL을 저장하고 있다가, 찾아서 업데이트 된 이미지걸로 바꿔준다는 것 자체는 일리가 있다고 본다.

회고

다른 서비스는 이것대로 쓰는것 같던데… 말 잘듣는게 손해인가