네이버 기프트 샵을 크롤링하여 추천 품질을 높이고자 할 때 법적 이슈는 없을까?

송현진·2025년 7월 18일
0

프로젝트 회고

목록 보기
13/17

우리는 왜 이 조사를 하게 됐을까?

무무의 선물상자에서는 사용자에게 더 나은 선물 추천을 제공하고자 고민하고 있다.
현재는 네이버 쇼핑 API를 활용해 실시간 상품 데이터를 가져와 추천에 사용하고 있으나 실제 서비스 운영 과정에서 추천 품질이 기대에 못 미친다는 피드백이 있었다.

이에 따라 네이버 기프트 샵(giftshop.naver.com)에 큐레이션된 상품 정보를 직접 크롤링하여 DB를 구축하고 추천 알고리즘의 원천 데이터를 개선하자는 의견이 나왔다. 하지만 크롤링은 법적/윤리적 논란이 있을 수 있기 때문에 이 문서에서는 해당 접근 방식이 법적으로 허용되는지, 어떤 조건을 갖추면 문제없는지, 우리는 어떤 기준으로 크롤링을 진행할 것인지를 정리하고자 한다.

크롤링으로 개선하려고 하는 이유

무무의 선물상자는 상황에 맞는 선물을 추천해주는 비회원 기반 서비스로 사용자 경험의 품질을 최우선으로 고려한다. 우리는 초기 버전에서 네이버 쇼핑 API를 활용해 상품 데이터를 실시간으로 받아와 추천 리스트를 구성했지만 실제 사용자 반응과 품질 측면에서 몇 가지 문제가 드러나기 시작했다.

우선 네이버 쇼핑 API는 일반적인 검색 기반 결과에 초점이 맞춰져 있어 감사 선물, 친구 생일, 졸업 기념 등 상황 중심의 기획전 형태나 감성 카테고리를 반영하기 어렵다. 또한 검색 결과에는 광고성 상품이나 특정 브랜드에 편중된 상품이 많이 노출되는 경향이 있어 다양한 선물 아이디어를 전달하기에는 부족함이 있었다.

실제 사용자 피드백에서도 "선물을 추천받는다기보단 단순히 제품 리스트를 나열받는 느낌"이라는 의견이 나왔고 내부 회의에서도 '이 정도 결과면 굳이 추천 시스템을 쓸 필요가 없다'는 피드백이 있었고,. 이처럼 선물이라는 맥락이 제대로 반영되지 않으면 추천 서비스로서의 차별성을 가지기 어렵다.

이에 우리는 기존 API 기반 방식의 한계를 보완하고 더 나은 추천 품질을 제공할 수 있는 대안으로 네이버 기프트 샵 페이지를 주목하게 되었다. 해당 플랫폼은 네이버가 직접 큐레이션한 기획전 중심의 선물 테마, 신뢰도 높은 브랜드 제품, 리뷰 기반 인기 상품이 구성되어 있어 사용자 만족도를 높이기에 적합했다. 상품 하나하나가 “선물용”이라는 전제가 깔려 있어 추천 맥락에도 잘 들어맞는다.

무엇보다도 기획자와 디자이너 입장에서도 “이 정도 퀄리티라면 추천 결과에 확신을 가질 수 있다”는 평가가 있었고 사용자 경험 차원에서도 ‘받고 싶은 선물’에 더 가깝다는 점에서 강점을 가졌다. 따라서 현재 우리는 기프트 샵의 기획전 및 카테고리 데이터를 크롤링을 통해 자체 DB로 수집하고 이를 기반으로 더 상황에 맞는 맞춤형 추천 결과를 제공하는 방식을 검토하고 있다.

개선 방향: 단순 API 연동을 넘어서 ‘콘텐츠 품질’을 확보하자

기존 구조에서는 네이버 쇼핑 API를 통해 키워드 기반 상품 검색 결과를 받아와 추천 리스트를 구성했다. 그러나 이 방식은 사용자가 원하는 테마형 상품을 충분히 반영하지 못했고 같은 브랜드의 유사 상품이 반복해서 노출되는 문제가 있었다.

이를 해결하기 위한 첫 번째 방향은 단순히 API 호출 결과를 필터링하거나 정렬하는 수준을 넘어 기획자 혹은 추천 알고리즘이 사용할 수 있는 “양질의 원천 데이터”를 확보하는 것이었다. 기프트 샵에서는 ‘누구에게 어떤 상황에서 어떤 마음으로’ 주는지를 기준으로 상품을 큐레이션해두고 있기 때문에 우리가 사용자에게 선물을 추천하는 서비스 목적과 정확히 일치한다.

