GitHub 트렌딩에 또 하나의 'AI 자동 수익화' 저장소가 올라왔다. yikart/AiToEarn, TypeScript 기반, 오늘 하루 397 stars로 랭크 3위. README에 적힌 설명은 정말 한 줄, "Let's use AI to Earn!"이 전부다. 그런데 repo 이름을 한 번 더 보면 흥미롭다. 'yikart'라는 기존 정체성과 'AiToEarn'이라는 새 레이어가 한 이름 안에 붙어 있다. 단발성 머니봇이 아니라, 어떤 콘텐츠/커머스 흐름 위에 AI 수익화 레이어를 얹으려는 프로젝트로 읽힌다는 뜻이다.
이런 류의 저장소는 데모를 만들기는 비교적 쉽다. LLM 한 번 호출하고, 이미지/영상 한 장 생성하고, 채널 API 한 번 두드리면 30초짜리 데모 영상이 나온다. 별이 빠르게 붙는 이유도 그 데모 임팩트 때문이다. 하지만 실제 운영을 시작하는 순간 무게 중심은 모델이 아니라 다른 곳으로 옮겨간다. 어떤 채널 토큰을 어디에 저장하는가, 자동 생성된 콘텐츠를 사람이 한 번이라도 보는 단계가 코드 어디에 박혀 있는가, 정지·삭제 통보가 왔을 때 어떤 콘텐츠가 어떤 프롬프트와 모델 버전으로 만들어졌는지 되돌릴 수 있는가—이런 경계 질문이 전부다.
특히 'Earn'이라는 단어가 모호하다는 점은 짚어둘 만하다. 광고 수익 분배, 제휴 링크 커미션, 직접 결제는 코드 관점에서는 비슷해 보여도 컴플라이언스 관점에서는 완전히 다른 동물이다. 한 저장소가 셋 다 같은 추상으로 묶으려 들면, 어딘가는 반드시 정책 충돌이나 정산 누락으로 깨진다. 그래서 이런 코드베이스를 평가할 때 나는 'AI 품질'보다 채널 어댑터의 격리 수준, 게시 직전의 휴먼 리뷰 큐 유무, 생성물 메타데이터(prompt/model/seed) 추적 미들웨어 세 가지를 먼저 본다.
결국 yikart/AiToEarn 같은 프로젝트가 의미 있는 도구가 되느냐, 사고 보고서의 주연이 되느냐는 모델 선택이 아니라 이 경계 레이어 설계에 달려 있다. 'AI로 돈을 벌자'는 카피는 가볍지만, 그 카피를 책임지는 코드는 가장 무겁다. 트렌딩 페이지에서 별 수만 보고 fork를 누르기 전에, src 디렉터리에서 '토큰'과 '큐'와 '리뷰'라는 단어가 어디에, 몇 번 등장하는지부터 검색해 보는 편이 훨씬 비싼 정보를 준다.