2012년 6월 28일 목요일

오픈마켓의 트래픽 특성을 알려주마!

오픈마켓 미들웨어 담당하면서 WAS는 잘 모르는 1인이다...

으흠....설명하자면 긴데....짧게 말하면 Web application Server(WAS)는 JAVA 전용이 아니다. JAVA가 Enterprise영역에서 절대적으로 많이 사용되면서 WAS, 미들웨어라고 하면 그냥 JAVA base WAS를 생각하는것일 뿐

턱시도도 미들웨어고 DB 게이트웨이도 미들웨어다... FRONT를 담당하는 WEB Server(Apache)와 Backend 저장소(DB나 LDAP, Messaging)의 중간에 있는 모든것이 미들웨어다.

WAS는 C(CGI)를 돌리는 것도 WAS고 PHP를 돌리는것도 WAS다
보통 이런거 Apache에서 돌린다. Apache가 Front와 Middle ware 부분을 다 커버하는것이라고 보면 되겠다. (공짜가 되는것도 많다 그래서 시장에서 인정받는거임)

이렇게 생가하면 JAVA middle ware로 유명한 톰켓, 웹로직, 웹스피어...도데체가 제품이 뭐가 중요한거야? 라는 생각을 해볼 수 있지 않을까요? 저는그렇습니다.

제품에 디펜던시한 기술자는 항상 바쁩니다. 제품 업그레이드 하면 공부해야죠? 회사 옮기면 다시 처음부터 공부해야죠? 그러다 내가 하는 제품을 개발하는 회사가 합병이라도 되는날에는 멘붕이지요 ㅋㅋ   매일이 릴리즈노트와 널러지베이스 검색이 일이 됩니다.

이래서는....딱 사오정이 맞습니다. 생명주기가 점점 짧아집니다. 그래서 가끔 미들웨어 엔지니어들과 한잔 할때면 자신의 업에 대하여 회의적입니다.

저는 그럴때 이런 이야기를 해줍니다.

"제품에 의존하지말고 JVM spec에 의존해라"

Java Virtual Machine 이 무엇인가요? 눼~ 맞습니다. JAVA 언어로 짠 프로그램을 돌려주는 가상의 운영체재라고 보시면 되지요 OS입니다.

자바 미들웨어? 잘 생각해보면 이것들 역시 JVM Spec에 준하여 개발자들이 프로그램을 좀 더 편하게 돌릴 수 있도록 여러가지 편의장치를 제공해주는 솔루션일 뿐입니다.

자...그럼 특정 미들웨어 제품에 의존적인 기술을 가진사람의 시야가 넓을까요? 아니면 JAVA 플랫폼에 대한 기술을 가진 사람의 시가야 넓을까요?
저는 후자가 훨씬 넓은 시야로 기술과 트랜드를 운영해 갈 수 있다고 생각합니다.
예로 weblogic은 1년에 수차례 패치와 업데이트가 있습니다.(톰켓은 말할 필요도 없고) 하지만 JVM Spec은 한번 나오면 일부 API 수준의 패치들이 있으나 구조적인 업데이트는 자주 발생하지 않습니다. (1.4에서 1.5로 넘어갈때는 컸지요)
이것의 차이는 업데이트 주기가 길어짐으로써 좀 더 심도있게 해당 환경에 대하여 분석하고 경험해 볼 수 있는 환경을 제공해 줍니다.

그래서 저는 엔지니어들 특히나 미들웨어 엔지니어는 개발자 출신의 SE들이 많아졌으면 합니다. 하지만 현실이 그렇지 못합니다.
미들웨어 엔지니어가 프리렌서 기준으로 개발자 중급정도의 급여를(500~600만원) 받기 위해서는 훨씬더 많은 시간을 보내야 하고 시장에서 사실 미들웨어 업역 자체를 중요하게 생각하지 않기 때문에 자리도 많지 않습니다.


뭐랄까...수요가 없는 시장(미들웨어가 DB처럼 튜닝이 필요하다는 생각이 시장을 만들어 갑니다.)에 살아남기 위해서는 몇 없는 SE중에서 뛰어난 나름의 핵심역량이 있어야 한다는 겁니다.
그래서 저는 보통 미들웨어 SE들에게 무엇보다 시급하게 JAVA 언어 공부를 하라고 권합니다. 

각설하고  이런 미들웨어를 관리하면 재미있는것 중에 하나가 FRONT로 들어오는 요청과 Backend로 저장되는 데이터의 흐름을 중간에서 까보는(?) 재미가 있다.
누가 무슨물건을 사려고 어디로 돌아다니는지 어떤데이터를 저장시키는지.... 조금 오타쿠성향이 있다고 할지 모르겠으나 로그 보고 있으면 재미있다.