결국 우리는 “네이버 기프트 샵의 페이지를 정기적으로 크롤링하여 우리 DB에 저장한 뒤 이를 추천 알고리즘의 재료로 사용하자”는 개선 방향으로 전환하게 되었다. 이 방식은 단순 검색이 아닌 큐레이션 기반 추천을 가능하게 하며 추천의 품질은 물론 사용자의 만족도도 높일 수 있다는 확신을 갖게 되었다.

사용 목적: 우리는 판매를 하지 않는다, 정보 제공에 집중한다

이 프로젝트에서 가장 중요한 전제는 우리가 크롤링한 데이터를 직접 판매하거나 수익화하지 않는다는 점이다. 즉, 수집한 상품 정보를 기반으로 우리 서비스에서 상품을 판매하거나 구매를 유도하는 것이 아니라 상품 상세 페이지로 연결되는 링크는 모두 네이버 기프트 샵의 원본 URL로 연결되며 실제 구매는 사용자와 네이버 간에 이루어진다.

또한 우리는 상품 정보를 가공하거나 수정하지 않고 상품명, 이미지, 가격 등의 정보를 그대로 노출한다. 사용자는 우리 서비스에서 추천받은 상품 중 하나를 클릭하면 곧바로 네이버 기프트 샵 상세 페이지로 이동하게 된다.

정리하자면 우리는 쇼핑몰처럼 상품을 직접 팔지도 않고, 광고를 유도하지도 않는다. 단지 사용자에게 유의미한 추천을 제공하고 그 출처를 정확히 명시하며 원 페이지로 연결해주는 중간 안내자 역할을 한다. 이러한 구조는 실제로 네이버 측에 트래픽을 유도하는 구조이기 때문에 저작권 침해나 영업방해 측면에서도 상대적으로 자유롭다고 판단할 수 있다.

법적 리스크를 줄이기 위한 실천 방안

네이버 기프트 샵의 데이터를 수집할 때 발생할 수 있는 법적/윤리적 리스크를 최소화하기 위해 우리는 다음과 같은 구체적인 방안을 수립하였다. 기술적 조치와 운영 방침을 함께 마련하여 크롤링을 안전하고 책임감 있게 운영하고자 한다.

Step 1. robots.txt 정책 준수

네이버 기프트 샵의 robots.txt 파일을 확인한 결과 User-agent: *에 대해 특정 페이지 접근을 제한하는 Disallow 규칙이 별도로 지정되지 않은 경우 해당 페이지는 접근이 가능하다.
우리는 이 파일의 정책을 철저히 준수하여 접근이 명시적으로 허용된 범위 내에서만 크롤링을 수행할 계획이다.

User-agent: *
Disallow: /some-private-path

예를 들어 /product, /event, /category 등 우리가 수집하려는 페이지가 Disallow 항목에 명시되어 있지 않다면 접근이 허용된 것으로 간주할 수 있다. 단, 향후 robots.txt가 변경될 가능성도 고려하여 정기적으로 해당 파일을 자동 확인하는 로직을 도입할 계획이다.

Step 2. 요청 제한 및 서버 부하 최소화

네이버 측에 과도한 요청으로 인한 서버 부하나 트래픽 피해를 주지 않도록 요청 빈도와 구조에 대한 조치를 마련할 것이다.

조치설명
1~2초 딜레이크롤링 요청 간에 일정 시간 간격을 두어 서버에 부담을 주지 않도록 함 (time.sleep() 또는 setTimeout() 적용)
User-Agent 설정MumuGiftBot/1.0 등 명확한 봇 이름과 목적을 포함한 User-Agent 헤더를 통해 투명한 접근 의사 전달
비정상 접근 금지로그인 영역, 비동기 렌더링이 필요한 내부 페이지 등은 크롤링 대상에서 명시적으로 제외
주기적 캐싱자주 변경되지 않는 상품 정보는 크롤링 결과를 DB나 Redis에 일정 시간 동안 캐시하여 재요청 최소화

Step 3. 출처 명시 및 콘텐츠 복제 방지

수집된 콘텐츠에 대해 출처를 명확히 밝히고 이미지나 텍스트를 재가공 없이 그대로 표시하는 정책을 적용한다. 이를 통해 저작권 및 부정경쟁방지 이슈를 최소화한다.

