카테고리 보관물: 미분류

A/B 테스트

A/B 테스트의 대해서 포스팅합니다.

무척 많이 쓰는 용어지만 잘 모르는 분들이 많습니다.

특히 A/B 테스트는 어설프게 알면 크게 당하기 쉽습니다. 만만해 보여도 개념을 잘못 잡으면 큰 착각을 하게됩니다.

개념

A/B 테스트는 A와 B가 유의미한 차이가 있는지 검정한다는 뜻입니다.

통계학에서 다루는 개념이며 실험입니다.

A와 B의 의미는 대조군을 A, 실험군을 B라고 의미없이 붙이는 것에서 나온 것입니다.

대조군은 원래 상태에 있는 것을 말하고

실험군은 원래 상타에서 뭔가를 바꾼 것을 말합니다.

알기 쉬운 예

콩발의 첨가물 테스트라는 아날로그식 예를 들어보겠습니다.

이 예제 테스트의 목적은

콩밭에 새로운 첨가물을 주고 이 첨가물이 전에 쓰던것 보다 더 콩의 수확량을 늘리는지 확인하려고 합니다.

다음과 같이합니다.

  1. 콩밭 1000제곱비터가 2개 있고 하나를 A 하나를 B라고 이름 붙입니다.
  2. A와 B에 동일한 종자의 콩을 심습니다. 다른 것 심으면 실험은 망합니다.
  3. A에는 원래 쓰던 첨가물을 쓰고 B에는 새로 개발한 첨가물을 씁니다.
  4. 동일한 조건으로 콩을 키웁니다. 물도 똑같이 주고, 햇빛도 똑같이 쬐게하고, 땅도 동일하게 다져줍니다.
  5. 콩을 수확합니다.
  6. A와 B에서 각각의 콩들을 무작위로 동일한 양을 꺼내서 무개를 잽니다. 무작위로 꺼내는 것이 싫으면 가능하다면 다 꺼내서 재도 되지만 그렇게 하는 경우는 없습니다.
  7. A와 B의 콩무게가 유의미한 차이가 있는지 확인합니다. 이걸 가설검정이라고 합니다.
  8. B의 콩무게가 더 무겁다면 B에 사용한 비료를 다음에 씁니다.

통제된 상태라는 것의 의미

여기서 중요한 것은

A와 B 모두 통제된 상태여야 합니다. 이 뜻은 A와 B가 콩을 기르는 동안 한쪽은 티가 많이 오고 한쪽은 그늘이 져서 햋볕이 잘 들어오지 않거나 하는 불평등한 상황이 되면 안된다는 것이고 첨가물을 다르게 준 것 외에는 조건이 동등해야 하는 것을 말합니다.

A와 B의 개체수가 동일해야 함

A와 B의 콩줄기의 숫자가 동일해야 합니다. 하지만 그러기는 매우 어려우니 대충 콩밭의 사이즈라도 동일해야 합니다. 한쪽이 크거나 하면 그것으로 인해서 콩의 수확양이나 성장 조건이 달라질 수 있기 때문입니다.

콩밭의 사이즈는 통상 한쪽이 다른 한쪽의 2%가 넘지 않게 합니다.

실험이 끝나면 가설검정을 해야 함

사실 B 콩밭에 첨가물을 다른 것을 준 이유는 콩 수확량이 증가할 것이라는 기대 때문입니다.

통계학에서는 귀무가설과 대립가설이라는 것을 정의하고 그것으 실험의 결과를 판단합니다.

여기에서 귀무가설은 A의 콩무메가 B의 콩무게와 차이가 없다.

대립가설은 B의 콩무게가 A의 콩무게와 차이가 있다.

이렇게 합니다.

여기서 실험결과가 귀무가설에 맞는지 대립가설에 맞는지를 확인하는 것을 가설검정이라고 합니다.

가설검정 공식

가설검정을 확인할 때는 공식이 있습니다.

무작정 A와 B에서 무작위로 콩을 골라서 무개를 재서 한쪽이 더 많은지 똑같은지 비교 하는 것은 안됩니다.

그렇게 하면 대부분의 경우 미세하게나마 한쪽의 콩무게가 더 무겁습니다.

