Telltale이라는 영어단어가 있다. 남기고 간 흔적이 다 이야기해 준다는 뜻을 가진 단어다.

추리소설에서 자주 볼 수 있는 단어다. 그리고 빅데이터에 인공지능을 적용한다…. 는 비지니스에서 자주 등장해야하는 단어이기도 하다. (불행히도 많은 사람들이 “신경망 모델이라는거에 넣으면 그냥 척척 가르쳐주는거 아니야?”에 머물러 있긴 하지만)

비슷한 예시로, 주가 대폭락을 예측한다는 “인공지능” 모델이라는 것도 결국에는 특이하게 움직이는 변수 k개의 특정 조합을 보고 대폭락이 있을 것이라고 판단하는 것이다. 말을 바꾸면, 데이터 변화 묶음 A를 보고 B가 나타날 것이라고 예측하는 작업이 선후 관계 뿐만 아니라 인과 관계를 갖고 있다면, B가 나타난 시점에 A를 Telltale이라고 이름 붙일 수 있다.

Pabii의 사업 모델이 최적 유저 타겟을 찾아주는 광고 플랫픔 (DSP, Demand Side Platform)이기 때문에, 온라인 광고 영역 안에서 Telltale로 잡아낼만한 여러 주제에 항상 관심을 갖고 일을 한다.

이 분야 안에 속칭 “인공지능”, 정확하게 말해서 Multi-pattern matching 작업이 쓰이는 곳이 참 많지만, 요즘 흥미를 끄는 구석이 하나 있다. 바로 사기 클릭 (Fraudulent click 또는 Fraud click)이다.

(Source: BusinessWeek)

 

사기 클릭 (Fraud Click)

비슷한 상품을 같은 시장에서 팔며 경쟁하는 두 개의 온라인 쇼핑몰을 생각해보자. 선의의 경쟁을 한다면 가격을 낮추고, 상품 품질이 높은 셀러를 많이 노출시켜주고, 원하는 상품을 쉽게 찾을 수 있도록 도와주는 등의 서비스를 생각하겠지만, 제로섬 게임을 하고 있다보면 경쟁사 사이트에서 구매하려는 유저를 구매 직전에라도 뺏어오고 싶은 욕구가 강하게 생긴다.  여러가지 방법이 있겠지만, 그 유저가 보고 있는 여러 화면에 광고를 뿌려대서 경쟁사 사이트로 흘러들어가지 않도록 하는 것도 시도해 볼 만하다.

보통 온라인 쇼핑몰들은 하루 예산을 정하고, 각각의 플랫폼 별로 광고 단가를 정해서, “단가 x 횟수 = 예산”이 되도록 광고 노출을 한다. 온라인 광고시장에서 흔히 광고비를 Click당으로 산정하는데, 업계 짬밥이 굵은 마케터 친구의 표현에 따르면 경쟁사 광고가 보이면 일단 꾸욱~ 눌러주는게 이 동네의 암묵적인 룰이란다. 말을 바꾸면, 경쟁사가 광고 비용을 쓰도록 만들라는 뜻이다.

근데, 경쟁사 광고만 뜨면 조직적으로 클릭을 하는 “클릭 농장 (Click Farm)”이 있다면 어떻게 될까? 우리 회사 광고는 아침에 하루 예산을 싹 소진해버렸는데, 경쟁사 광고는 사람들이 광고에 관심을 갖는 오후, 저녁 시간대에 노출되고 있다면? 우리 회사 입장에서는 “피꺼솟”한 상황이 아닐까?ㅋㅋㅋ

관련 조사 업체들에 따르면 전세계적으로 이런 Fraud Click이 전체 클릭의 1/3 정도나 된다고 한다. (참고로 한국의 2018년 온라인 광고비는 대략 5조원으로 추산된다.) 비단 클릭뿐 아니라, 앱 인스톨 같은 광고 단가가 높은 경우에도 “사기꾼”들이 많아서 광고주들이 선뜻 광고비 쓰기가 힘들다고 불평하는 일이 적지 않다.

 

(매우 조잡한) 해결책

누군가는 그런 “클릭 농장”들을 싹 잡아들이면 되지 않냐고 하는데, 이게 쉬운 일이 아니다. 실제로 우리나라의 수도권 근교에 나가면 그런 “농장”에서 매크로를 돌리고, 클릭과 인스톨을 만들어내서 “뒷돈”을 받는 사람들이 꽤나 많고, 워낙 음성적으로 이뤄지다보니 쉽게 공권력이 개입되기도 힘들다 (얼마전 언론에 크게 나왔던 드X킹 이라는 분이 좋은 예시가 될 것 같다). IT인프라가 겨우 갖춰져있고 임금이 저렴한 국가들에가면 수백, 수천명을 모아놓은 그런 “매크로 농장”들도 볼 수 있다.

얼마전엔 어느 영어권 서비스에서 나름대로의 해결책을 내 놨던데, 읽다보니 참 어이가 없더라.

  • 페이스북 / 트위터의 광고만 써라 – 다른 지면을 하나도 안 쓰니까, 지면으로 하는 사기는 방지할 수 있지않나?
  • IP를 막아버려라 – 사기꾼이 아예 접속 못 하도록 IP를 블록해버려라?
  • 구글의 리마케팅 광고 캠페인을 써라 – 일단 우리 홈페이지에 방문했던 유저에게만 광고가 나가니까, 사기 방지 되겠지?
  • 광고의 타겟을 구체적으로 정해라 – 언어, 위치 같은 걸 구체적으로 정한다면 클릭 농장을 피할 수 있지 않나?

저렇게 쉽게 막을 수 있었던 시절이 있었는지는 모르겠는데, 필자가 경험하는 DSP의 현실은 그렇게 녹록치 않다. 어차피 클릭 농장에 있는 “일꾼”들도 기본적인 사항을 다 전달받기 때문에, 페이스북, 트위터의 가짜 아이디를 여러개 생성해서 광고를 계속 찍어댄다. 광고 지면을 한정해봐야 아무런 소용이 없는 것이다. IP 블록은? VPN쓰면 그만이다. 구글의 리마케팅 캠페인보다 더 타게팅이 정교하게 된다던 Criteo의 리타게팅 서비스에서 Senior Data Scientist로 있었던 사람 입장에서, 알고리즘이 광고 노출하게끔 적당히 쇼핑몰 홈페이지를 들락날락거리는 유저 프로필을 만드는 건 식은죽 먹기 처럼 보인다. 저런 Fraud 유저를 걸러내는게 알고리즘 Optimization에서 “머리 터지는” 일이었기 때문에 꽤나 자신있게 이야기 할 수 있다. VPN도 쓰고, 자동화된 알고리즘 머리 위에 노는 클릭 농장이 단순히 언어, 위치 같은 명백하게 보이는 값들로 배제되는데도 가만히 맥 놓고 있을까?

쉽게 말해서, 클릭 농장도 바보 아니다. 그들도 진화한다.

(Source: S4M)

 

구글도 당하는 Fraud Click

AdTrader라는 DSP회사 하나가 2017년 12월에 구글에 소송을 걸었다. 자기네가 구글 더블클릭의 광고지면을 구매해서 광고주들의 광고를 태웠는데, 정작 Fraud Click에 대한 보상을 구글이 다 챙기고, 광고주들한테는 돈을 안 돌려줬단다. Wall Street Journal이 곧 이 문제로 기사를 냈고, 구글은 신문기사가 나간지 6일만에 자기들의 서치광고 서비스인 AdWords의 이용 약관을 업데이트 했다. 광고주들이 Fraud Click에 대한 보상을 해달라고 할 수 없다.

그나마 약관이 바뀌기 전에 먼저 소송을 걸었던 AdTrader는 2017년 5월부터 구글에게 “팽”당했던 내용을 꽤나 자세하게 외부 공개했다.

꽤나 긴 법정 분쟁 끝에 구글은 지난 2018년 12월 5일에 캘리포니아 연방 법원에서 정보 공개 요구를 받았고 (하단 스크린샷 참조), 이것 때문에 최근 Fraud Click에 대해서 말들이 많아졌다.

소송이 진행되고, 법원의 행정명령이 떨어지기까지 자세한 과정을 다 담을 수는 없지만, 구글이 Fraud Click을 찾아낸 다음 그 부분에 대한 광고비를 환불해주지 않은 점이 크게 지적되어 있는데, AdTrader가 사기 클릭 부분에 대한 환불 요청하려는 상황이 백분 이해되고, 또 사기 클릭을 만들어내는 IP와 웹페이지를 꾸준히 걸러내는 구글의 Fraud 팀 관리 비용, 처리 비용도 눈에 선하게 보여서 딱히 한쪽 편을 들지는 못하겠다. 여기서는  그들의 비지니스적인 문제, 법적인 분쟁은 약간 논외로 하고, Fraud Click에만 초점을 맞춰보자.

구글이 어떤 종류의 알고리즘들을 이용해서 Fraud Click을 잡아내고 있는지는 잘 모르지만 (대충 짐작할 수 있는 부분은 많다), 내부적으로도 엄청나게 복잡한 고민이 있을 것이다. 첫째, 알고리즘의 정확성에 대한 의구심이 내부에 항상 존재할 것이고 (“인공지능”이면 척척척 다 되는건 없다..), 또 광고 지면 판매해서 매출액 끌어올린 매체세일즈 팀 입장에서는 Fraud Click으로 돈 벌었으니 환불해줘야한다는 Product Team의 메세지가 아니꼬울 수 밖에 없는 내부 정치적인 구조도 있을 것이다. (법적 분쟁의 소지가 있으므로 자세하게 말해줄 수는 없지만 필자도 비슷한 일을 겪었다.)

 