일 예로 밤샘작업하고 새벽 5시에 사이트를 오픈하면 대충 30초 정도에 첫 주문이 떨어진다...뭐냐...우리 작업하는사이에 우리고객님아는 사이트에서 접속차단 메시지 보면서 밤새 주문때리려고 고민하고 있었다는 것이다.... 대단하다.

그 중에서도 압권이였던 것이 사이트 오픈하고 1분 채 안되어서 라면 한박스 주문이 결제 되는 로그가 떨어진다. 물론 계정이나 개인정보는 암호화 처리되나 물품하고 결제여부는 로그로 알 수 있다.

누굴까.... 불쌍한 자취생일까? 당장 내일 끼니를 걱정해야 하는현금없는 학생이였을까....  어재 알바비를 받아서 한달치 먹이감(?)을 저장하는 알바생일까... 뭐 이렇게 생각이 진도가 나가는거지 ^^

...진도를 나가서 ...

트래픽을 분석하는일은 서비스 운영을 하는대 미래에 졸라 욕을 먹지 않기 위해서 필수로 해야 하는 행위이다.

이번달에 시스템이 잘 돌아간다고 다음달에도 그러라는 법이 없다. 심하게 말하면 내일 일도 모를일이다. 어떤 MD(오픈마켓의 제품영업담당, 머쳔다이저라고 한다)가 졸라좋은 아이템 더럽게 싸게 올리면 뽐뿌 사이트나 디씨겔에서는 순식간에 소문이퍼지고 제품 주문을 위한 전용 스크립트까지 돌아다닌다 (이거 운영자 입장에서 미칠 지경.... 프로그램 돌리면 초당 수십번의 이벤트 응모가 날라들어온다...)

이러면....미들웨어 할아버지가 있어도 못 버틴다.  이럴때 하는거로 QOS(Quality Of Service) 라는것도 있는데...이건 여기까지...

여하간 이렇게 다양한 트래픽의 고저가 있는 마켓이나 몰들의 경우 트래픽 예측이 중요하다. 보통 기업에서 이걸....한달이나 분기단위로 외주를 시켜서 하는데.... 제가 말씀드립니다. 쓰레기 입죠...눼......  앞서말했듯이 마케팅이나 실무에서 비지니스 잘하면 시스템은 부족할 수 도 있고 아닐 수 도 있는거니다. 절대치가 어디있나요?
이건 최소 1개월 단위정도로 누군가 트랜드(이게 중요함)를 지속적으로 관리를 해야 하는겁니다. 이런걸 우리는 "지표"라고 부릅니다.

앞서말한 이벤트로 인한 트래픽증가가 "유행(패션)" 이라면
전반적인 고객의 유입량의 추이는 "트랜드"입니다.
저는 두가지 정의를 이렇게 하고 있습니다.

"트랜드"를 중심으로 부하량을 평균을 내면 "유행"이 운영에 반영되지 못하여 이벤트등에 대응하지 못해 장애가 발생하는 등의 문제가 있고

"유행(패션)"을 중심으로 부하를 관리하면 쓸모없이 시스템자원을 낭비..즉 비용이 높아지는 문제가 있습니다.

그래서 저는 두가지를 같이 관리합니다.

먼저 트랜드를 구합니다. 결국은 수치값 인데요 L4스위치의 TCP세션이던..WEB의 Socket갯수 이던 WAS의 동시단말(제니퍼같은 솔루션 수치) 이던  섞어서만 쓰지말고 지표로 하나를 고정하여 트랜드를 분석합니다.(지표대상값이 고정되면 추이는 동일합니다) 일 단위로 하루에 가장 높았던 수치를 1일 단위로 계산해서 그래프를 그립니다.
이렇게 해서 한달을 그려서 이동평균을 1주일 정도로 구하면 전반적인 트래픽 추이가 나옵니다. 이걸 두달...석달...분기마다...이렇게 1년정도 누적시키면 년단위 계획을 수립할때 데이터로 사용가능하겠지요?
(보통 사이트 들이 이 정보가 없어서 년말만 되면 개구라 치느라 바쁜데....누가좀 하삼....당신네 회사잖아...)