쓸모없는 실험입니다.

상식적으로 생각해도 그게 정말 오류가 많을 수 있다는 것을 알 수 있습니다.

그래서 통계적으로 그 차이가 유의미한지 아닌지를 보는 연구된 방법을 쓰는데 그 방법은 매우 다양하고 많습니다.

그래서 각 상황에 맞게 어떤 통계적 검정 방법을 사용해야 하는지와 지켜야 할 것을 알아야 하는데 그걸 공부하는 학문이 통계학입니다.

위의의 콩무게와 같은 것은 스튜던트의 T테스트라는 테스트 공식으로 확인합니다.

스튜던트의 T테스트는 한쪽 집단의 평균과 다른 한쪽의 평균이 유의미한 차이가 있는지 의미없는 차이만 있는지 확인하는 유명한 방법입니다.

스튜던트의 T테스트는 엄청나게 유명한 테스트 방법입니다.

공식은 검색해서 찾아 보면 잘 나오므로 복잡하게 여기에서 설명하지 않겠습니다.

엑셀, Python, R을 비롯한 많은 통계 소프트웨어에 이런 가설검정법은 대부분 내장되어 있습니다.

Froala HTML 에디터

웹페이지에서 사용하는 콘텐트 편집기로 TinyMCE라는 유명한 것이 있습니다.

워드프레스를 포함한 많은 웹상의 편집기들이 이 편집기를 씁니다.

https://www.tiny.cloud/

TinyMCE 대안으로 Froala 라는 것이 있어 소개합니다.

https://froala.com/

장점

가볍고 깔끔합니다.

여러 플랫폼에 연동이 됩니다.

단점

자료가 많지 않아 문제가 생겼을 때 해결책을 찾기 어렵습니다.

네이버 블로그 검색 C-rank

네이버 블로그는 많은 디지털마케터들의 마케팅 도구, 수단이 되어 왔습니다.

한국에서 가장 큰 검색 포털이 네이버이고 그 다음이 카카오의 다음검색이기 때문입니다.

블로그 글을 작성해서 조회수를 올리고 어떤 상품이나 제품을 한국사람에게 보여줘서 광고나 홍보의 목적으로 노출하려면 네이버에 블로그를 올려야 합니다.

올린 글을 사람들에게 잘 검색되서 보여지고 검색 결과의 상단부에 위치할 수 있게 관리하는 것을 SEO(Search Engine Optimization, 서치엔지최적화)라고 합니다.

그리고 이런 SEO에 가장 효과가 좋은 것은 사상실 스팸(SPAM) 기술입니다.

이런 스팸성 기술을 방어하기 위한 노력은 오래전에 시작되었습니다.

세계 최고의 검색회사인 구글의 검색 결과의 랭킹은 유명한 PageRank 알고리즘에서 출발했습니다.

거기에 비해 네이버는 너무 오랫동안 검색 기술에 투자를 하지 않았고 구글의 기술력과 규모가 급속도로 발전하는 사이에 그 격차가 너무나 멀어졌습니다.

그리고 전통적으로 검색에서 사용되었던 단순한 TF/IDF나 콘텐트 기반의 검색 링킹으로는 SEO를 잘 알고 경험도 많은 블로거, 마케터, 콘텐츠 관리자들을 상대하기 버거워졌습니다.

그래서 네이버는 C-rank 알고리즘을 만들어 블로그 검색에서 Creater의 신뢰도를 검색랭킹의 자질(feature)중 하나로 사용하게 됩니다.

사실 구글의 페이지랭크는 콘텐트의 영향력을 기반으로 랭킹을 계속 업데이트하기 때문에 생산자의 신뢰도가 약하게 나마 그 자체에 포함되어 있다고 볼 수 있습니다. 물론 지금은 그보다 훨씬 복잡하고 많은 자질과 알고리즘을 쓴다고 알려져 있어 저렇게 단순하지 않을 것입니다. 하지만 네이버는 그런것조차 되어 있지 않았다는 것입니다.

