사용자 - EC-모니터

Download Report

Transcript 사용자 - EC-모니터

상품등록 방식 비교
http://www.ec-monitor.com
2012년 4월 23일
(주)에이치케이넷츠
서론
현재 스크래핑을 사용하는 솔루션이 늘어나고 있고, 일부 쇼핑몰에서는 OpenAPI를 제공하고
있습니다.
그러나 스크래핑과 OpenAPI 두 가지 방식 특히 스크래핑 방식은 쇼핑몰 서버에 여러 가지 문제
를 일으킬 뿐만 아니라 쇼핑몰 서버에 부하를 가중시키고 있는 상황입니다.
이는 현재 상황을 보면 쉽게 알 수 있는데 쇼핑몰 어드민이 점점 복잡해지고 있다는 점을 감안
하더라도 예전에 비해 어드민의 동작이 매우 느려졌고, 어드민 화면이 정상적으로 열리지 않는
현상이 빈번하게 발생하는 결과로 이어지고 있습니다.
실제로 대형몰들이 어드민 개편 때 로직 상의 문제보다 부하 문제가 심각하게 발생하고 있으며,
당사도 기능적인 부분보다 오히려 어드민이 원활하지 않을 때의 처리에 대부분의 시간을 투자
하고 있는 상황입니다.
이는 예전에는 거의 발생하지 않던 현상이며, 필요 없던 작업이었습니다.
당사 뿐만 아니라 이런 문제로 인해 쇼핑몰도 서버 증설 및 유지보수로 인한 비용 증가, 어드민
에서 등록하는 업체들의 작업 지연으로 인한 간접적인 피해가 발생하고 있다고 판단됩니다.
이에 여러 가지 방식을 비교하여 정리하였으니 참고하여 주시기 바랍니다.
감사합니다.
HKNets Co., Ltd.
익스플로러의 역할
익스플로러의 역할은 여러 가지가 있지만 크게

HTML 내용에 따라 화면 구성

사용자가 입력한 내용을 서버에 전달
하는 역할을 합니다.
예를 들어 다음과 같은 HTML은
<form name=f method=“post” action=“http://www.abc.com/login.jsp”>
ID <input type=text name=id>
비밀번호<input type=password name=pwd>
<input type=submit value=로그인>
</form>
익스플로러가 다음과 같이 화면에 보여주고
ID
비밀번호
로그인
사용자가 ID에 hknets, 비밀번호에 1234를 입력하고 로그인 버튼을 클릭하면
익스플로러는 id=hknets&pwd=1234와 같이 데이터를 만들어 http://www.abc.com/login.jsp
를 호출합니다.
HKNets Co., Ltd.
어드민 방식

정의
쇼핑몰마다 SCM, 파트너, 어드민 등 표현이 다르지만
대부분의 쇼핑몰은 익스플로러를 통해 어드민 기능을 제공하고 있고
작업자가 직접 익스플로러로 쇼핑몰 관리자 사이트를 열어서 처리하는 방식으로
아직까지도 많은 업체들이 사용하고 있는 방식입니다.
가장 기본이 되는 방식이며 쇼핑몰에서는 반드시 제공해야 하는 기능입니다.

안정성
•
사용자가 데이터를 입력하면 페이지 내의 자바스크립트가 제어하고 검증하기 때문
에 데이터가 잘못 입력되거나 누락될 염려가 전혀 없는 안전한 방식입니다.

쇼핑몰
•
어드민을 업데이트하고 관리하는 작업 이외의 다른 작업은 없기 때문에 쇼핑몰의
노력도 최소화됩니다.
•
전송된 데이터를 서버에서 따로 체크할 필요 없기 때문에 서버 부하도 최소화할 수
있습니다.

사용자
•
사용자가 일일이 수작업으로 처리해야 하기 때문에 불편하고 작업 속도가 느립니다.
HKNets Co., Ltd.
스크래핑 방식