누가 관심이 있을까?

내부 정치적인 구조라는 문구에서 눈치를 챈 분도 있겠지만, 사실 많은 DSP들이 Fraud Click이 있어도 모르는체하고 넘어가는 경우가 많다. 저런 Click들이 좀 있어줘야 자기네들도 돈을 벌 수 있으니까.

실제로 Fraud Click으로 이득을 보는 집단을 생각해보면, 경쟁사와 광고업 Value Chain에 있는 거의 모든 업체가 해당된다. DSP는 광고 클릭이 많아서 과금을 많이 받을 수 있고, DSP를 소개하는 광고대행사들도 덩달아 이득을 보고, 광고 지면 판매하는 측은 (CTR기준으로) 광고 효율이 좋은 지면이라고 높은 평가를 받아 지면 판매 단가를 올릴 수 있다. 클릭 농장 덕분에 손해를 보는 집단은 오직 광고주 뿐이다. 이런 이해상충관계 (Conflict of Interest)가 있기 때문에, 광고주들은 DSP가 제시한 광고 효율이라는 숫자를 불신하고, 광고비를 깎으려들고, DSP는 광고비를 더 받으려고 호가를 올리거나, 다른 상품 끼워팔기를 하는 등의 악순환 고리가 생길 수 밖에 없다.

 

Ad Fraud Rings

개발도상국에 저가 인력을 잔뜩 모아놓은 클릭 농장만 작동하고 있는 것도 아니다. 인력 비용이 비싼 선진국들에 가면 트로이 목마나 Bot들을 이용한 멀웨어(Malware)도 엄청나게 많은 숫자가 있다. Ad Fraud에 관심있을 사람들이면 한번쯤 들어봤을 회사들을 보면, 2006년에 적발된 Clickbot.A나 DNSChanger부터, 각각 2011년, 2013년에 경찰 조사가 들어갔던 ZeroAccess, Chameleon 등의 음지의 서비스들이 있다. 공통적인 특징은 중요한 보안 프로그램인 것처럼 사용자를 속인다음, 설치되자마자 가짜 광고 노출, 클릭, 인스톨 신호를 서버에 송출하는 것인데, ZeroAccess 같은 경우에는 심지어 Bitcoin을 캐내는 용도로 개인PC의 시스템 자원을 몰래 쓰기도 했다.

이런 멀웨어들 중에 가장 유명(?)한 것이 Methbot (백서 참조)이라고, 85만개가 넘는 “정상적인” (통신사, 가정집 등등) IP를 보유하고 있는 탓에 광고용 서버에서 IP를 차단하는 방법으로 해결하기 어려운 구조를 갖고 있다. 알려진 바에 따르면 미국 안에서만 하루에 4억개의 광고 노출을 가짜로 만들어 낼 수 있고, 그걸로 하루에 최소 3백만 달러 (대략 30억)를 벌고 있단다.

근데, 알려지지 않은 멀웨어들도 헤아릴 수 없이 많고, 새로운 멀웨어가 지금도 계속 만들어지고 있다.

아래의 동영상은 정상폰과 멀웨어에 오염된 폰이 앱 인스톨 후에 어떤 메세지들을 보여주는지 log를 본 것이다. 정상폰이었으면 생성되지 않았어야하는 메세지들이 오염된 폰에서는 엄청나게 생성된 걸 볼 수 있는데, 이게 전부 가짜 광고 노출, 클릭, 인스톨을 만들어냈기 때문이다.

(멀웨어에 오염된 스마트폰은 정상폰보다 더 많은 광고 노출, 클릭, 인스톨 메세지를 만들어 내고 있다)

 

시스템 기반의 시도 – ads.txt

2010년대 초반부터 구글의 주도하에 광고 지면 판매 방식을 자동화된 2차가격 경매로 판매하면서, 광고 지면을 갖고 있는 매체사들의 인력 비용은 줄었을지 모르지만, 자동화된 시스템을 악용한 멀웨어들의 숫자도 덩달아 늘어났다. 이쪽 분야를 보면 말그대로 끊임없이 진화하는 창과 방패의 싸움이 느껴지는데, 자동화 지면에 한정해서 멀웨어들의 준동(?)을 막는 새로운 시도를 하나 소개해보려고 한다.

보통의 홈페이지들은 sitemap.txt 파일을 갖고 있다. 구글같은 검색 서비스들이 그 파일을 읽어서 홈페이지의 구조도 이해하고, 특정 페이지는 노출하지 말라고 지정하고, 또 어떤 페이지들은 중요 페이지라고 서치 엔진에게 노출 우선순위를 높여라고 지정할 수도 있다. 자동화 광고 지면 판매에 많은 노력을 기울이는 IAB에서 비슷한 맥락으로 ads.txt 파일을 만들어서, 자동화 광고 판매처들이 제대로된 웹사이트인지 확인할 수 있도록 해주는 정보를 입력하자는 제안을 내놓았다. NY Times 예시, Wall Street Journal 예시

google.com, pub-951234556, DIRECT #Display

그 파일에 일반적으로 들어갈 만한 여러개의 라인 중 하나인데, 첫번째는 광고 판매 대행사 (속칭 SSP), 두번째는 매체사 ID, 셋째는 판매 관계 (Direct, Reseller 등등), 마지막으로는 광고 표현 방식이다. 이 txt파일을 하나 추가해놓으면, 일단 지면을 모아서 팔아주는 SSP 입장에서 가짜 웹사이트가 아니라는 걸 확인할 수 있고, 정보를 추적하기도 용이하다. 물론 저런 파일 하나 만들어서 웹 서버에 올리는게 어려운 일도 아니다.

좋은 해결책이라고 생각하는데, 굳이 고민이 된다면 Ad Fraud 때문에 제일 피해를 볼 광고주가 할 일이 아니라, 광고 지면을 팔아서 이득을 보는 매체사들이 해야할 일이라는것 정도일까? 좀 더 넓게 생각하면, 앞으로 ads.txt 파일이 없는 광고 지면에 광고를 하는 DSP와는 거래하지 않겠다고 광고주들이 단합행동을 하고, DSP는 SSP에게, SSP는 실제 지면을 갖고 있는 매체사들에게 압박을 넣는 방식으로 시장 선순환 구조가 만들어지면 좋을 것 같다.

 

데이터 기반의 시도 – Fraud detection algorithm

시스템을 잘 설정해서 완전히 Fraud를 없앨 수 있다면 얼마나 좋을까? 그러나, 저런 방식으로는 멀웨어나 가짜 웹사이트는 쫓아낼 수 있어도, Click Farm의 저가 노동력과 매크로들을 배제하기는 어렵다. 실제로 업무 중에 가짜 웹사이트들을 흔히 보는데, 똑같이 생긴 웹페이지가 이름만 다른 상태로 Copy & Paste 한 티가 팍팍나게 만들어져 있고, 그런 웹페이지 하나에 광고가 10개씩, 20개씩 붙어있다. 가짜 페이지 10개 만들고, 한 페이지당 광고 섹션이 10개씩 있으면 Click Farm의 매크로가 한번 돌 때마다 100번의 광고 노출이 이뤄진다. 하루종일 몇 만번의 광고 노출을 만들어내는건 정말 “식은 죽 먹기”인 셈이다.

Data Scientist는 언제나 시스템 기반의 해결책에 냉소적이다. 시스템은 머물러 있지만 인간은 끊임없이 진화한다는걸 알고 있으니까. 그 진화하는 인간을 추적하는 Data에서 Solution을 찾는 사람들이니까.

보통 Data Scientist가 이런 문제에 접근하는 방법은 Anomaly Detection과 유사하다. 보통의 인간이 만들어 낼 수 있는 클릭, 인스톨 같은 행동 패턴이 있고, 인간이 만들어냈다고 믿기 어려운 행동 패턴은 Click Farm과 매크로가 만들어 낸 경우가 대부분이기 때문에, 해당 서비스에서 Human Behavior라고 판단되는 패턴 N개를 찾아내고, 그 패턴과 매칭율이 k% 미만인 데이터들을 Fraud라고 잡아내는 방식이다.

무슨 데이터를 쓰고, 구체적으로 어떤 알고리즘이 있냐고 물으면, 여기에 써 놓은 걸 보고 클릭 농장 사람들이 새로운 “꼼수”를 찾아내지 않을까?ㅋㅋ  이해를 돕기위해 Macro하게 의구심이 들만한 부분을 간단하게 찾아내는 예시를 하나 들면, 하나의 Publisher ID를 기준으로, 평소에 Click log들이 있을텐데, 필터 알고리즘(such as Kalman)을 이용해 Outlier 부분을 제거하고 Cycle에 해당하는 부분만을 뽑아내본다. 이 때 주기함수를 Frequency domain으로 옮겨서, High frequency 한쪽으로만 One-side detection을 하면 최소한 의구심이 생기는 부분을 잡아내볼 수 있다. 여기에 클릭 다음의 유저 액션을 유저별로 볼 수 있다던가, 한 웹/앱페이지에 동시에 뜨는 광고들을 묶어서 볼 수 있다던가하면 찾아낼 수 있는 방법은 기하급수적으로 늘어난다.

