14화: 알고리즘 업데이트
공지는 항상 나쁜 타이밍에 왔다.
이준이 노트북을 열었다. 뮤직탑 공지 페이지. '서비스 개선 안내'라는 제목이 상단에 올라와 있었다. 어제 올라온 글이었다. 팬사인회 뒤처리와 운영 보고 정리에 밤을 써서 확인이 하루 늦었다. D-25. 하루가 아깝다는 걸 이준은 느꼈다. 카운트다운 안에서의 하루는 무게가 다르다. 28분의 1이 27분의 1이 되면 비율이 바뀐다. 비율이 바뀌면 체감도 바뀐다.
스크롤을 내렸다. '스트리밍 집계 기준 변경 안내'. 본문은 길었다. 플랫폼 특유의 마케팅 문장과 기술 용어가 뒤섞여 있었다. '더 나은 음악 경험을 위하여'로 시작하는 문단. '공정한 집계를 위한 시스템 고도화'라는 문단. 이준은 수식어를 건너뛰고 핵심 두 줄을 찾았다.
고유 리스너 가중치: 기존 대비 1.5배 상향. 반복 재생 가중치: 기존 대비 0.7배 하향.
이준은 그 두 줄을 세 번 읽었다. 한 번은 확인. 한 번은 계산. 한 번은 전략 재설계의 시작.
'총공 구조가 무력화됐다.'
아크1에서 설계한 총공은 팬이 반복 재생하는 구조에 일부 의존했다. 같은 팬이 열 번 들으면 열 번의 효과가 있었다. 이제는 아니었다. 반복 재생 가중치가 30% 줄었다. 10회 재생 × 0.7 = 7회 효과. 3회분이 증발한다. 전체 총공 효과로 환산하면 약 35% 손실. 이준의 스프레드시트에서 35%라는 숫자는 '전략 수정 필요'를 뜻하는 임계값이었다. 20% 이하면 조정. 20~35%면 수정. 35% 이상이면 재설계. 지금은 재설계.
반대로 새로운 리스너 한 명의 가중치는 50% 올랐다. 신규 1명 = 기존 1.5명 효과. '새로운 한 명'의 가치가 올라갔다. 아크1에서 이준이 말한 원칙---'같은 팬 백 번이 아니라, 새로운 한 명 한 번'---이 플랫폼 차원에서 강제됐다. 알고리즘이 이준의 원칙을 수치로 밀어주고 있었다. 문제는 이준의 기존 전략이 그 원칙을 충분히 반영하지 못했다는 점이었다.
이준은 정우에게 메시지를 보냈다. '뮤직탑 알고리즘 변경. 기존 시뮬레이션 무효. 재계산 필요. 고유 리스너 ×1.5, 반복 ×0.7 적용해서 돌려줘.'
정우의 답장이 20초 만에 왔다. '확인했어요. 30분 안에 돌려볼게요.'
이준은 스프레드시트를 열었다. 기존 전략 시트의 수식을 수정하기 시작했다. 반복 재생 관련 행의 가중치를 1.0에서 0.7로 변경. 합계가 움직였다. 차트 반영 예측치가 줄었다. 빨간색 셀이 늘어났다. 42% 감소. 정우의 재계산 결과가 오기 전에 이준은 이미 같은 숫자에 도달해 있었다.
그 숫자를 보면서 이준은 다른 질문을 했다. '왜 지금 바꿨을까.' 알고리즘 변경은 플랫폼의 분기별 사업 결정이다. 특정 아티스트를 겨냥한 것이 아닐 수 있다. 하지만 타이밍이 맞았다. 노바가 차트 100위권에 진입한 직후. 팬 총공이 커뮤니티에서 화제가 된 직후. 6화에서 뮤직탑이 경고 메시지를 보낸 직후. 우연이 세 번 겹치면 패턴이라고 이준은 생각했다.
'우연인지 의도인지는 증명할 수 없다. 하지만 결과는 같다.'
연습실 문이 열렸다. 서지환이 들어왔다. 손에 물병. 얼굴에 땀. 아침 보컬 트레이닝 후. 목을 풀면서 의자를 끌어다 앉았다. 이준의 노트북 화면을 봤다. 빨간색 셀이 늘어난 걸 봤다. 서지환은 숫자를 잘 읽지 못했지만, 빨간색이 좋은 색이 아니라는 건 알았다.
"형, 뮤직탑 공지 봤어?"
"봤어."
"그러면 총공 효과가 줄어드는 거잖아."
이준은 고개를 끄덕였다.
"형." 서지환이 말했다. 목소리가 12화 때의 날카로움과 달랐다. 부드러웠다. 공격이 아니라 제안. "그러니까 음악이 먼저라고 했잖아."
이준이 서지환을 봤다.
"좋은 곡이면 사람이 와. 새로운 사람이." 서지환이 물병 뚜껑을 돌렸다. 생각할 때 손에 뭔가를 만지는 습관. "알고리즘이 새로운 리스너를 원한다면, 새로운 리스너가 들으러 올 곡을 만들어야 하는 거 아니야?"
이준은 그 말을 들었다. 반박할 숫자를 찾았다. 찾지 못했다. 서지환의 논리가 알고리즘 변경의 방향과 일치했기 때문이다. 서지환이 숫자 없이 도달한 결론에, 이준이 스프레드시트로 도달했다. 같은 곳이었다. 경로가 달랐을 뿐.
"알고리즘이 바뀌면 전략도 바뀌어야 해." 이준이 말했다. "근데 이번엔... 네 말이 맞을 수도 있어."
서지환이 이준을 봤다. 2초. 이준에게서 '네 말이 맞다'에 가까운 문장을 들은 건 처음이었을 것이다. 서지환의 입이 열렸다가 닫혔다. 고개를 끄덕였다. 그것으로 충분했다. 어떤 대화는 인정 한마디로 관계의 방향을 바꾼다. 12화의 충돌이 14화의 인정으로 이어졌다.
"오세혁 씨한테 곡 의뢰 넣은 거 알지?" 이준이 말했다.
"어." 서지환이 고개를 끄덕였다. "후보 언제 올라와?"
"이번 주 안이야. 올라오면 같이 들어."
서지환이 물병 뚜껑을 닫았다. 멈추지 않고 닫았다. 평소에는 열었다 닫았다를 반복했다. 한 번에 닫은 건 마음이 정리됐다는 뜻이었다. 이준은 그 패턴을 읽었다.
"형." 서지환이 일어서면서 말했다. "나 녹음실 가서 워밍업 해놓을게. 곡 오면 바로 불러볼 수 있게."
"아직 곡도 안 왔는데."
"올 거잖아." 서지환이 문을 열었다. "준비해놓는 거야."
문이 닫혔다. 이준은 1초 동안 닫힌 문을 봤다. 서지환은 데이터로 준비하지 않았다. 성대로 준비했다. 방식이 다르지만 방향이 같았다. 이 팀에서 방향이 같다는 건, 경로의 차이를 허용할 수 있다는 뜻이었다.
정우에게서 재계산 결과가 왔다.
'알고리즘 변경 적용 시, 기존 총공 구조 대비 차트 반영률 42% 감소. 신규 유입 1명당 효과 기존 대비 1.48배. 결론: 확산 전략 비중 상향 필수.'
정우가 연습실로 들어왔다. 노트북을 펼치면서 앉았다. "메시지로 보내긴 했는데, 직접 보여드리는 게 나을 것 같아서요."
화면을 돌렸다. 시뮬레이션 차트가 떠 있었다. 빨간 선이 기존 모델. 파란 선이 변경 후 모델. 빨간 선은 우상향이었지만 파란 선은 중간에 꺾여 있었다. 꺾이는 지점이 정확히 알고리즘 변경 적용일이었다.
"여기서 꺾여요." 정우가 꺾인 지점을 가리켰다. "근데 확산 전략 비중을 60%에서 80%로 올리면---" 파란 선 위에 초록 점선이 나타났다. "이렇게 회복돼요. 기존 모델의 85% 수준까지."
"85%면 부족해."
"네. 나머지 15%는 모델 밖이에요. 바이럴이 터지거나, 팬이 예측 밖으로 움직이거나." 정우가 화면을 다시 돌렸다. "변수가 필요해요."
이준은 고개를 끄덕였다. 변수. 예측 가능한 변수는 전략이 되고, 예측 불가능한 변수는 운이 된다. 이준은 운을 믿지 않았다. 하지만 13화에서 923명 중 한 명이 의자에 앉았을 때, 운과 전략 사이에 뭔가가 있다는 걸 느꼈다. 아직 이름을 붙이지 못한 것.
이준은 전략의 뼈대를 수정했다. 반복 재생 중심에서 확산 중심으로. 타임라인의 콘텐츠 포인트를 재배치했다. 쇼츠 비중 상향. 커뮤니티 확산 스케줄 전진. 외부 유입 이벤트 추가.
태현에게 메시지를 보냈다. '쇼츠 기획안 살아났다. 알고리즘 변경으로 확산 비중 올라갔어. 곡 나오면 바로 실행이야.'
태현의 답장. '알았어. 촬영 장비 세팅해놓을게.'
'타임라인이 맞물리기 시작했다. 곡 → 킬링파트 → 쇼츠 → 바이럴 → 유입 → 판매. 한 줄로 연결되는 구조. 하나가 빠지면 전체가 끊어진다.'
저녁. 수정 작업을 하고 있을 때 폰이 울렸다. 윤세아.
"이준 씨."
"네."
"MV 외주비 건." 윤세아의 목소리가 평소보다 낮았다. 의도적으로 낮추는 톤. "업체 조회 결과 나왔어요."
"말씀해요."
"법인 등록 내역이 없는 건 알고 있었죠. 더 파봤더니 사업자등록번호 자체가 다른 업체 거예요." 윤세아가 잠깐 멈췄다. "실체 없는 업체로 비용을 집행한 거예요. 페이퍼 컴퍼니예요."
이준의 손에 힘이 들어갔다.
'페이퍼 컴퍼니. 허위 업체를 만들어서 제작비를 빼돌린 구조.'
"금액이 얼마예요?"
"MV 외주비 항목 총액 4,500만 원 중 시장 단가 차이가 약 1,600만 원이에요. 그 1,600만 원이 페이퍼 컴퍼니 계좌로 간 거예요."
1,600만 원. BEP 2억 3천의 약 7%. 절대액으로는 크지 않았다. 하지만 그 숫자가 뜻하는 건 크기가 아니었다. 구조였다. 누군가가 의도적으로 비용을 부풀리고 차액을 빼돌릴 수 있는 경로가 회사 안에 존재한다는 뜻이었다.
"근거 자료 저한테 보내주실 수 있어요?"
"보낼게요. 이준 씨." 윤세아가 한 박자 멈췄다. "이건 정산 조정이 아니라 횡령 의심이에요."
횡령. BEP보다 무거운 단어. 초동 5만보다 무거운 단어. 이 단어가 나온 순간 게임의 규칙이 바뀐다. BEP 조정이나 초동 달성은 숫자 싸움이다. 횡령은 사람 싸움이다. 누가 했는지, 왜 했는지, 어디로 갔는지. 숫자는 거짓말을 하지 않지만, 사람은 한다.
"이 건은 저랑 윤세아 씨만 아는 걸로 해요." 이준이 말했다. "멤버들한테도 아직은 안 돼요."
"동의해요. 확정되기 전에 퍼지면 안 돼요." 윤세아의 목소리가 단단했다. "업체 대표 연락처 추적 중이에요. 진행되면 공유할게요."
"알겠습니다."
전화가 끊겼다. 이준은 스프레드시트를 봤다. MV 외주비 항목. 별표를 지웠다. 셀 색을 빨간색으로 바꿨다.
'알고리즘은 바뀌었다. 외주비에는 구멍이 있다. 유출자는 아직 안에 있다.'
변수가 세 개였다. 동시에 돌려야 했다. 하나를 놓으면 나머지가 무너지는 구조. 컴백 전략은 시간에 묶여 있고, 횡령 의심은 증거에 묶여 있고, 내부 유출은 신뢰에 묶여 있었다. 시간, 증거, 신뢰. 세 가지를 동시에 관리해야 했다. 이준은 스프레드시트에 탭을 세 개 나란히 열어뒀다. '전략'. '외주비'. '접근권한_리스트'. 세 개의 탭이 하나의 화면 안에 있었다. 이준만 보는 화면. 다른 누구에게도 보여줄 수 없는 화면이었다. D-25. 숫자는 계속 줄어들고 있었다.