아마존마케팅툴(amazonmarketingtool.com) 개발
아마존마케팅툴 : https://amazonmarketingtool.com/
지금의 회사로 이직한지 만 4개월이 됐다. 처음엔 뭔가 정신도 없고 회사 분위기도 기존과는 달랐기 때문에 어떻게 해야할지 난감하거나.. 혼란스러운 시간을 보내고 있을 때 아마존마케팅툴(이하 AMT)의 개발을 맡게 됐다. 그 전까지는 아마존을 사용해본 적도 없고 더구나 셀러도 아니었기 때문에 회의에서 오고가는 용어조차 모두 외계어로 들릴 때였는데.. 혼란스러운 틈을 타서 개발을 시작하게 됐으니.. 사실 근심걱정이 가득했다. 그러나 회사에서 시간은 잘 갔으니.. 어쨌든 쌤쌤???
1차버전은 아마존에서 셀러가 설정한 키워드의 인덱싱 여부를 Batch 작업으로 확인할 수 있는 기능과 입력한 키워드 중 중복되는 단어를 제거하고 1,000글자씩 나눠서 출력하는 기능을 개발했다. 개념자체는 간단했고 개발 작업도 그렇게 어렵지는 않았다. 아마존 API에서 너무 빠른 접속은 차단한다는 것을 알기 전까지는… API 접속 차단이슈가 나오면서 방향을 다시 잡기 시작했다. AJAX 콜을 순차적으로 처리하는 것으로 정하고 관련 자료를 검색 후 다시 개발을 했다. AJAX 콜을 순차적으로 처리할 수 있는 Queue 플러그인이 개발되어 공개돼 있다는 것이 얼마나 기쁜 일이었는지…
1차 버전이 끝난 후 바로 2차 버전 개발에 들어갔다. 2차버전에서는 아마존 상품페이지 URL을 입력하면 해당 상품의 키워드를 추출해서 검색량 등의 정보를 제공하는 것이었다. 이 때는 RAKE라는 알고리즘을 사용했고 다행히 파이썬으로 구현된 것이 있어서 해당 모듈을 사용했다. 그 때 stopwords 라는 것도 처음 듣게 됐고 그 이후로 자연어 처리에도 관심을 가져봐야 겠다는 생각을 했는 것 같다. 암튼 RAKE 알고리즘으로 키워드를 추출해서 보여주는 것은 잘 됐는데.. 검색량 등의 정보를 계산하기 위해서는 AJAX콜을 멀티로 처리해야할 필요성이 생기기 시작했다. 순차적으로 하나의 콜만 실행하면 속도 개선이 불가능했기 때문이다.
그리하여 API 요청을 처리할 서버를 여러 대 추가했다. 그러면서 동시에 아마존 API와 통신 속도를 높이기 위해 해외에 있는 서버를 사용하기로 했다. 해외로 서버를 옮긴 후 API 통신 속도는 두드러지게 빨라졌다. 그런데.. 속도가 빨라지니 다시 API 접속 차단 이슈가… 그래서 어쩔 수 없이 다시 API 접속 때 랜덤 Delay를 적용할 수 밖에 없었다. AMT 메인서버와 API 처리 서버를 분리하면서 기존 AJAX는 모두 JSONP 방식으로 변경을 해야했고.. jQuery 스크립트 코드는 다시 작성을 해야만 했고.. 날씨는 점점 더 더워지는데 말이다. 어쨌든 그렇게 해서 키워드 추출과 속도 개선까지는 완료를 했다. 이제 작업이 끝난 듯 했다.
하지만.. 키워드 추출 때 보여지는 정보 중 검색량과 상품수를 보여주는 것 대신에 해당 키워드가 키워드로써 가치가 있는지에 대한 지표가 필요하다는 것을 알게 됐다. 그래서 상품수 대신 경쟁률(Competition Rate)과 추정 검색량을 보여주는 것으로 다시 코드를 수정했다. 그러면서 경쟁률에 그래프… 근데 그래프가 애니메이션도 되도록 수정을 했다. 개발을 끝내고 예상가능한 경우에 대해 오류 체크를 하니 7월.. 아 맞다. 중간에 페이 시스템을 변경하는 일도 했구나.. 아궁~ 지금에 생각해보니 이 많은 일들을.. 다 적을 수 없는 수많은 일들이 있었는데.. 어떻게 잘 버텨냈고 잘 개발을 끝낸 것 같아서 스스로가 자랑스럽게 느껴진다.
2차 버전은 끝났지만 3차 버전이 없을 거라는 보장도 없고 또 어떤 예상치 못했던 오류가 있을지 알 수가 없기 때문에 조심스럽긴 하지만.. 무언가 새로운 것을 개발하고 세상에 내보내는 것은 싫지 않은 일인 것은 분명한 것 같다. 아~ 이제 다시 페이 시스템을 마무리하러 가야겠다. 여전히 복잡스럽구만… ㅎㅎㅎ