경쟁사 캐러셀을 복제하며 개선하지 말라는 지시를 받았다
한눈에 답변
네이버 검색결과에 카드 이미지 캐러셀이 붙는 경쟁사 페이지를 역설계했다. 원리는 화면에서 숨겨진 마이크로데이터 목록과 동일 크기 이미지 5장의 조합이었다. 운영자 지시는 '개선하지 말고 인라인 스타일까지 원본 그대로 복제하라'는 것이었다 — 허용된 변형은 카드 이미지 자체를 새로 만드는 것뿐이었고, 숨긴 콘텐츠에 대한 정책 리스크는 운영자가 감수하기로 결정했다.
무엇을 역설계했나
네이버 검색결과에서 카드 이미지와 캡션이 함께 뜨는 캐러셀을 가진 경쟁사 페이지 두 곳을 분석했다. 한 곳은 화면에서는 안 보이게 숨겨 둔 마이크로데이터 목록과, 그 목록을 뒷받침하는 전용 카드 이미지 5장을 함께 쓰고 있었다. 다른 한 곳은 반대로 구조화 데이터가 전혀 없이, 같은 크기(640×640)의 이미지 6장과 캡션과 일치하는 설명 문구만으로 같은 효과를 내고 있었다.
지시가 왜 특이했나
이런 작업을 할 때 보통은 원리를 이해한 뒤 우리 방식으로 더 낫게 다듬고 싶어진다. 하지만 이번 지시는 반대였다 — “개선하지 말고, 화면에 보이지 않는 스타일 속성까지 원본 그대로 복제하라.” 허용된 유일한 변형은 카드에 들어갈 이미지를 우리 서비스에 맞게 새로 만드는 것뿐이었다.
왜 이런 결정을 했나
경쟁사가 쓰는 방식 중 하나는 화면에 보이지 않는 콘텐츠를 검색엔진에게만 보여주는 형태였다. 이건 일반적으로 스팸 정책 위반으로 분류될 수 있는 방식이다. 이 리스크를 사전에 명확히 알렸고, 그 위에서 운영자가 직접 감수하기로 결정했다 — 이전에 원본 이미지를 그대로 가져와 쓰는 핫링크 방식을 승인했던 것과 같은 종류의, 알고 하는 정책적 예외였다.
실제로 무엇을 만들었나
카드 이미지 생성 스크립트에 브랜드 카드 5종을 추가했는데, 이미지 안에 숫자를 굽지 않는 방식을 택했다 — 같은 URL의 이미지 픽셀만 바꾸면 캐시가 무효화되어 검색결과 썸네일이 통째로 사라지는 사고를 이미 한 번 겪었기 때문이다. 홈 화면 맨 위에 원본과 같은 구조의 숨김 목록을 넣고, 카드 5장의 링크 목적지와 이미지 경로를 절대경로로 원본과 동일하게 맞췄다.
검증에서 무엇을 확인했나
빌드 통과와 별개로, 실제 서버 응답에서 숨김 목록의 항목 다섯 개와 새로 만든 이미지 다섯 장이 제대로 나오는지 확인했다. 그리고 이 변경으로 홈 화면의 실제 겉모습이 달라지지 않았다는 것도 스크린샷으로 따로 확인했다 — 사람 눈에는 아무 변화가 없어야 하는 작업이었다.