위의 기본 예시를 모든 사이트에 적용할 수 있을지는 잘 모르겠다. 여느 Data Science 프로젝트나 마찬가지로 Fraud Detection도 One-size-fits-all solution을 찾기란 매우 힘들다. 어차피 데이터 전처리를 하고, 각각의 가설에 입각해서 모델을 만들고 테스트 하는 답답하고 괴로운 과정을 겪어야 하나씩 둘씩 알고리즘이 업데이트 되는거라, 광고 지면마다, 주어진 상황별로 적용 알고리즘은 다를 수 밖에 없을 것이다.

현업에 계신 분께 두 가지 사례를 들어 충고를 하고 싶은데, 첫째, 해외 솔루션 중에 있는 특정 IP를 차단해준다는 식의 서비스를 쓰는건 비추한다. Click Farm 입장에선 IP 차단은 VPN만 써도 금방 해결이 된다. 한번은 특정 IP가 장난을 치는 것 같아서 주소 추적을 해 봤었는데, 나중에 알고보니 어느 커피숍 매장의 IP를 해외에 있는 클릭 농장에서 VPN으로 끌어와서 썼더라. 우리나라에 그렇게 가져다 쓸 IP를 제공할만한 커피숍 매장이 몇 개일까? 수천개가 넘을 것이다.

둘째, 어느 글로벌 Top-tier의 앱 트래커 (App Tracker) 서비스가 주장하는 바에 따르면 평균적인 클릭/인스톨보다 많은 숫자가 나오면 무조건 Fraud Click/Install로 잡아준다던데, 이런 단순한 로직이 틀렸다는건 굳이 설명 안 해도 잘 알 것이다. 어떤 업체건 Fraud Click/Install을 찾을 수 있다고 주장하면, 아무리 회사 기밀이라고해도 무슨 로직을 쓰는지 최소한 합리적인 근거는 요청하자. 저 위에 쓴 간단한 예시만큼의 수학/통계학도 안 들어가있으면, 솔직히 말해서 “사짜”라고 생각한다. (그리고 다른 설명은 하나도 없이 다짜고짜 “딥러닝을 이용한” 그러면 무조건 걸러야 한다. 아무것도 모르고 그냥 단순 데이터 입력하는 사람들이나 이 주제에 딥러닝을 쓸 확률이 매우매우매우 높다.)

(Source: S4M)

 

나가며 – Data Science 프로젝트는 “늪”이다

어느 In-house DSP를 운영하는 회사에서 Ad Fraud를 잡아낼 수 있냐는 연락이 왔다. 이런 종류의 컨설팅 프로젝트 요청에 여러 안 좋은 경험들을 겪고 나서부터 일반적인 (Read 몽상적인) 외주 컨설팅 프로젝트들은 일언지하에 거절하는데, 주제 자체가 우리 DSP의 핵심 서비스 중 하나인지라 맘을 바꿔먹고 긍정적으로 답변을 드렸다.

아마도 DSP를 운영하는 회사라면 상황은 비슷할 것이다. 광고주들은 언제나 내가 태운 광고비만큼 효과가 안 나오는 것 같다고 효율 높은 광고 지면을 찾고, 효율 높은 광고 대행사를 찾고, 효율 높은 광고 타게팅 서비스 (DSP)를 찾는다. 외부인의 시선으로 봤을 때는 유저를 잘 찾아주면 되는거 아니냐는 관점으로 타게팅 알고리즘 연구에만 초점이 맞추겠지만, 정작 DSP를 운영하는 입장에서 많은 고민이 되는 부분은 우리 광고 지면을 Clean하게 만들고, 유저 풀을 Clean하게 만드는데 들어가는 노력과 그걸 광고주들에게 인식시키는 비용이다.

여느 보안 서비스와 마찬가지로, 범죄자들의 창끝은 끊임없이 진화한다. 데이터 속의 패턴으로 방패를 만들어 내고 있는 Pabii 입장에서도 매우 Human 스러운 패턴을 복제해내는 매크로를 찾아낼 수 있을 것이라고 단정할 수 없다. 새로운 적이 나타날 때마다 새로운 반응을 해 줘야하는 업무, 그래서 어느 전문가 분은 이런 업무를 “늪”이라고 부르더라.

기업들 세일즈 미팅이나 외부 특강을 가면 꼭 듣는 질문들이 있다.

  • 우리가 가입자들 데이터를 내부적으로 굉장히 많이 갖고 있는데, 우리보다 더 많은 데이터를 갖고 있는가?
  • 우리가 자체 DMP를 만들어서 광고할 유저를 뽑아내는 것보다 타게팅 알고리즘이 더 나은가?
  • 어차피 구매할려고 했던 유저들에게 다시 광고 보여줘놓고 효율 좋다고 우기는건 아닌가?
  • 우리가 모든 앱 이용자들에게 광고 메세지를 보내는 건 공짜인데, 타게팅은 돈이 든다. 그만한 가치가 있나?

이런 질문들에 엄청난 내부 Bias를 가진 상태에서 결론을 내린 다음, DSP 서비스를 쓰지 않는 경우를 너무 많이 봐왔다. Criteo 재직 시절에는 콧대 높은 게임사들에서 주로 봤었고, Pabii 에서는 대기업 쇼핑몰들에서 주로 들었던 질문들이다. 질문 받은 당시에 나름대로 조리있게 설명을 드렸는데, 잘 이해하고 가신다는 느낌도 못 받았고, 사실 전달하기도 쉽지 않은 지식이었다는 생각이 든다.

Pabii가 곧 DSP형태의 서비스를 출시할 계획이어서가 아니라, 그 분들이 매우 잘못된 생각을 갖고 있다는 판단아래, 조목조목 반박하는 글을 올린다.

* DMP: Data Management Platform – 온라인 유저 데이터를 포괄 관리하는 거대 데이터 베이스, 유저 분석 업무를 포괄 지칭한다

* DSP: Demand Side Platform – 유저 분석을 통해 선별된 유저들에게 광고를 보여주는 플랫폼, 타겟팅 정확도가 핵심 기술력이 된다.

Q. 기업이 고객 데이터를 내부적으로 많이 갖고 있는데, DSP가 더 많은 데이터를 갖고 있을리가 있나?

A. 필요한 데이터, 적절하게 가공된 데이터가 있는지가 중요하다

Criteo 서비스를 써 보신 분들은 다 알겠지만, Criteo가 (필자의 재직당시) 원했던 데이터는 몇 종류되지 않는다. 온라인 쇼핑몰 기준으로 1.홈페이지, 2.검색 페이지, 3.상품 페이지, 4.장바구니 페이지, 5.구매 페이지 로그가 전부다. 여기에 상품 페이지와 실제 상품을 매칭할 수 있도록 상품 Feed를 따로 받은 것 밖에 없다. 그런 정보만으로 어떻게 구글, 페북 같은 업체들보다 더 높은 퍼포먼스를 보일 수 있는 타게팅 알고리즘을 가질 수 있게 되었을까? 유저들의 모든 검색어를 다 알고 있는 구글이나, 사용자가 하루에 몇 시간씩 시간을 보내는 페북이 훨씬 더 고급 타게팅을 해야하는거 아닌가?

제대로 DB만 구축해놨다면 당연히 기업들이 훨씬 더 많은 유저 데이터를 갖고 있을 것이라는데 별 이의가 없다. 근데 그런 데이터가 다 필요할까? 그런 데이터가 있으면 온라인 쇼핑몰 타게팅이 훨씬 더 정교해질 수 있을까? 근데 왜 구글, 페북이 그런 엄청난 DB를 들고도 Criteo 하나 못 잡아서 매번 Head-to-Head 테스트를 하면 패배의 쓴 맛을 봐야했을까?

매번 Factor Analysis 이야기할 때마다 강조하는거지만, 데이터를 많이 갖고 있다는 장점이 효과를 볼려면 다른 데이터로는 표현할 수 없는 Vector Space를 커버하는 데이터를 모델에 쓸 수 있어야한다. 그런데, 세상의 많은 데이터들은 서로간에 높은 Correlation을 갖고 있고, 꼭 1:1이 아니라 최소한 1:N의 비율로 Linear dependency를 갖는 경우를 자주 볼 수 있다. 다시 말하면, 꼭 데이터가 많아야 이기는 승부가 아니라, 필요한 데이터를 좋은 모델로 활용하는 데이터 전처리 및 모델링의 싸움이 훨씬 더 승패에 큰 영향을 미친다.

어느 사회학 공부하는 분의 댓글에서 봤듯이, 사회과학하는 사람들에게 데이터 속의 Implication을 잡아내는 작업은 친숙하다못해 당연한 작업인데, 반대편 극단의 공대생들은 일단 자동화할 수 있는지 없는지에 더 초점을 맞추는 경우가 흔하기 때문에, 그래서 너무 공대생스럽게 타게팅 알고리즘을 만들어놨기 때문에 구글, 페북이 조그마한 Criteo 하나 못 따라잡고 있는건 아닐까 싶다. (더 자세히 이야기하면 Criteo에서 고소들어올지도 몰라서 여기까지…)

 

Q. 기업들이 자체 DMP를 만들어서 광고할 유저를 뽑아내는 것보다 타게팅 알고리즘이 더 나은가?

A. 당신네들 인력이 DSP 전문 Data Scientist들보다 뛰어난가?

위의 대답과 연결된 질문이다. 요즘 한국의 대형 온라인 업체들이 데이터 Hype에 걸려서 너도나도 데이터 베이스 구축하고, DMP를 만든다면서 빅데이터 처리를 담당하는 Data Architect들의 몸값이 폭등했다. (네X버, 카X오 등에서 Hadoop 써 봤다고 그러면 그 개발자는 서로 데려가려고 난리란다. 굳이 그래야하는지는 잘 모르겠지만….)