어쨌든 네이버의 블로그글은 C-rank를 사용하기 때문에 이제 단순히 인기 키워드가 사람들이 검색을 많이 할 것 같은 키워드로 상위에 위치하는 것은 이미 어렵게 되어 있고 꾸준히 콘텐트를 올리고 사람들의 조회수를 늘려서 작성자의 신뢰도 점수를 올리지 않으면 블로그 콘텐츠를 상위에 노출하는 것은 어렵다는 것입니다.

그래서 네이버의 블로그 마케팅을 하려면 C-rank 알고리즘을 이해해야 합니다.

네이버 C-rank에서 사용하는 자질

오래전의 내용이기 때문에 지금과 많이 다르겠지만 아래의 표에 있는 것이 네이버 C-rank에서 사용하는 항목들입니다.

아래의 자질들이 나타내는 것을 요약해보면 스팸성 글들은 하위에 위치하도록 하겠다는 의도가 보입니다.

어떤 플랫폼이나 서비스에서도 스팸은 서비스의 품질을 떨어뜨리는 것입니다. 하지만 무작정 필터링할 수도 없는 것이 문제입니다. 그래서 결국 스팸 콘텐츠는 랭킹을 떨어뜨려 하위에 보이게 하도록 하는 거이 가장 좋은 방법입니다.

네이버의 C-rank 자질을 보면 그런 의도가 보입니다.

네이버 C-rank 때문에 블로그 마케팅은 불가능한가?

많은 블로그 마케터들이 여전히 성과를 내고 있습니다. 바꿔 말하면 방법이 있으며 여전히 C-rank가 방어하지 못하는 구멍이 있다는 것입니다.

이 방법에 대해서는 나중에 포스팅을 해보겠습니다.

네이버 C-rank 블로그 글

https://m.blog.naver.com/naver_search/220774795442

고스트 Ghost CMS

CMS (Content Management System)는 콘텐츠를 관리하는 시스템입니다.

여기서 말하는 콘텐츠는 글을 뜻합니다. 몇장의 이미지와 동영상이 포함될 수도 있지만 내용물의 중심은 글입니다.

글의 형식은 산문입니다. 블로그가 될 수도 있고 보고서가 될 수도 있습니다.

보통은 블로그, 뉴스레터 형식입니다.

대표적인 CMS는 워드프레스가 있습니다. 워드프레스는 지구상에서 가장 많이 사용되는 CMS입니다.

하지만 워드프레스는 PHP에 MySQL로 구동되서 조금 무겁다고 느껴지고 개인이 셀프 설치를 하려면 서버 호스팅을 받아야 하는 기술 장벽과 비용 장벽이 있습니다. 유/무료 서비스를 사용할 수도 있지만 커스터마이징 해서 사용하기 어렵다는 단점을 가지게 됩니다.

Ghost는 Node.js와 MySQL을 사용하는데 최종 결과물을 정잭 콘텐츠로 생성해서 배포하는 것까지 지원합니다.

상당힌 깔끔하고 가볍습니다.

다만 워드프레스 만큼 기능이 다양하지 않고 복잡한 커스터마이징은 되지 않습니다.

하지만 현재 워드프레스를 추격하며 가장 핫하게 떠오르는 CMS툴입니다.

자기의 서버에 설치를 할 수도 있고 서비스에 가입해서 사용할 수도 있습니다.

고스트의 주소입니다.

https://ghost.org

그리고 유명한 콘텐츠 큐레이션, 뉴스레터 서비스인 퍼블리도 ghost를 사용하고 있다고 알려져 있습니다.

깔끔한 d3 기반 그래프 metrics-graphics

d3 기반이나 Javascript 그래프, 플롯 라이브러리들은 쓰기 편하고 예쁜것들이 많지만

기능이 너무 많고 무겁고 복잡한 것도 많습니다.

d3 기반의 간단하고 깔끔한 라이브러리가 있어서 소개합니다.

metrics-graphics입니다.

아래 스크린샷을 보면 느끼겠지만 간단하고 깔끔합니다.

간단한 것이 없어서 고민했다면 한 번 사용해보세요.

사이트

https://metricsgraphicsjs.org/

소스코드

https://github.com/metricsgraphics/metrics-graphics