Blog

DCO ( Dynamic Creative Optimization ) + LLM

직접 만든 LLM 버전 DCO 화면. ‘수분 진정 토너’ 상품 정보를 입력하자 소구점·컬러·CTA가 제각각인 배너 8장이 한 화면에 생성됐다.
오 분도 안 걸렸다. 입에서 나온 말은 한마디였다. 역시.

상품 하나를 골랐다. 화면에 배너가 좌르륵 떴다. 배경 패턴이 바뀌고, 상품이 자리를 옮기고, 컬러가 갈라지고, CTA가 다양한 문장으로 구성 되었다. 루반이었다. 광군절을 앞둔 중국의 백엔드와 AI운영툴 위에서 배너가 끝도 없이 생성되었다.

개발자 사이트에서 디자이너의 디지타이저를 연동해 학습 데이터를 받는다는 설명을 봤다. 이건 쉽게 따라가지 못한다는 생각을 했다.

luban — 알리바바의 배너 자동 생성

우리가 쥔 건 ImageMagick이었다. 한 땀씩 깎았다. 상품 사진에서 광고 문구를 떼고, 누끼를 땄다. 고급 누끼는 디자이너에게 넘어갔다. 한 장에 오천 원. 배너를 수천만 개 찍어야 하는데, 한 장에 오천 원. 계산이 맞지 않았다. 데이터는 이미 오염돼 있었다. 광고 문구가 박힌 상품 이미지, 한 장에 여럿 들어찬 상품. 깔끔한 이미지가 고객의 선택을 쉽게 만든다는 가설은 분명한데, 함부로 이미지를 손대면 정책에 걸렸다. 정책부터 기술까지 쉬운 게 하나도 없었다.

그 무렵의 우리는 회의실에 모였다. 해야 할 일을, 효율적인 일을 하는데 왜 이렇게 벽이 많은가. 그런 말을 주고받으며 서로 등을 떠밀었다. 끝내는 시스템이 돌아가기 시작했다. 어셋을 전수검수해 올리고, 프로모션 기간을 입력하면, 정해진 지면의 슬롯에 상품과 이미지가 알아서 전시되었다. 조회수, 클릭수, 구매수, 페르소나(고객데모그래피)까지 붙었다. 다들 그 화면을 보며 말했다. 우리가 해냈구나. 10년 가까이 지난 이후로 현재까지도 이정도의 플랫폼을 만들어 낸적이 없었던것 같다.

한 번은 한국에 있던 글로벌 프로모션 운영자 자리에 직접 앉았다. 정말 돌아가는지 보고 싶었다. 운영자는 상품을 등록하고, 배너를 생성하고, 프로모션을 만들었다. 그게 전부였다. 세 번의 동작. 그 뒤로 배너가 줄지어 떴다. 부러웠다. 우리 시스템은 데이터 추출을 매번 메일로 요청해야 했고, 이미지는 손대도 품질이 오르지 않았다. 자리를 뜨며 한 생각은 하나였다. 이건 꼭 만들어내야 겠다.

대시보드나 운영툴에 조회수와 클릭수가 있다. 그런데 이 지표를 해석하는것은 분석가나 현업의 도움이 항상 필요했다. 물론, 아주 단순한 지표는 오래된 감으로도 해석을 하고 있었다.

리스트의 상단은 누적이 정했다. 누적된 조회수, 클릭수, 판매수를 사칙연산한 오래된 공식. 아무도 손대지 않은 채 그대로였다. 누적이라는 한 단어 때문에, 지금 막 뜨는 상품도 위로 올라오지 못했다. 광고 상품이 첫 페이지부터 3페이지, 10페이지까지 덮었다. 그 아래 일반 상품의 정렬은 의미가 없었다. KPI는 하위 정의가 틀린 채로 꽤 오래 본사로 나가고 있었다. 우리가 먼저 찾았다. 원인까지 검증했다. 조직장은 어려운 판단을 내렸다. 빨리 바로잡고 보고하자.

변화가 중요한 자리에는 분석 과제를 만들었다. 주제마다 분석가를 붙였다. 한 사람이 한두 주를 썼다. 광고 상품이 첫 페이지 상단에 있으면 고객 경험을 해친다는 가설이 있었다. 분석은 그 가설을 뒤집었다. 결론은 나왔다. 그런데 왜 해치지 않는지, 그 속사정은 흐릿한 채로 넘어갔다. 같은 숫자를 두고 광고는 광고대로, 마케팅은 마케팅대로, 상품은 상품대로 각자의 감으로 갈라졌다. '애플'을 검색하면 사과가 나와야 한다는 사람도 있었다.