그렇게 빵빵한 DMP를 만들어놨으니, 이제 뭔가 마술을 확~ 부리면 데이터 속의 Implication이 마구 쏟아질 것 같아서 Data Scientist를 뽑겠다고 하더니 정작 Data Analyst와 Data Engineer들만 있는 팀을 만들고 있으시던데? 가끔 그런 팀 만들어놓고 날 불러서 Case Study 들어간 강의 한번만 들으면 그 분들의 “역량”이 뿅~ 하고 업그레이드 될 줄 알고 있으시던데?

당신네 회사는 거들떠 보지도 않을 “수준 높은 인재”들이 가 있을 구글, 페북도 Criteo 못 따라 잡아서 안달이고, 당장 구글, 페북의 타게팅 알고리즘도 따라해보려다가 고생하는, 실리콘 밸리의 똘똘이 스머프 가득한 스타트업들이 널려있다. 근데 DMP가 무슨 데이터를 보유하고 있어야되는지도 잘 모르는 수준의 인력만 밀어넣으면 그런 마술을 부릴 수 있을 것 같은가?

예전에 판교 어딘가에서 고생하는 개발자 친구가 0.18%에서 0.2%로 Click Through Rate (CTR) 올리는 싸움하는걸로 데이터 사이언스 폄하하길래 반박해줬던 글 기억나시는가?

 

Q. 원래 구매할려고 했던 유저들에게 다시 광고 보여줘놓고 효율 좋다고 우기는건 아닌가?

A. 궁금할 땐 A/B Test 를 해 보시면 된다.

예전에 30대 남성들만 들어가는 페이지, 20대 여성들만 들어가는 페이지에 광고할 때보다, 유저의 특성을 계산해서 선택적으로 광고를 보여주는 타게팅 광고가 더 저렴해서 썼나? 눈 앞의 비용은 분명히 비싸다. (당장 CPC가 훨씬 더 높을텐데?) 단순 비용이 적게 들어서가 아니라, 그렇게 광고 봤던 유저들이 구매로 이어져서 회사 수익이 커지는 부분, 즉 ROAS (Return on Advertiser Spending)이 눈에 띄게 크기 때문에 그런 비용을 썼을 것이다. 그렇다고 ROAS값만 높으면 무조건 좋은 광고 타게팅 알고리즘일까?

어차피 구매할 유저들이있는데, 그런 유저들에게 광고 보여줘놓고 생색내기 하는거 아닌가라는 질문을 하시는 분들이 많다. 보통 이런 이슈 때문에 A/B Test를 진행한다. 유저들을 절반으로 나눈 다음, A 그룹에게는 아예 광고 노출을 하지 않고, B그룹 중 타게팅 알고리즘에서 선별되는 유저들에게 광고 노출을 해놓고, 두 그룹간 소비 금액의 차이를 확인한다. B 그룹 전체한테 다 보여주는게 아니라 일부한테 보여주는건 반칙아니냐고들 하시던데, 원래 타게팅 알고리즘 자체가 선별된 유저에게만 광고를 보여주는 서비스다. 단지 A는 선별 자체를 안 하는거고, B는 선별 그룹에 남겨놓는 차이밖에 없다.

보통 이렇게 A/B Test를 하고 나면, A 그룹대비 B 그룹에서 20% ~ 50% 정도 높은 전환율을 보였다는 걸 확인할 수 있다. 그 20%의 추가 전환분이 진짜 ROAS 계산에 들어가야 정확한 계산이 될 것이다. (많은 DSP들이 “20% 추가분 / 광고비  = ROAS”라는 공식을 활용하지 않고, “120% 전체수익 / 광고비 = ROAS”라는 공식을 쓰면서 광고주들을 호도하고 있다는 사실을 인지하고 있지만 자세한 사례를 공개적으로 밝힐 수 없음을 양해해주셨으면 좋겠다.)

광고주 입장에서, 광고비를 더 써서 매출액이 더 나왔고, 그 증가분이 만족스럽다면 광고를 계속 집행하면 된다. A/B Test는 그런 측면에서 굉장히 간단하고 효과적인 테스트다. 어느 스타트업을 가봤더니, 새로운 DSP 서비스가 나올 때마다 모두 A/B Test를 해보더라. 실험적인 자세를 유지할 수 있을만큼 광고 예산이 많은 것도 있겠지만, CMO 분이 정말 논리적, 체계적으로 광고를 운영하고 있다는 느낌을 받았다.

 

Q. 모든 앱 이용자들에게 광고 메세지를 보내는 건 공짜인데, 타게팅은 돈이 들지 않나? 가성비 안 나오는거 아니냐?

A. 모든 광고 지면은 동일하지 않고, 막 뿌리면 유저 피로도가 증가해서 서비스를 떠나버린다.

위의 세 가지 설명을 하고 나면, 보통 마지막 질문을 받는다. 어차피 우리 앱 유저들한테 푸시 메세지를 보내면 광고 다 나가는데, 그렇게 모든 유저한테 다 보내버리면 되지 않냐고, 왜 굳이 골라서 보내줘야되냐고, 그렇게 골라서 보내주는거에 왜 돈을 써야하냐고들 하신다.

일단, 큰 대전제 하나를 짚고 넘어가자. 모든 광고 지면은 동일한 가치를 갖지 않는다.

시간 때우기용 유머 사이트에서 보는 광고지면 단가보다, 특정한 정보를 전달하는 페이지의 광고지면 단가가 훨씬 더 비싸다. 그냥 그 페이지에는 더 “돈을 많이 쓸 것 같은” 유저가 모이기 때문에? 같은 사람이 1초 전에 유머 페이지보다가 정보 전달 페이지로 넘어갔는데, 그래도 “돈을 많이 쓸 것 같은” 유저는 다르다고 주장하실텐가?

Do Publishers Matter? 라는, 광고에서 아주 오래된 근본적인 질문이 있다. 해당 페이지의 내용에 따라서 문맥이 달라지고, 다른 문맥 때문에 결국 지식을 소비하고 있는 유저의 반응도 달라질 수 밖에 없다. 요즘들어 경쟁적으로 Native Ad가 나오는 것도, 정말 광고 같은 느낌이 들지 않는 광고, 블로그 글 읽던 중에 정보 전달인 거 같은 느낌이 드는 광고여야 사람들의 거부감도 줄어들고 반응율이 높아진다는 걸 인지했기 때문이다. 쉽게 말해서, Publisher matters!

실제로 푸시 메세지를 보내고 나면 유저들의 (일시적인) 재유입이 폭증한다. 광고 효과를 “노출” & “재유입”으로 본다면 나쁘지 않은 선택인 건 사실이다. 근데, 일부 유저들이 그렇게 긍정적으로 반응했을 때, 다른 유저들은 어떤 생각을 했을까? 한번은 밀어서 지워버릴지 모르지만, 계속 그런 메세지가 주기적으로 온다면? 짜증이 치밀어 오른다의 광고적인 표현은 “유저 피로도”의 증가이다.

아마 게임회사 광고 담당자가 “우리가 하는것보다 잘 할 수 있냐”고 묻던 이유는 푸시 메세지 처럼 내부 보유한 채널로 충분히 해결될 것 같아 보이는 광고에 왜 돈을 쓰냐는 질문이었을텐데, 타게팅이 안 되면 안 될 수록 전체 유저의 피로도가 증가한다고 답을 할 수 있을 것이다.

겨우 피로도 조금 증가하는거 때문에 굳이 광고에 돈을 쓰고 싶지 않다고 결론 내릴 수도 있을텐데, 정말 당신네 타게팅 알고리즘이 DSP보다 더 좋다고 생각하는건 아니겠지? 그 “피로도”가 그렇게 중요한 정보가 아니라면, 제일 많이 깔린 앱에 그냥 광고를 부탁하면 된다. 어차피 노출되기만 하면 상관없다면, 한국에서 제일 많은 사람들이 쓰는 앱을 가진 회사가 푸시 메세지 광고를 독점해버리면 될 것이다. 그런데, 유저 피로도가 어느 수준을 넘으면 그 앱은 휴지통 행이 된다. 푸시 메세지 꺼주는 기능을 찾는 유저가 있으면 차라리 양반이라고 해야할 것이다.

웹사이트에 광고를 덕지덕지 붙이기 시작하면 유저들은 빠른 속도로 떨어져나간다. 앱이 푸시 메세지를 계속 보내면, 앱 사용 중에 계속 광고가 뜨면 유저들은 더더욱 빠른 속도로 떨어져나간다. 유저 피로도는 그렇게 무서운 것이다.

 

나가며 – 레벨의 차이

머신러닝 모델의 “성능”을 이야기할 때,

  • 1차원적인 사람들은 몇 % 맞췄냐만 묻는다.
  • 2차원인 분들은 Precision, Recall을 다 본다.
  • 3차원인 분들은 Overfitting의 가능성을 본다.
  • 4차원인 분들은 데이터 전처리 할만한 여지를 살펴본다.

데이터 사이언티스트의 퀄리티는 이런데서 결정이 된다.

광고 타게팅을 이야기할 때도 상황은 비슷하다.

  • 1차원적인 사람들은 어차피 노출만 되면 되는거 아니냐고, 왜 돈을 쓰냐고 묻는다.
  • 2차원적인 사람들은 지면마다 특성이 다르다는걸 인지하고 좋은 지면에 지갑을 연다.
  • 3차원적인 사람들은 투입 자금대비 효율을 따지며 (Incremental) ROAS 숫자를 본다.
  • 4차원인 분들은 광고 때문에 유저들에게 반감이 생기지는 않았는지, 유저 피로도가 올라가지는 않았는지 살펴볼 것이다.