정의
스크래핑이라는 말 그대로 인터넷상의 필요한 정보를 모으는데 사용되는 기술인데 이런
기술을 응용하여 임의로 데이터를 만들어서 서버에 밀어 넣는 방식입니다.
예를 들어 로그인의 경우 미리 HTML 내용을 분석한 후
&id=hkinets&pwd=1234
과 같이 데이터를 만들어 다음과 같이 http 프로토콜을 이용하여 서버를 호출합니다.
Call OpenURL_Post(“http://www.abc.com/login.jsp”, “id=hkinets&pwd=1234”)

특징
스크래핑은 데이터를 조회하거나 아주 간단한 화면에서는 효과적인 방법이지만
쇼핑몰 어드민 특히 상품등록이나 수정 화면은
예를 들어
•
카테고리에 따라 입력항목들이 달라지기도 하고
•
자동으로 다른 항목 값이 변경되기도 하고
•
항목이 활성화 또는 비활성화 되는 등
눈에 보이는 내용들 뿐만 아니라 보이지 않는 부분까지 포함하면 적어도 수백 가지 내지
수천 가지의 경우의 수가 존재합니다.
HTML 내의 자바스크립트가 이런 동작들을 제어하는데 실제로 HTML 소스를 보면 화면
에 표현되는 내용보다 자바스크립트 내용이 훨씬 더 많음을 알 수 있습니다.
따라서 스크래핑 방식에서는 정확한 데이터를 만들기 위해서는 화면에 보이는 항목 뿐만
아니라 모든 자바스크립트의 동작을 완벽하게 분석하여야 하지만 이렇게 다양한 경우의
수를 모두 정확하게 분석한다는 것은 근본적으로 불가능합니다.
HKNets Co., Ltd.
스크래핑 방식
따라서 다음과 같은 여러 가지 문제가 발생하고 있습니다.
•
우선 당사 경우부터 고백하면 당사도 초창기인 2003년 말까지 스크래핑 방식을 사
용하였는데 2003년 말에 모 쇼핑몰에서 데이터가 꼬여 개발팀에서 며칠밤을 새면서
추적했더니 EC-모니터 업체였다고 합니다.
그 이후 방식을 변경하여 오늘에 이르렀습니다.
•
모 쇼핑몰에서 “상품을 대량으로 등록한 업체에서 어드민에서는 도저히 입력될 수
없는 이상한 값들이 입력되었는데 어떻게 이런 값들이 입력될 수 있느냐?”며 확인
을 요청한 한 적이 있습니다.
문제가 발생한 업체들을 확인한 결과 당사 회원사는 하나도 없었습니다.
•
모 쇼핑몰에서 어드민에 상당한 부하가 발생해서 해당 IP를 차단했더니 30여분 후
에 정상으로 돌아왔다고 합니다.
•
모 쇼핑몰에서 배송방법을 택배로 선택해야 택배사를 선택할 수 있는데 배송방법은
택배가 아닌데 택배사가 선택된 상태로 등록이 되었다고 합니다.
•
모 쇼핑몰에서는 필수 항목이 누락된 채로 상품등록이 되었다고 합니다.
•
모 쇼핑몰에서는 이런 문제로 인하여 EC-모니터를 포함하여 솔루션 사용을 자제할
것을 요청하는 글이 게시된 적이 있습니다.
쇼핑몰에 문의했더니 문제가 발생한 모 업체가 EC-모니터를 사용한다고 했다는데
확인 결과 그 업체는 타 솔루션을 사용하는 업체였습니다.
당사에 확인을 요청한 것만 수십 건에 달하며, 당사에 통보되지 않거나 문제가 있음에도
불구하고 발견조차 되지 않은 건들을 포함하면 이 보다 훨씬 많을 것으로 사료됩니다.
HKNets Co., Ltd.
스크래핑 방식

솔루션 업체
•
화면에 보이는 항목 뿐만 아니라 모든 자바스크립트의 동작을 완벽하게 분석하여야
하기 때문에 개발이나 업데이트 작업이 어렵고 시간이 많이 소요됩니다.

쇼핑몰
•
부정확한 데이터가 전송될 가능성이 높기 때문에 전송된 데이터를 서버에서 일일이
체크하는 기능을 구현해야 합니다.
•
오류 자체로 인해 쇼핑몰 서버의 부하가 가중됩니다.
•
데이터를 만들 때에도 서버 페이지들을 호출하며, 전송된 데이터를 서버에서 일일
이 체크해야 하기 때문에 서버 부하가 이중으로 가중됩니다.
•
상품등록이나 수정 후 어드민에서 확인하고 수정해야 하는 경우가 많아 이런 경우
이중 삼중으로 부하 가중됩니다.

사용자
•
동작 속도가 빠릅니다.
※
사실 하나 하나 확인하고 수정하는 경우가 발생하면 빠르다고 할 수도 없음
•
상품등록 후 어드민에서 하나하나 확인하고 수정해야 합니다.
•
품절이나 가격수정 등의 수정 기능을 지원하기가 어렵습니다.
일례로 모 업체에서 스크래핑 방식을 사용하는 모 솔루션으로 품절처리를 했는데
상관없는 다른 데이터들이 엉망이 되었다고 합니다.
•
업데이트에 많은 시간이 소요되며 이로 인해 업체들의 작업이 지연됩니다.
HKNets Co., Ltd.
OpenAPI 방식

정의
스크래핑과 마찬가지로 데이터를 만들어서 http를 이용하여 서버에 전송하지만
쇼핑몰에서 제공하는 스펙에 의해 데이터를 만들어 전송하는 방식입니다.
API는 어드민과의 일치, 동기화가 가장 중요한 요소로 할 수 있으며,
가능하다면 버그까지도 똑같은 API가 훌륭한 API라 할 수 있습니다.

특징
스펙이 정의되어 있어 스크래핑 방식보다는 정확하다고 할 수도 있지만 스펙만 존재할 뿐
데이터를 제어하고 검증하는 기능이 전혀 없기 때문에 스크래핑 방식과 같은 문제가 발생
할 가능성은 항상 존재합니다.
더불어 어드민과는 별도로 API를 개발하고 유지 보수해야 하기 때문에 많은 시간과 노력
이 필요할 뿐만 아니라 매우 복잡하면서도 플랫폼이 전혀 다른 2개의 시스템을 운영해야
하기 때문에 이로 인한 기능적인 불일치 및 업데이트 시차 발생에 따른 문제들이 추가로
발생합니다.
HKNets Co., Ltd.
OpenAPI 방식

솔루션 업체
•
API는 쇼핑몰마다 달라 각 쇼핑몰의 스펙을 이해하고 지원해야 하기 때문에 오히려
스크래핑 방식보다 작업에 많은 노력과 시간이 소요됩니다.
일례로 스크래핑 방식을 사용하는 모 솔루션은 스크래핑 자체의 문제에도 불구하고
API를 이용한 개발에 어려움으로 인해 API를 사용하지 않는다고 합니다.
•
솔루션 업체들이 API를 사용하는 가장 큰 이유는 쇼핑몰의 권장사항에 따르기 때문
에 문제 발생 시 쇼핑몰에 책임을 떠넘길 수 있다는 점입니다.

쇼핑몰
•
API는 단순히 데이터를 주고 받는 형태에 대한 규정만 있을 뿐 데이터를 제어하는
기능이 없기 때문에 항상 문제가 발생할 소지가 있고 따라서 쇼핑몰에서는 API를
통해서 입력되는 데이터에 대해서 하나하나 검증해 주어야 합니다.
•
API는 어드민에 있는 기능들을 모두 구현해야 하기 때문에 그 자체도 복잡할 뿐만
아니라 어드민과의 동기화가 요구되기 때문에 오히려 더 복잡하다고 할 수 있으며,
반면에 어드민도 API와의 연관성을 고려해야 하기 때문에 어드민 개발과 유지보수
도 복잡해집니다.
•
어드민처럼 화면이 눈에 보이는 것이 아니기 때문에 오류가 발생하면 쇼핑몰에서
확인해 주어야 하고, 오류 원인을 찾는 데에도 많은 시간이 소요됩니다.
•
문제가 발생할 가능성이 높기 때문에 스크래핑 방식과 같은 이유로 서버의 부하가
이중 삼중으로 가중됩니다.
•
쇼핑몰에서 API의 사용을 권장한다면 이로 인해 발생하는 문제에 대해서도 쇼핑몰
에서 책임질 수 밖에 없습니다.
HKNets Co., Ltd.
OpenAPI 방식

사용자
•
동작 속도가 빠릅니다.
•
스크래핑 방식보다는 오류 가능성이 약간 낮지만 여전히 오류 가능성이 있기 때문
에 상품등록이나 수정 후 어드민에서 확인해야 합니다.
•
업데이트에 많은 시간이 소요되며 이로 인해 업체들의 작업이 지연됩니다.
※
결론적으로 OpenAPI는 스크래핑에 비해 장점이 거의 없음에도 불구하고 쇼핑몰에서는
개발과 업데이트에 너무 많은 시간과 노력을 투자해야 합니다.
타 쇼핑몰 등 일부 대형 협력업체의 상품 진행을 위해서 OpenAPI가 필요할 수는 있겠지만
이런 업체는 많지 않기 때문에 일부 업체만 중점 관리하면 되겠지만, 솔루션 업체를 통해
불특정 다수의 협력업체에게 OpenAPI를 허용하면 어느 협력업체가 OpenAPI를 사용하고,
어느 협력업체를 중점 관리해야 하는지도 파악되지 않는 상태에서 언제 어디에서 문제가
발생할지 알 수 없기 때문에 문제 발생 시에 조치 등 관리가 매우 어려워집니다.
이로 인해 초기에 OpenAPI를 제공했던 오픈마켓들이 현재는 아예 OpenAPI를 제공하지
않거나 일부 대형 협력업체에게만 제공하는 등 OpenAPI 사용 범위가 크게 축소되고 있는
상황입니다.
HKNets Co., Ltd.
웹러닝 방식

정의
당사만의 독자적인 방식으로 사용자가 어드민에서 작업하는 것과 똑같이
엔진이 익스플로러로 어드민 화면을 열어 정보를 입력하고 버튼을 클릭하는 방식입니다.

특징
•
어드민과 똑같이 동작하기 때문에 문제가 전혀 없습니다.
만에 하나 당사가 분석을 잘못하거나 제때 업데이트를 하지 못한 상태라 하더라도
화면에 데이터 입력 중 오류가 발생하여 상품등록이 안될 수는 있을지언정 잘못된
데이터가 쇼핑몰에 전송되어 오류가 발생시킬 수는 없습니다.

솔루션 업체
•
화면에 보이는 정도의 정보만 분석하면 나머지는 익스플로러 내의 자바스크립트가
데이터를 검증하고 제어하기 때문에 개발이나 업데이트가 매우 신속합니다.

쇼핑몰
•
쇼핑몰에서는 어드민만 관리하면 되며, 추가 작업이 전혀 없습니다.
•
서버에서 일일이 데이터를 체크할 필요가 없기 때문에 서버 부하도 최소화됩니다.
HKNets Co., Ltd.
웹러닝 방식

사용자
•
어드민 방식에 비해 훨씬 속도가 빠르지만 스크래핑이나 API 방식에 비해서는 속도
가 느립니다.
•
한번의 처리로 모든 과정이 완료되어 상품등록이나 상품정보 수정 후 어드민에서
일일이 확인하거나 수정할 필요가 없습니다.
•
아무리 복잡한 쇼핑몰이라 하더라도 상품등록은 물론 품절(재고), 가격수정, 상품명,
이미지, 설명 수정 및 주문다운로드, 배송처리까지 완벽하게 지원합니다.
•
쇼핑몰 어드민 변경 시에 신속한 업데이트가 가능하며, 이로 인해 업무가 단절되는
경우가 없습니다.
※
특이사항
어드민 방식에 비해서는 훨씬 빠르지만 화면을 열기 때문에 스크래핑이나 OpenAPI 방식
에 비해서는 속도가 약간 느립니다.
속도 향상을 위해 현재는 멀티프로세싱으로 여러 개의 상품을 동시에 처리하고 있어 PC
사양에 따라 다르기는 하지만 예전에 하나의 상품을 등록하는데 30초 걸렸다면 지금은 10
개의 상품을 등록하는데 1분 정도가 소요되고 있습니다.
아울러 어드민 방식과 같이 각각의 PC에서 동작하므로 PC 대수가 증가할수록 비례하여
속도도 증가하기 때문에 수십만 건의 상품도 전혀 문제 없습니다.
HKNets Co., Ltd.
결론

요약
안정성
서버 부하
어드민
스크래핑
OpenAPI
웹러닝
매우 우수
매우 위험
위험
매우 우수
없음
매우 심함
매우 심함
없음
느림
느림
매우 빠름
업데이트

쇼핑몰 작업
없음
많음
매우 많음
없음
사용 편의성
매우 불편
우수?
우수?
매우 우수
결론적으로 스크래핑은 절대 방지해야만 하는 방식이며, API는 지양해야 하는 방식이라
사료되며, 웹러닝 방식을 권장하거나 차라리 어드민에서 직접 등록하는 방법을 권장해야
한다고 판단됩니다.
HKNets Co., Ltd.