항목정책
이미지자체 서버에 다운로드 및 저장 X / 이미지 주소 링크만 사용 O
상품 제목, 가격네이버 기프트 샵 페이지에서 그대로 수집하되 UI에 “출처: 네이버 기프트 샵” 등 출처를 명시
상품 상세 이동상품 클릭 시 절대 우리 도메인에서 열리지 않고 항상 giftshop.naver.com의 원본 페이지로 이동 (referrer 유지)
크롤링된 정보 표기서비스 내 모든 상품 카드 혹은 상세 정보 하단에 “이 상품은 네이버 기프트 샵에서 판매 중입니다” 문구를 삽입하여 콘텐츠 출처를 명시

이 구조를 통해 우리는 기술적·법적 충돌 없이 선물 추천 품질을 높이고 서비스 투명성과 신뢰성도 함께 확보할 수 있다. 위 정책은 문서화하여 내부 운영 기준으로 삼고 추후 네이버 이용약관 변경이나 이슈 발생 시 즉각 대응할 수 있는 구조도 마련할 예정이다.

그렇다면 우리는 안전한가? 법적 리스크 평가와 결론

전체적인 구조를 다시 돌아보면 우리는 상업적 목적 없이 정보 수집을 수행하고 있으며 네이버에 명백한 피해를 주는 구조가 아니다. 오히려 트래픽을 네이버로 유도하고 콘텐츠를 원형 그대로 표시하며 저작권적 침해 소지가 있는 이미지 저장도 하지 않는다.

또한 기술적으로도 robots.txt의 정책을 철저히 준수할 예정이며 네이버 서버에 부하를 줄 수 있는 과도한 요청이나 비정상 접근은 피할 것이다. 크롤링 대상이 로그인 없이 누구나 접근 가능한 공개 페이지라는 점도 중요한 기준이다.

결론적으로 우리가 현재 제안한 크롤링 방식은 법적으로 명확히 금지되는 요소를 회피하면서도 네이버 기프트 샵의 콘텐츠를 유익한 방향으로 확장하는 사례에 가깝다. 다만 이 구조를 장기적으로 운영하기 위해서는 네이버 측 이용약관이나 공지사항의 변경에 민감하게 대응할 수 있는 체계가 필요하다. 또한 크롤링을 기반으로 한 데이터 수집은 항상 기술적인 적법성과 더불어 서비스의 윤리성도 함께 고려해야 하므로 우리는 지속적인 정책 모니터링과 기술적 검토를 병행하여 문제 발생을 방지할 계획이다.

📝 느낀점

이번 작업을 통해 크롤링이라는 기술적 수단을 단순히 데이터를 수집하는 도구로 보기보다는 사용자 경험과 추천 품질을 직접적으로 개선하기 위한 하나의 중요한 선택지로 다시 바라보게 되었다. 특히 크롤링 대상이 되는 네이버 기프트 샵은 단순히 상품 목록이 아닌 ‘선물’이라는 맥락에 맞춘 큐레이션 구조를 갖추고 있었기 때문에 기존 API 기반 추천보다 훨씬 자연스럽고 설득력 있는 추천 결과를 만들 수 있을 것이라는 가능성을 확인할 수 있었다.

또한, 법적 리스크를 우려하며 무조건 피하기보다는 robots.txt 정책 확인, 서버 부하 최소화, 출처 명시, 이미지 링크 처리 등 구체적인 실천 방안을 마련함으로써 윤리적이고 책임 있는 방식으로 데이터를 활용할 수 있다는 점도 배웠다. 크롤링은 잘못 사용하면 위험할 수 있지만 그만큼 올바르게 사용하면 오히려 공식 API가 제공하지 못하는 영역에서 더 깊은 사용자 경험을 설계할 수 있다는 점에서 가치 있는 수단이 될 수 있다고 느꼈다.

무엇보다 이 고민의 중심에는 ‘사용자에게 더 나은 추천을 어떻게 제공할 것인가’라는 질문이 있었고 그 해답을 기술뿐 아니라 기획, 디자인, 법적 검토까지 아우르는 다각도의 시선으로 접근할 수 있었다는 점에서 의미 있는 과정이었다. 앞으로도 기술적 도입 이전에 항상 “왜 이걸 하는가?”에 대한 명확한 이유를 바탕으로 문제를 해결해나가야겠다는 다짐을 다시 한 번 하게 되었다.

profile
개발자가 되고 싶은 취준생

0개의 댓글