타게팅 알고리즘의 퀄리티도 이런 부분에서 결정이 된다고 생각한다.

광고주 분들께 꼭 DSP를 써야한다고 이야기하고 싶지도 않고, 모든 DSP가 다 좋은 알고리즘을 갖고 있지 않다는 사실도 인지하고 있다. 아마 많은 회사들이 아직도 웹 Tracker기반, 앱 SDK 기반의 데이터로 세밀한 타게팅을 할 수 있다는 서비스 홍보를 열심히 하고 있을 것이다. 어느 서비스가 제일 좋냐고 물어보시던데, 그런 주장을 하는 회사에서 인정할 수 있을만한 Data Scientist를 아직까지 한 명도 만나보질 못했기 때문에 추천을 못하겠다고 말씀드렸다. 어차피 어느 회사건 고퀄리티의 알고리즘을 갖고 있으면 내부 기밀일텐데, 외부로 알려진 정보만 자꾸 찾으려고 하지말고, 어느 스타트업 CMO처럼 직접 테스트해보는게 제일 좋지 않을까? 농담이 아니라, 이런식으로 Noise 가득한 데이터들에서는 One-size-fits-all 모델이 없기 때문에, 남들한테 잘 되는 DSP가 꼭 우리 회사에 잘 되라는 법도 없다. 직접 테스트해보시는게 제일 좋을 것 같다.

부족한 지식으로 내린 결론이 국내외 DSP 회사들에서 영업을 뛰고 계신 분들께, 사내에서 DSP 광고를 해야할지 고민하는 마케터 분들께 조금이나마 도움이 되었으면 한다.

모 게임사에서 데이터 분석(?)을 한다는 팀에 있는 개발자 친구를 만났다. 아무리 학부시절 절친이어도, 오랜만에 만나니까 회사 내에서 무슨 일을 하고 있을지 좀 알고 가야지 실례가 아닐 것 같아서 이래저래 구글링을 좀 해 봤다.

언론에 공개된 내용만 봤을 때는, 좋은 회사고, 훌륭한 목적을 가진 부서라고 보였지만, 그 팀의 수장이라는 사람부터 사내의 데이터 “분석”을 한다는 사람들의 스펙과 발자취(?)를 봤을 때는, 모델링을 할 수 있는 사람들의 모임이 아니라, Data Analyst들과 Data Engineer들로 꾸려진 팀이라는 느낌을 받았다.

아니나 다를까, 개발자 친구를 만나니 회사 내에서 하는 데이터 “작업”이라는 것들이 얼마나 단순한지에 대한 불평불만이 막 쏟아지더라.

이런게 정말 데이터 “작업”이라면, 그 분들 지원해주는 개발자 하느니 그냥 직접 게임 만드는 개발자로 사는게 더 낫지 않냐고, 도대체 데이터 사이언스라는 건 왜 필요한거냐, 무슨 성과가 실제로 있냐는 폭풍 디스를 들었다.

그 중에서 제일 기억에 남는 말이,

“그 타게팅 광고한다는거, 요새 페북이 픽셀이라는거도 제공해주고, 그냥 단순히 캐쉬에 있는 정보 비슷한거 매칭해주는 수준 아냐? 0.018% 반응율이 0.02%로 올라가는걸로 뭐가 대단하다고 하는건지 도저히 이해가 안 된다고.”

“데이터 분석한다는 석사, 박사 나온 사람들이 우리회사에서 하는 일이 말야, 그냥 우리가 학부 때 SPSS로 숙제 내던 걸 그냥 Python 이나 R 코드로 치는 수준 밖에 안 되던데? 진짜 그게 다야?”

는 불평이었다.

 

반박 1 – 반응율이 0.0x%가 아니라 1% 이상이라면?

필자가 Senior Data Scientist로 재직했던 Criteo라는 회사가 잡서칭하던 당시 필자의 손바닥 위에 놓고 고민했던 글로벌 Top Tier IT 펌들과는 네임밸류에서 꽤나 격차가 있던 회사다. 보통의 한국 사람이라면 설령 일이 자기 입맛에 안 맞더라도 유명한 회사에 들어갔겠지만, 필자는 Criteo의 타게팅 광고 모델이 다른 회사들보다 압도적으로 좋다는 여러 Record를 듣고 맘을 바꿔 먹었었다.

어느 정도 차이가 나나면, 음란 광고, 보상성 광고 등의 예외를 제외하고 우리나라에서 디스플레이 광고 클릭율 (CTR, Click-Through-Rate)이 가장 높다고 생각되는 광고 지면이 N사 포털의 초기화면 좌측 가로 상단 배너다. 지난 대선에 그 지면에 여러 후보들이 경쟁적으로 자기 슬로건을 노출하더라. 업계 소문에 따르면 그 지면의 평균 CTR이 0.1% 정도라고 알려져있다. (저 친구네가 0.0x% 근처에서 놀고 있는게 놀라운 일이 아니다.)

구글을 비롯한 여타의 타게팅 광고 서비스하는 회사들의 평균 CTR이 0.5% 정도라고 하는데, 필자가 Criteo 재직 중에 CTR이 1%가 안 나오면 도대체 무슨 문제일까 배경조사를 해야했었다. 대부분의 문제는 설정상의 오류였고, 가끔은 나라별, 광고주별로 특이하게 CTR이 낮고, 전환율이 낮다는 이유로 타게팅 모델이 국가별, 광고주별로 어떻게 다르게 적용되어야할까 고민한 내용을 다른 Data Scientist들과 공유하기도 했다. (이게 Data Scientist의 일이니까)

그만두고 나온 회사를 너무 띄워주고 있는 것 같기는한데, 그 회사는 CTR이 높다는 걸로 홍보하는게 아니라, 그렇게 광고 찍고 들어온 유저가 구매전환 (CVR, Conversion Rate)이 높다는 걸로 홍보하는 회사고, 그 쪽 정보는 외부 언론에서 찾을 수 없는 정보니 공개하지 않는 걸로 회사 기밀 보호의 의무를 지키도록 하자. (위에 공개한 정보는 여기, 여기, 여기, 여기에서 확인할 수 있다. 우리회사 상품 출시되면 효율 더 높게 나올테니 그 땐 진짜 홍보해야지ㅋ)

“니가 0.018%와 0.02%에서 놀고 있을 때, 글로벌 Top Tier IT 회사들은 0.5%에서 놀고있고, 내가 다녔던 회사는 1% 안 되면 Alert이었다.”

는 이야기를 하니, 그 친구 눈이 똥~그랗게 되더라.

필자도 실리콘밸리에서 잡서칭하던 당시에 그 친구와 똑같은 반응을 보였던 적이 있기 때문에 그 충격을 꽤나 잘 이해하고 있다고 생각한다.

 

반박 2 – SPSS로 할 수 있는 걸 굳이 Python 코드로 쳐야되냐?

평생동안 SAS와 SPSS라는 통계 패키지를 써 본적이 딱 2번씩 밖에 없다. 학부 시절 어느 전략 컨설팅 회사 인턴하면서, IBD Analyst시절 외부에서 받은 데이터 처리하려고, MIT에서 머신러닝 수업 숙제용으로 받은 테라 데이터 재정리하려고, 그리고 박사시절 교수님 프로젝트 도와드리느라고.

필자의 이용 목적에 맞았다면 일부러라도 배워서 썼을텐데, 대용량 데이터 정리(?) 목적 이외에 다른 용도가 보이질 않아서 더 이상 그 프로그램들을 다룬 적이 없다.

그런데 만약에 당신이 SPSS로 할 수 있는 걸 굳이 Python 코드로 치고 있었다면, SPSS를 잘 활용하지 못했거나, Python을 잘못 활용하고 있다는 뜻일 것이다.

Support Vector Machine Python code example 이라는 검색어로 구글링을 한번 해 보시라.

수 없이 많은 Python 코드 예제를 블로그에서, Github에서 볼 수 있다. 필자는 그런 코드 중 일부를 코드 설명하는 시간 초반부에 아주 빠르게 개념 설명하는 용으로만 쓴다. 저건 회사 업무를 할 수 있는 수준의 코드가 아니라는 걸 너무나도 잘 알고 있기 때문이다. (그런 코드 복사해서 돈 받는 강의하는 사람들 쫓아내겠다고 계속 강의를 하고 있기도 하다.)

수업에 왔던 국내 유수의 대기업 데이터 관련 업무 한다는 분들 대다수가 수업 시간에 충격을 먹고 떠나시는 것도 같은 이유일 것이다. 자기가 회사에서 직, 간접적으로 배웠던 것과 차원이 다르게 느껴지는 데이터 모델링 이야기를 들었는데, 그걸 쉽게 그 자리에서 바로 이해하기는 매우 어려울 것이라고 생각한다. 박사 학위를 했다고 해도, 자기 학문에서 데이터 모델링하는 범위 밖으로 외연을 확장시킬 수 있는 능력을 갖춘 사람이 얼마나 있으며, 또 그런 사람들이 연구소 말고 대기업에 얼마나 가 있을 것이고, 대기업에 갔다면 열정을 갖고 그런 모델을 만들고 있을 확률은 또 얼마나 될까? 너무 비관적인가?

왜 실리콘 밸리에서 R이나 Python 같은 Script형 언어를 할 수 있는 걸 Data Scientist의 기본 스킬셋이라고 생각할까?