그리고 이때 원 소스중에서 가장 고점을 찍었던 날을 찾아서 현업에 졸라 쪼아서 무슨짓을 했는지 알아냅니다....이벤트나 뭔가...니가 일을 잘했으니까 이렇게 들어왔겠지? 욕먹을 일 아니니까 이야기해봐...하면 줄줄 나옵니다.
만약 아무리 찾아도 모르겠다....두가지 경우입니다.
첫째 당신의 인맥이 형편없거나 (ㅋㅋㅋ)
둘째 제품을 너무싼값으로 올리는 등의 실수로 인한 트래픽증가 등의 문제가 있었거나..

어느정도 파보고 모두 입을 다문다면....더 파지 마세요 누군가는 당신의 행동에 상처받을 수 있습니다. ^^

이렇게 일년정도의 트래픽을 분석하고 나면 일년중에 계절에 따라....명절등 선물을 하는 시기에 따라....분기별로 휴가철이나....결혼시즌이나.....월단위로 월급날을 전후....주단위로는  주초 와 주말이라던가...날씨에 따라....이런 추이를 어느정도 알 수 있게 됩니다.
저는 이걸 "사용자 행동패턴"이라고 합니다.
일단 일년을 예로 들지요

1년에 가장 트래픽이 높은 시기가 언제일까요?
대충 짐작 하겠지만 구정과 추석명절 되기 2~3주 전 입니다.

그럼 1년에 가장 트래픽이 낮은 시기는 언제일까요?
구정과 추석 명절 당일과 당일 다음날 까지 입니다.

그럼 1년에서 가장은 아니지만 일정기간동안 매출이 높은 시기는?
명절 특히나 구정은 세뱃돈이 있지요? 명절이 지나고 1주일 정도 지나면 트래픽은 높지 않지만 매출이 오릅니다. 물론 IT나 패션쪽인 것 같습니다. 용돈 받는 애들이 냄비세트 살 일이야 없겠지요?  애들이 받은 돈으로 고민하다가  지름신의 신탁을 받는데 걸리는 시간이 대략 3일 에서 1주일 정도 걸리는 겁니다. 이 트랜드는 대충 2주 정도 지속 되다고 평균 트래픽으로 돌아간답니다. ^^

대충 이런겁니다.

분기단위로 가봅시다
1년을 4분기로 나누었을때 위의 명절을 빼고 트래픽이 높은 시기는?
오케바리...그렇습니다...바캉스 시즌입니다. 특히나 최근 몇년은 레져가 크게 발전하면서 캠핑관련해서는 여름 성수기때가 한목 땡기는 시진이 아닐가 싶습니다.
보통 8월 휴가를 많이 가시죠?  1년 트래픽에서 분기별로 보면 7월 중순정도 부터 트래픽그래프가 상승해서 9월 초 또는 추석 전까지 평균이 올라간 상태로 진행 되는것으로 보입니다.

월단위로 가면 좀 더 재미있습니다.

1개월 을 4주로 계산했을때 트래픽이 높은 시기는?
월급날? 약간 그런 경향이 있지만  그래프를 보면 조금 아이러니하게도 매월 1~2주차 입니다. 이유는? 제 개인판단이지만 나의 예를 들면 월급날이 25일 입니다..보통 20일 정도 되면 쪼들리기 시작하고 카드비결제에 걱정이 앞섭니다. 월급이 나옵니다...미친듯이 뽑아가죠 ^^  그럼 자연스래...."아...이번달에는 좀 아껴야겠다" 하면서 장바구니와 관심목록에 있는 제품을 구입하지 않습니다. 하지만 인간이 망각의 동물이지요? 1주일이면 됩니다.....1주일이면 다 잊어버리고 지름신의 은총에 힘입어 카드신공을 발휘 합니다.

그럼 주단위로 보면

1주일에 가장 트래픽이 높은 시기는?
주말?토요일? 오홍~ 아닙니다. 일요일 저녁 09시부터 10시 사이입니다.
자...봅시다...금요일...보통 술 처먹어러 가야죠... 결혼한지 얼마 안됬으면 와이프 챙겨야죠....애인있으면 데이트 해야죠...언제 쇼핑몰 장바구니 들고 비교합니까?
금요일 패스
토요일...놀러가있는 사람 많습니다. 그리고 내일도 노는 날인데다가 토요일에 주문해 봐야 물건은 월요일에 보통 발송 되니까 구찮습니다. 그냥 넘어가자....
토요일 패스
자...일요일....해떠 있는 내내 놀다가 오후가 되면 슬슬 내일 출근해야 한다는 두려움(?)에 슬슬 신경이 곤두서고 잠이 오지 않습니다. PC를 켜고 게임을 하는 사람도 많겠지만 뭔가 사려고 생각이 있거나 쇼핑중독자라면 당연히 쇼핑몰에 들어가 장바구니를 확인하고 내일 출근해서 지를 목록을 재정비 합니다....
그래요...일요일 저녁인겁니다. 가장 많은 제품을 뒤지고 다니고 개인당 PV가 엄청나게 올라갑니다. ^^ 짠 하죠? 우리가 이러구 사는겁니다.