룰베이스에서 AIML 모델로 처음 넘어가던 테스트가 떠오른다. 모델이 너무 잘게 쪼갰다. 타게팅 조건이 과하게 걸려 모수가 쪼그라들었다. 왜 그렇게 잘랐는지 모델에게 물을 방법이 없었다. 결과를 무덤덤하게 받아들이고 내 생각을 설명했다. 체념은 아니었다. 최초 테스트였으니까. 계속 돌리면 된다고 봤다.

지금, 같은 문제를 다시 펼쳤다. 구직을 하며 지난 일들을 회고하다가, 이걸 다시 풀어볼 만한가 가늠해보고 싶었다. 루반과 DCO를 LLM에게 검색시키고, 내 생각을 넘겼다. 상품과 카테고리와 몇 줄의 설명을 줬다. 오 분도 채 지나지 않아 배너가 여러 장 떴다. 입에서 나온 말은 한마디였다. 역시.

배너가 뜬 다음이 달랐다. 예전엔 그 뒤가 진짜 일이었다. 이번엔 LLM이 그 자리까지 말로 풀었다. 분석가가 하던 일, 마케터가 하던 일, 광고가 하던 일. 화장품 풀에서 '즉각 진정'을 핵심 키워드로 집어냈다. 소구점, 컬러, CTA 가운데 승부를 가르는 축을 먼저 골라 비교 지표로 정리했다. 어떤 관점으로 쪼개 볼지를 모델이 먼저 정했다.

마케터가 매일 보던 툴을 일렉트론으로 감쌌다. 주기적으로 스크린샷을 떠 LLM에게 넘겼다. 화면에서는 배너 여덟 개가 실시간으로 고객에게 선택받고 있었다. 지표가 계속 바뀌고, 효율이 떨어진 배너는 자동으로 멈췄다. 그 옆에 한 줄이 떴다. 아직 승자 확정 전이지만 '즉각 진정' 소구가 선두입니다. 예전 같으면 프로모션이 끝난 뒤에야 데이터를 뽑아 분석 과제로 돌렸을 한 줄이었다.

운영·최적화 화면의 결과 해석 패널. LLM이 배너 게시 결과를 읽고 ‘즉각 진정’ 소구가 선두라고 정리했다. 소구점·컬러·CTA 축별 비교와 다음 세대 배너 제안까지 한 줄로 붙어 있다.
배너가 뜬 다음, LLM이 지표를 읽고 ‘왜’를 말로 풀었다.

막혀 있던 '왜'가 풀렸다. 진단형이 장바구니는 가장 잘 채우지만, 실제 구매와 보상은 혜택형이 이긴다. CTR이나 장바구니율만 보는 단순 최적화는 진단형이라는 오답을 낸다. 구매까지 가중해야 혜택형이라는 정답이 나온다. 숫자 너머의 까닭이 읽혔다. 한두 주 분석하고 회의에서 설명해야 겨우 닿던 통찰이었다.

그 시절 함께 플랫폼을 만들던 동료가 지금 커머스에서 VP가 됐다. 내가 먼저 이 이야기를 건넸고, 스크린샷을 보여줬다. DCO를 다시 LLM 버전으로 만들어봤는데, 정말 안 되는 게 없습니다. 잠깐 DCO를 다시 만들고 싶어 하는 눈치였다.

다시 그때로 돌아가도 결과는 같을 것이다. 벽은 기술이 아니었다. 하던 대로 하려는 관성, 변화에 대한 두려움이었다. 한 마케팅 수장은 변화보다 관습을 증명하려 했다. 미팅을 요청해도 한 달째 답이 없었다. 변화의 아이콘이라는 별명이 칭찬인지 가시인지 알 수 없던 때도 있었다. 밀어붙이지 않았다. 개선된 걸 계속 보고하며 기다렸다. 할 일이 많아 그 시간을 통과할 수 있었다. 기다리면 되었다.

이제 빈 시간은 사람만 할 수 있는 일로 옮겨가면 된다. 사람이 적어 사무실 일에 묶여 외부 영업을 나가지 못하던 그 조직처럼, 시간이 없어 못 하던 일이 있다. 할것인지는 그들의 판단이겠지만...