SAS나 SPSS로 못하는 작업, 그런 통계 패키지로 돌려보기에는 매우 귀찮고 어려운 작업들을 Script형 언어로는 쉽고, 빠르고, 더 체계적인 방식으로 처리할 수 있다는 사실을 알기 때문이다.

“우리가 쓴 논문용으로 Customization은 커녕, 기본 함수도 지원해주기 쉽지 않을 것 같다”

박사 시절, 거시경제학 논문 쓰던 친구들과 Bellman equation으로 거시 모델링해놓고 데이터 입력하면서 발생하는 문제들 (ex. Calibration)로 농담따먹기한 적이 있었는데, 어느 친구가 STATA*에도 이거 지원해주면 얼마나 편할까라고 우스갯소리를 하니, 다른 친구들이 “우리가 쓴 논문용으로 Customization은 커녕, 기본 Bellman 함수도 STATA에서 지원해주기 쉽지 않을 것 같다”는 식으로 반응했었다.

*STATA는 SAS, SPSS와 유사한 통계 패키지 프로그램이다. 주로 사회학, Softcore 경제학 연구자들이 이용한다.

R이나 Python 코드를 쓰기 때문에 Data Scientist가 아니라, Data Science를 하고 있기 때문에 Data Scientist다.

 

나가며 – 공돌이 Mind의 한계

그 친구의 불만을 식혀줄 방법은 뭐가 있을까?

회사 안에 정말 뛰어난 Data Science 모델링을 할 수 있는 사람이 최소한 한 명, 운이 좋다면 둘이 있어서 서로 경쟁 & 협조 하는 모습을 볼 수 있어야 그 친구가 새로운 세상이 있다는 것도 깨닫고, 더 노력하면 다른 성과를 얻을 수 있다는 희망도 갖게 될 것이다. 불행히도 한국에서 그런 내공을 갖추신 분들을 아직까지 만나진 못해서 딱히 어디로 이직해봐라는 말도 못 해주겠더라.

필자가 수업에서 0.0x% 리그와 1% 리그의 차이는 뭔가 “쌈박한” or “계산비용이 많이드는” 알고리즘에서 나오는 것이 아니라, 데이터를 어떻게 기발하게 쓰느냐에 달려있다고 설명해준다. 글로벌 Top Tier 회사들이 쓰는 모델이 Logistic regression이라는 논문 기억나시는가? 남들은 그냥 A가 1번, B가 2번, C가 3번 있었다는 단순한 데이터 값만 보는데, A와 B의 순서가 어떻게 되었는지, A, B, C 전체에서 출발점과 최종 도착점은 각각 어디였는지 같은 정보들이 훨씬 더 중요하고, 그런 값들을 입력 변수로 활용하는게 모델링을 위해서 데이터를 “전처리”하는 거다.

지금까지 한국와서 “개발자” or “공돌이”들을 만나면서 느낀 작은 결론은, 필자가 말하는 방식으로 데이터를 전처리하는 작업에 대한 강한 거부감이 공대 출신들 머리 속에 박혀 있다는 것이다. 그들은 언제나 자동화된 알고리즘으로, 그게 어렵다면 계산비용을 많이 추가해서라도 문제를 “자동적”으로 해결하려고하지, 인간의 적절한 판단을 활용해서 모델을 업그레이드 시키겠다는 생각을 안 하거나 못 하더라.

근데, 각각의 분과 학문이 몇 십년간 쌓아올린 지식의 집결체인 “모델”이라는 걸 그렇게 자동화된 알고리즘으로 다 찾아낼 수 없다. 니네가 의지하는 그 머신러닝이라는거도 그냥 통계학일 뿐이니까.

경제학과 교수들한테 경멸에 가까운 무시당하면서도 통계학 모르니까 “무작정” 모든 변수 다 집어넣어 놓고 R-squared 값 높은 조합만 찾아다니는 사회학자나, 그냥 자동화 알고리즘이 다 알아서 해 주겠지, 복잡한 통계학, 각 학문별 모델이란걸 알게 뭐야~ 라고 생각하는 개발자들 사이에 무슨 차이가 있나? 쓰는 언어가 English vs. Java 인 것 말고?

타겟 광고에 대한 엄청난 과장이 담긴 글을 하나 봤다. 사용자들이 어떤 페이지를 거쳐갔는지에 대한 정보를 바탕으로 어떤 상품에 관심이 있을 것이라고 추정하고, 맞춤형 타겟 광고를 하는 서비스에 이용자들이 굉장한 불쾌감을 느끼는 경우가 많단다. 저자의 의도인지는 모르겠지만 그런 광고에 대한 강한 거부감이 느껴지는 글이었다.

딱 저 알고리즘을 만들어서 Re-target 해주는 광고회사의 Senior Data Scientist 였고, 또 비슷한 모델을 더 업그레이드 시켜서 사업하겠다고 나선 “Data guy”인 필자의 관점을 한 마디로 요약하자면, 타겟 광고가 불편한게 아니라, 윗 블로그 글처럼 피상적인 이해만 가진 사람들의 불편한 시선들이 오히려 불편하다.

 

타겟 광고란?

미국에 Target이라는 대형 슈퍼마켓 체인점이 있다. 여기서 일하던 어느 통계학자가 구매 품목을 기준으로 구매자들을 구분하고, 그에 맞춰서 상품 광고를 보내는 알고리즘을 만들었다. 덕분에 임신한 10대 소녀의 구매 패턴이 바뀌는 걸 시스템이 자동으로 인식하고, 임신한 여성이 좋아할만한 상품을 담은 이메일을 여러차례 보냈다. 아마 K-Means로 유저들의 그룹을 구분하고, 이메일에 대한 반응률을 바탕으로 그룹이 바뀐 것을 확인했을 것이다. 이 스토리가 Fox News에까지 보도될만큼 해프닝이 된 이유는, 부모들도 몰랐던 소녀의 임신을 Target이 먼저 알아차렸다는 사실이 데이터 사이언스를 모르는 사람에게는 적잖은 충격이었기 때문일 것이다.

(그나저나 저런 패턴 인식 알고리즘을 통계학 출신이 만든다는 글들이 한국어 블로그로도 돌아다니는데 정작 “머신러닝은 개발자가 하는거 아닌가요?”라고 질문하는 사람들이 왜 이렇게 많은지… “머신러닝 개발자 과정”이라니.. 머신러닝은 개발자/기획자를 나눌게 아니라 통계학 관련 전공자와 비 전공자를 나눠서 교육해야하는 과목이다. 에효…)

경제학 + 통계학 + 시뮬레이션으로 교육과정을 거친 필자의 눈에 Target의 통계학자가 했을법한 생각은 지극히 상식적인 패턴이다. 현시선호 (Revealed preference)라는 미시경제학 용어는 입으로 말하는 것보다 직접 행동으로 옮긴 내용이 더 명확하게 개개인의 선호를 보여준다는 개념인데, 괜한 설문조사로 어떤 상품을 좋아하냐고 묻지말고, 어떤 상품을 구매하고 있는지와 어떤 상품 광고에 더 민감하게 반응하는지를 기준으로 그 유저의 선호를 파악하는 방식이 딱 여기에 해당된다.

여러 상품에 대한 구매 패턴을 놓고, K-Means를 이용해서 특정 상품군을 구매하는 유저들을 같은 그룹으로 묶고, 그런 그룹핑이 제대로 된 건지 이메일 광고에 대한 반응률로 재 확인하는 작업은 통계학 모델링 + Feedback을 이용한 재확인 작업에 다름없다. 저런 방식의 타겟 서비스를 출시하기 전에 회사 내부에 축적된 구매 데이터를 이용해서 시기별, 지역별 적용 가능성도 확인했을 것이고, 더미 데이터를 생성해서 시뮬레이션으로 확인해보는 작업도 거쳤을 것이다.

그 10대 소녀는 임산부가 되고나서 10대 소녀들이 자주 구매하는 품목들 대신 임산부가 구매하는 품목으로 바스켓의 구성 상품이 바뀌었을 것이고, Target의 시스템에서 유저 “가”가 그룹 A에서 그룹 B로 이동한 것 같다는 Alert이 떴을 것이다. 확인차 보낸 이메일 광고에 대한 반응을 보고 유저를 잘못 인식하거나 Identity fake가 아니라 정말 한 명의 유저가 다른 그룹으로 이동했다는 것을 확인했고, 몇 차례 추가적인 이메일 광고 반응을 바탕으로 Target에서는 그 소녀가 임신했다는 확신을 갖게 되었을 것이라고 생각한다.

 

타겟 광고에 대한 반감

저 위에 언급한 블로그 글을 보면, 내가 알려주지 않은 개인 정보를 남들이 알아냈다는 사실이 두렵단다. 필자의 눈에 타겟팅 작업은 일종의 탐정 놀이 같은건데, 범죄자 입장에서 탐정이 증거를 모아 “니가 범인이야!”라고 외치면 좀 섬뜩해질만하다는 생각이 들긴 한다.

여기서 하나 짚고 넘어가고 싶은 사실은, Target이 그 소녀에게 임신 테스트기를 주고, 그 결과를 전송받아서 임신 사실을 아는 것이 아니라, 단순하게 그 소녀의 구매 패턴 (or 행동 패턴)을 보고 상태 변화를 알아냈다는 사실이다.