참....와이 10시 까지냐구요?  아항..그건 사실 드라마의 인기에 따라 달라집니다. 예전에 꽃보다 남자할때 있죠? 그때는 10시가 딱 되면 1초도 차이가 없이 트래픽이 30%가까이 줄어듭니다...다들 TV보느라 쇼핑을 버린겁니다..눼....그런겁니다. 그래서 주말에 드라마 잼있는게 없을때는 10시가 되어서 대충 10%정도만 트래픽이 빠질때도 많습니다.

1주일에 가장 매출이 높은 시기는?
질문이 이상하죠? 트래픽이 높음 매출이 높은거 아닌가? 아닙니다요...
트래픽이 높은날은 앞서 이야기 한것 같이 제품 뒤지느라 정신이 없는 것이고 사려고 작정하면 당신은 어떻게 하나요? 그냥 장바구니 결제 하는겁니다....
"닥치고 결제" 인겁니다.
그날은 바로  월요일 입니다. 앞서 말한 일요일 효과가 월요일에 발휘되는 겁니다.
질러라~~!!!!
이 버프효과는 대략 월,화,수 까지 이어집니다.

1주일에 가장 트래픽과 매출이 전날보다 크게 감소하는 날은?
뭐...이건 그냥 목요일이라고 보면 되겠습니다. 쉽습니다.
금요일에 주문한다고 하면 어떤 생각을 하십니까?
"이거 토요일까지 배송 될라나?"
특히나 금요일 저녁이 되면 어떤가요?
"아...이거 해봐야 다음주에 오는거아냐?"
하루중 가장 트래픽과 매출이 높은 저녁시간대에 금요일이나 차이없는 목요일 저녁이라면 많은 사람들이 지름신의 광역데미지 영역에서 탈출합니다.
덕분에 오픈마켓에서 목, 금요일은 일주 일 중에 가장 조용합니다.
물론 콜센터는 바쁘겠죠?  물건 안온다고 ㅋㅋㅋㅋ

그리고 추가로 날씨관련해서

맑은날과 비오는날 매출의 관계는?
이건 거의 다 아는 이야기...비오는날 입니다.

자...그럼 여기까지 중얼거린 사용자패턴을 역어서 우리도 데이터마이닝을 해봅시다.

조합해 보면

1년중 추석이나 구정 전 2주경 월화수요일 중에 비가오는 날이 대박데이...
1년중 트래픽이 가장 높은시기는 MD가 졸라 일 열심히 했을때...대중없음

저는 대충 이렇게 봤습니다. ^^

어떤가요? 제가 심리학이나 통계학쪽을 전공한다면 참 재미있는 논문거리가 될 수 도 있겠다는 생각을 해봤었습니다.

저는 이만 글 정리하고 아들 캐치볼 할 글러브 사러 11번가로 갑니다.

여러분 바바이~





댓글 2개:

  1. 용찬 아주 책을 쓰는구나. 하긴 3년반치 엮으면 책 한권 떨어지겠네. 그건 그렇고 화요일에 왔으면서도 전화도 안하고 그냥 가냐. 설마 얼마전에 글쓴 외형적으로 회사를 때려치게 만든 원인 제공자 중 1인이 나는 아니겠지? 하여간 그날 거의 1년만에 멘붕사태를 맞이하여 동병상련들끼리 술한잔하느라 자리 참석 못했다.

    답글삭제
  2. 앗! 여기있는거 걸렷내요..ㅋㅋ 요즘 저의 행보는 조용조용히 다니자 입니다. 물론 욕구불만을 글로 주절주절 하고 있기는 하지만... 회사에 놀러갈때도 일보고 집에 가는길에 조용히 볼까해서 갔는데 다몰고나와서 깜놀했습니다. 매번가서 부서비날려먹는것 같아서 죄송스럽기도 하구 -.-;; 월급타면 한잔 사드리럴 갈려구요, 마음고생이 많으신가봅니다. 가지신 장점 최대한 발휘하셔서 대인배의 삶을 영위하시길 기원드립니다. 그러실수 있으시리라 믿어의심치 않습니다.

    답글삭제

본 블로그의 댓글은 검토후 등록됩니다.