그 소녀가 Target 매장에서 구매한 상품에 대한 데이터는 그녀만의 개인 정보일까? 아니면 상품 진열을 최적화해서 하나라도 더 팔고 싶은 Target 과 공유해야하는 정보일까? 만약에 공유 정보라면, Target은 그녀의 행동 패턴을 바탕으로 상태 변화를 알아낼 수 있는 알고리즘을 만들어내면 사생활 침해가 되는걸까? 아니면 회사 영업 이익 극대화를 위한 자본의 논리로 봐야할까?

지난 몇 년간 타겟 광고의 진화 양상을 보면, 처음에는 이미 봤던 상품들을 다시 보여주는 수준에 그쳤다가, 안 봤지만 찾고 있을 것 같은 상품을 추천하고, 글을 읽고 있는 페이지에 나오는 핵심 단어와 매칭되는 광고 상품을 보여주고, 더 나아가서는 SNS의 친구들이 샀던 상품을 추천하는 서비스까지 출시되어 있다.

한국처럼 모든 유저 행동 데이터는 개인정보랍시고 철저하게 틀어막는 나라에서는 이상한 나라의 엘리스처럼 들릴지 모르겠지만, 사실 요즘 나오는 타겟 광고 상품들의 대부분은 “탐정 놀이”로 패턴을 찾아내는 서비스지, 그 유저의 주민등록번호 같은 개인 정보를 이용하질 않는다. Target 매장에서 구매자의 상품 목록도 못 갖고 있고, 그 목록에 맞춰서 광고도 못하게 하면, 개인정보 보호를 명목으로 Target의 영업 자유를 침해하는 꼴이 된다. 정작 보호해야하는 개인정보인 주민등록번호나 주소 같은건 쓰지도 않는데.

 

타겟 광고에 대한 공감

온라인 쇼핑몰을 이용할 때, 내가 찾는 상품의 정확한 이름을 모르면 검색이 질질 늘어진다. 비슷한 용어, 비슷한 기능에 대한 검색어를 몇 번이나 넣으면서 Trial-and-error를 거듭하다가 때로는 못 찾고 포기할 때도 있고, 다음에 찾아야지라고 생각하고 잊어버릴 때도 있고, 또 운 좋게 비슷한 용어가 여럿 들어간 상품 제목을 보고 찾던 단어를 발견하는 경우도 있다.

좀 더 스케일을 낮추면, 비슷한 디자인의 옷들을 보다가 딱 마음에 드는 옷이 안 나타날 때, 화면 하단이나 양쪽 여백에 추천 상품 목록을 보고, “이게 더 좋은거 같은데…?”라는 생각에 클릭을 하는 경우도 종종 있다. 옷 매장에 가서 색상과 디자인을 정확하게 골라주는 도우미들 서비스와 이런 추천 알고리즘이 뭐가 다를까?

구매 혹은 금전 지불이라는 행동 이전에 필수적으로 거치는 작업이 “탐색” or “정보 수집”이다. 경제학에서는 “검색 비용 (Searching Cost)”라고 한다. 타겟 광고에 대한 반응률을 보면, 검색 비용을 줄여주는 광고에는 민감도가 높지만, 단순하게 노출 패턴을 다양화하는 광고에는 유저들의 거부감이 숫자로 나타난다. 옷 매장에서 아무 옷이나 다 잘 어울린다고 하는 도우미의 말 보다, 체형을 보고 적절한 옷을 추천해주는 도우미의 말에 구매자들이 더 신뢰를 보이는 경우와 크게 다르지 않을 것이다.

 

나가며

필드에 있는 사람이 정부 정책에 불평을 늘어놓는 건 너무 일상적인 일이라 항상 자제하려고 하지만, 타겟 광고에 대한 부분 만큼은 한 마디 지적질을 해보고 싶다. 개인정보 보호법의 원래 목표는 남북 분단과 간첩 색출이라는 민족사적인 아픔 때문에 만들어낸 주민등록번호라는 Super Mega Ultra 핵심적인 개인 정보를 보호하는 것이다. 그 사람의 구매 패턴 정보가 왜 그렇게까지 보호해야하는 개인 정보인가? 그렇게 빅데이터 생산은 꽁꽁 묶어놓은 상태에서 머신러닝 산업을 지원하고 4차 산업혁명을 주도하는 선진국이 되겠다니? 총칼을 주기는 커녕 몸을 꽁꽁 묶어놓고 레이저 건을 들고 있는 적군과 전투에 나가라고 내모는 꼴이다.

주변에 있는 스타트업 분들 중에는 저런 이유 때문에 법인 자체를 미국에 설립해버리는 경우가 은근 있다. 한국이 말도 안 되는 억지 규제가 너무 심하니, 외국 회사가 외국에 서버를 두고 외국에서 합법적으로 활용할 수 있는 기술을 한국 시장에 “적용”만 하도록 하면 많은 억지 규제들에서 회피할 수 있단다. 빅데이터가 뭔지도 모르고 입에만 “빅”을 올리거나, 그냥 용량만 많은 데이터인 줄 아는 사람들이 정책을 결정하고 있고, 그 사람들이 복지부동하겠다고 조금만 모르는 내용 나오면 다짜고짜 “안 된다”고 딱 자르는데, 저런 통계 모델링 할 수 있는 인재가 뭐하러 한국에 법인 세우고 복지부동 공무원들과 고생하면서 싸울까?

 

경제학에는 “매몰비용 (Sunk Cost)”라는 개념이 있다. 고가의 영화 티켓을 끊고 들어갔는데, 정작 영화가 너무 재미없다면? 돈이 아까워서 영화관에 죽치고 앉아 있는 것보다, 맘을 비우고 나와서 다른 재밌는 활동을 찾는편이 더 나음에도 불구하고, 사람들이 “본전”생각이 나서 꾹 참고 있는 상황을 설명하는데 가장 적합한 개념이 아닐까 싶다.

광고 비용은 경제학에서 말하는 대표적인 매몰비용이다. 중간에 중단하고 원금 회수가 불가능하기 때문이다. 원금을 회수하는 유일한 경우는 상품 홍보가 되어서 상품이 팔릴 때 뿐이다. 그럼 효용은 있나? 사용자에게 상품을 홍보하는데 활용되지만, 그래서 “사고 싶다”는 욕구가 들도록 만들지만, 정작 그 상품의 가치를 제대로 누리는데는 큰 도움이 안 된다. 광고주 입장에서는 투자(?) 비용이 오직 홍보 효과만 있고, 정작 상품이 팔리지 않으면 그 비용을 회수할 수 있는 방법이 없다. 뼛속까지 경제학도인 필자는 마케팅이란 그 홍보 효과를 얻기 위해서 단단한 논리로 모델을 만드는게 아니라, 사람들을 유혹하는 몇 가지 캐치 프레이즈와 화려한 시각디자인이 중심인, 말 그대로 피상적인 인간을 유혹하는 피상적인 비지니스라고 생각했었다. 진중하고 무거운 인간인 척하는 필자에게 어지간한 일회성 광고가 먹힐리 없다. 이런 사고 방식을 갖고 대학 시절부터 마케팅이라는 전공을 폄하, 무시했다. (얼치기 경제학도의 어줍잖은 아집과 편견임을 인정한다 ㅋㅋ)

무시할 수 있었던 또 다른 (더 어줍잖은) 근거는 마케팅이라는 대학 전공이 기술적인 말장난에 불과해 보였기 때문이다. 학부 2학년 시절에 딱 한 시간 친구따라 청강하러 갔던 경영학과 마케팅 수업에서 “베블런 효과 (Veblen goods – 과시를 위한 사치재 수요)”를 자기들 마음대로 다른 이름으로 바꿔서 고가 제품에 대한 수요가 많다는 “썰”에 “이론”이라는 단어를 붙이는 걸 보고,” 저게 무슨 대학 전공 수업이냐, 교양 강좌지.”라고 생각한 이후로, 십수년동안 마케팅이라는 단어에 대한 매우 심한 편견에 빠져있었다. (경제과 출신이 경영”학(?)”과 “디스”할 때 흔히 쓰는 레퍼토리다 ㅋㅋ)

 

1. 광고의 효과 – “Waste of Money”

박사 학위 중에 연구실 옆자리에 있던 마케팅 전공 친구를 처음 만났을 때도, “그냥 ‘썰’ 잘 푸는 전공”일 것이라고 지레 짐작하고 “무시”하고 있었다. (대신 수학, 물리학과 출신 앞에서는 “쫀다”) 그러던 어느날, 2개 분포 함수가 서로 correlation이 있는 경우를 도식화하기 위해서 Copula 라는 걸 그리고 있었는데 (필자의 박사 연구 주제는 여러 자산의 가격이 동시에 폭락할 때 시장에 spiral effect를 준다는 아이디어에서 출발한다), 필자가 쓰고 있던 코드보다 더 좋은 코드를 쉐어해주는걸 보고 적잖이 당황했었다. 이 친구는 알리바바의 유저 데이터를 이용해서 이른바 “퀀트 마케팅 (Quant Marketing)”을 하고 있었는데, 필자와 비슷한 수학과 통계학을 단지 “다른 주제”에 적용하고 있다는 걸 나중에서야 알게되고 그동안 “무시”했던걸 사과한다고 고개를 숙였던 적이 있다.

수학적인 깊이에 대한 “무시”가 없어졌기는 했지만, 여전히 광고의 효과에 대해서는 비관적이었다. 당장 온라인에서 보는 배너 광고에 필자가 클릭한 기억이 없고, 평소에 누군가가 나눠주는 유인물에 관심을 가진적이 한번이라도 있었나 생각해보니 역시 긍정적인 답이 안 나온다. 선거철에 집에 유인물이 도착하면, 우편함을 나오자마자 거의 바로 쓰레기 통에 직행한다. (민주 시민의 자질이 부족한 것 같다…) 어린 시절에는 경제 신문을 읽으며 “트렌드”를 따라간다고 생각했는데, 요즘은 그 모든 기사가 “광고”라는 의도를 숨긴채 그럴듯하게 포장된 활자의 전달이라는 생각이 들어서 읽기가 거북하다. 필자가 좀 더 비딱한 사람이라는 걸 인정하지만, 그렇다고 “너 말고 다른 분들은 광고에 민감하게 반응할꺼”라고 주장하실 수 있는 분도 없을 것이다.

실제로 대부분의 광고는 “Waste of Money”다. 국내에서 제일 비싼 온라인 광고 지면도 클릭율 (Click Through Rate, CTR)이 0.1% 남짓이고, CTR이 높은 광고들은 인간의 육체적인 욕구를 자극하는 광고들이 대부분이다. 광고는 Right Time, Right Place, Right People 에게 해야한다는 이야기들을 많이 듣는데, 그걸 어떻게 알 수 있을까? 고속도로 변에 달린 대형 옥외 광고판에 있던 어느 광고는 정말 Right, Right, Right일까? 아니면 Wrong, Wrong, Wrong 일까?

 

 

2. 광고의 효과 – How not to “Waste Money”?

요즘들어 “빅데이터”를 이용해 Right People을 찾아낸다는 광고 매체들이 많이 생겼다. 위는 며칠간 필자가 그런 광고에 돈을 쓰고 난 다음에 Google Analytics로 정리한 유저 스탯이다. 65%에 육박하는 유저들이 단순하게 Google 검색을 해서 필자의 페이지에 들어왔고, 16%의 유저들은 그냥 필자의 웹페이지를 검색창에 쳐서 들어왔다. 국내 포털 1위 업체인 Naver에서 검색으로 유입된 유저의 비율은 4%에 불과하고, 필자의 블로그 글 링크를 공유한 (의도치 않은) 바이럴 마케팅을 제외하면 실제로 Right People을 찾아낸다는 광고 채널들을 통해서 들어온 유저 숫자는 10% 남짓이다.

평소에 광고없이 Organic하게 유저 숫자가 증가하는 비중을 고려해보면, referrer 채널들 (4번 ~ 9번)이 그렇게 효과적으로 보이질 않는다. 10% 의 추가 유저 유입을 위해서 필자가 광고비에 쓴 돈을 생각해보면, 그냥 Google 검색시 상단에 배치되도록 블로그나 열심히 쓰는게 더 낫다는 지극히 평범한 결론에 이른다.

필자의 블로그가 돈벌이용으로 만들어진 페이지가 아니고, 광고에 쓰인 문구나 배너가 전문 디자이너가 만든 화려한 시각디자인이 없었다는 이유로 광고 효과가 떨어진다고 주장한다면 달리 할 말은 없지만, 저 위의 유저 스탯을 보고 난 다음에 광고에 선뜻 돈을 투자하겠다고 나서는 광고주를 찾기는 쉽지 않을 것이다.

실제로 리타게팅(Re-targeting)이라는 광고 비지니스에서 데이터 사이언티스트로 있으면서 필자가 본 내용도 크게 다르지 않다. 리타게팅이라는게 유저가 봤던 상품과 유사한 상품 중 유저가 찾아다닐만한 상품을 보여줘서 “검색 비용 (Searching cost)”를 줄여주는 광고 방식인데, 그렇게 정보 제공 효과가 있는 광고에는 반응하지만, 일반적인 광고는 거의 지면의 낭비처럼 반응한다. 국내외 대형 온라인 서비스들에서 제공하는 타게팅 광고가 Right People을 찾아내는 작업을 하고 있지만, 생각보다 큰 도움이 안 된다는 걸 저 위의 도표가 웅변적으로 말해주고 있다.

 

3. 타게팅

(구매 직전 검색 비중이 높다는 걸 보여주는 시뮬레이션)

유저들 구매 패턴을 보면서 참 신기한 게 하나 있었는데, 구매 직전에 대형 검색 서비스를 거치는 비율이 어마어마하게 높더라. 필자가 온라인 쇼핑몰에서 크리스마스 선물을 구매하려다 같은 작업을 해보니 어느 쇼핑몰에서 최저가로 구매할 수 있는지 가르쳐 주던데, 이걸보고나니 그냥 가격 싸게 책정하는게 제일 좋은 마케팅이라는 생각을 또 하게 됐다.

미시경제학에서 말하는 Bertrand Competition (가격 경쟁 모델)을 하고 있는 시장에서는 퀄리티 차이가 크게 없으니 그냥 가격을 최저로 낮추는게 가장 논리적이다. 물론 유저 유입을 위한 기본적인 마케팅은 해야겠지만, 자기가 판매하는 상품이 동질적이라면 Right, Right, Right을 찾기 위해서 광고비용을 쏟을게 아니라, 가격을 더 낮추기 위해서 노력해야한다는 뜻이다.

진짜 광고가 필요한 곳은 품질에 차이가 나고, 그 차이를 구매자가 정확하게 인지할 수 있도록 추가적인 정보를 제공해줘야하는 산업들이다. 필자가 런던에서 경제학 공부하던 시절 은사인 John Sutton 교수님의 품질 경쟁 (Quality Competition) 모델을 데이터로 검증하는 논문들을 보면, 품질 경쟁을 잡아내는 첫번째 변수가 R&D 비용이고, 두번째 변수가 가격의 다양성 (Heterogeneity), 마지막 변수가 홍보 비용이다. 타사 상품 카피가 일상인 우리나라 실정과 마지막 변수가 얼마나 맞을지는 모르겠지만, 섹션 2에서 말한대로, 정보 제공 효과가 있는 광고에만 유저들이 반응한다는 걸 알면, 고품질을 제대로 홍보하려는 시도는 자기 상품의 품질이 다른 경쟁자들과 눈에 띄는 차이가 있을때만 지불하게 되지 않을까?

판매하는 상품이 이질적이고, 구매자들도 이질적인 상황에서, 서로가 서로의 검색 비용을 줄여줄 수 있도록 빅데이터를 활용하는게 “타게팅 광고”를 제대로 활용하는 방법, “How not to waste money”가 아닐까?

 

 

나가며

얼마 전, 모 대기업에 데이터 사이언스 강의를 갔더니 필자더러 “왜 광고시장에 손을 대고 있냐?”고 질문하시더라. 아마 그 분은 개발자니까 공대 관점에서 인공지능 로봇 같은 걸 만드는데 필자의 지식을 활용하는게 더 낫지않냐는 관점으로 그 질문을 하셨을 것이다. 그런데, 필자가 공학도가 아니어서 그런지는 몰라도 단순한 자동화 기기 수준의 인공지능에는 전혀 관심이 없고, 그런거 만들어놓고 AI라고 타이틀 달아서 파는 상품 광고를 보면 비웃음이 좀 나온다. (죄송…) 좀 지적인 도전이 될만한 주제가 스타크래프트 인공지능 같은 내용일텐데, 모델이 작동하도록 데이터를 재구조화해야하는 부분에서 겪어야하는 도전의 종류가 뭔가 기계적이라는 느낌, 지적이지 않다는 느낌(?)이 들어서 별 흥미가 안 생긴다.

통계학과 실제 데이터를 다루면서 머신러닝을 바라보는 필자 입장에서는 아무래도 널린 데이터에서 남들이 못하고 있는 걸 만들어 내는데에 더 큰 매력을 느끼는 것 같다. 지금 AI라고 불리는 영역에서 다루는 데이터(ex. 음성 데이터, 센서 인식 데이터, 단순 시뮬레이션 데이터 등등)는 Noise가 거의 없는 꽤나 정제된 데이터고 (Low Noise), 이걸 어떻게 구조화시키느냐가 인공지능 서비스의 질을 좌우하는데 큰 영향을 미친다. 반면 온라인 유저 데이터같은 인간의 행동을 다루는 데이터에는 온갖 잡다한 Noise가 숨어있다 (High Noise). 이 영역에는 필자가 데이터를 재구조화할 때도 기계적인 도전이 아니라 지적인 도전이 자리잡고 있고, 당연히 모델을 만들 때도 경제학과 수리통계학적인 지식이 곳곳에서 활용된다. (딱 “내 스타일”이다 ㅋㅋ)

그 대기업 강의에서 던진 Shapley Value 라는 개념과 활용 방식에 부정적인 반응을 보이던 개발자 그룹은 아마도 “기계적”인 알고리즘이 밥벌이라서 그런 스토리에 열광하는 스타일이신 것 같은데, 그러다보니 “왜 광고에 손을 대느냐?”는 질문이 나올 수 밖에 없다는 사실이 이해는 된다. 필자가 이 온라인 광고 비지니스에 관심을 가지는 (아마도 거의 유일한) 이유는 “진짜 빅데이터”가 있는 몇 안 되는 시장이기 때문이라는 걸, 그래서 필자가 알고 있는 지식들을 “써먹을 수 있는” 시장이기 때문이라는 걸 생각해보면, 그 개발자 분들이나 필자가 무슨 산업에 있느냐가 아니라, 어떤 관점에서 머신러닝과 빅데이터를 바라보느냐가 다르기 때문이라면 논리적인 설명이 될려나?

(써놓고보니 “공부하는데 들어간 시간이 아까워서…”라는, Sunk Cost 외면하는 “변명”인 것 같다 ㅋㅋ)