‘Behind The Ads’는 당근 광고실의 프로젝트 뒤편 이야기를 담은 시리즈예요. 광고실은 2,000만 MAU를 대상으로 수익 모델의 핵심인 광고 서비스 전반을 책임지고 있어요. 비즈니스 성장의 엔진, 광고실이 어떻게 성과를 만들어 왔는지 지금부터 들려드릴게요.
안녕하세요, 광고 추천팀에서 Backend Engineer로 일하고 있는 Allan이에요.
광고 추천팀은 백엔드와 ML 엔지니어가 함께 일하며, 하루 수억 건의 광고 요청을 처리해요. 어떤 사용자에게 어떤 광고를 언제 보여줄지 결정하는 시스템을 구축하고 있죠. ML 엔지니어가 새로운 추천 모델을 만들면, 백엔드 엔지니어는 그 모델이 실제 서비스 환경에서 빠르고 안정적으로 동작할 수 있도록 구현해요. 각자의 전문성을 살려 긴밀하게 협업하며 큰 시너지를 만들어내고 있답니다.
이 과정에서 하나의 필요성이 분명해졌어요. 바로 ML 엔지니어가 자유롭게 실험하고 손쉽게 배포할 수 있는 환경이었는데요. 이 문제를 해결하기 위해 저희는 2023년에 광고 추천 플랫폼 ‘스카이넷’ 구축 프로젝트를 시작했답니다.
이번 글에서는 스카이넷을 단 두 달 만에 개발했던 당시의 경험과, 그 과정에서 어떤 방식으로 협업했는지 이야기하려고 해요.
스카이넷 이전의 광고 추천 로직은 여러 서버에 흩어져 있었어요. ML 엔지니어가 새로운 모델을 적용하려면 매번 백엔드 엔지니어의 도움을 받아야 했죠. 로직이 분산되어 있어 한 부분을 고치면 다른 곳에 영향을 줄 수 있었고, 실험 속도가 더뎌질 수밖에 없었어요.
그때는 광고주와 사용자가 빠르게 늘어나던 시기였어요. 이런 구조로는 도저히 늘어나는 트래픽을 감당할 수 없었죠. 모델을 개선하고 싶어도 실험 주기가 너무 느려 성과 검증조차 제대로 못 하는 상황이었어요. 팀원들 사이에서는 자연스럽게 “이대로는 안 된다. 지금 당장 더 빠르고 유연하게 실험할 방법이 필요하다”라는 공감대가 형성됐답니다.
결국 저희 백엔드 엔지니어가 직접 나섰어요. 단순히 ML 엔지니어의 요청을 지원하는 데 그치지 않고, 구조 자체를 완전히 새로 짜기로 한 거죠. 흩어진 추천 로직을 하나로 통합해, 누구나 빠르고 안전하게 실험하고 개선할 수 있는 독립된 플랫폼을 만들자는 결심이었어요. 이는 단순한 기술 정비가 아니라, 광고 추천을 당근 광고 성장의 핵심 인프라로 끌어올리겠다는 선언이기도 했죠.
스카이넷 프로젝트를 시작한 뒤, 저희는 완벽을 추구하기보다 핵심 기능부터 빠르게 만들고 실제 환경에서 검증하기로 했어요. 저는 아키텍처 설계와 인프라 구성, 코드 개발까지 전반을 맡았고요. 우선 추천 로직을 한곳에 모으고, ML 엔지니어가 바로 실험할 수 있는 최소한의 뼈대를 세우는 데 집중했죠.
이전 시스템으로는 새로운 모델을 기존 모델과 비교하기가 쉽지 않았어요. 광고 추천에서 중요한 건 어떤 모델이 더 높은 클릭률이나 전환율을 내는지 확인하는 건데, 성능을 제대로 비교하지 못하면 개선 방향조차 잡을 수 없었죠. 그런데 추천 로직이 서버 여기저기에 흩어져 있다 보니 변수를 맞추기가 쉽지 않았어요. A/B 테스트를 해도 결과가 섞여버려 성능 차이를 뚜렷하게 볼 수 없었던 거예요.
스카이넷은 이런 문제를 해결하기 위해 실험 대상이 되는 요인만 달리하고, 나머지 조건은 모두 동일하게 유지하는 구조를 도입했어요. 덕분에 ML 엔지니어가 공정한 조건에서 모델 성능을 명확하게 측정할 수 있는 환경이 만들어졌답니다.
백엔드와 ML 엔지니어의 경계 없는 협업으로 가능했던 스카이넷 프로젝트
빠른 속도로 프로젝트를 진행할 수 있었던 건 경계 없는 협업 덕분이었어요. ML 엔지니어는 실험에 필요한 조건, 피처, 로그 설계, 분석 방식 등을 정리했고, 백엔드 엔지니어는 그걸 바탕으로 시스템을 다듬으며 완성도를 높여갔죠.
물론 순조롭지만은 않았어요. 당시 팀원 대부분은 광고 도메인이나 머신러닝 경험이 많지 않았거든요. 광고 추천 로직은 단순한 코드가 아니라 성과 지표, 모델 추론, 실시간 입찰이 얽힌 복잡한 시스템이거든요.
그래서 저희는 서로의 지식을 빠르게 공유하며 이해를 넓혔어요. 광고 도메인에 익숙한 동료가 비즈니스 맥락을 풀어주고, ML 엔지니어는 모델 구조와 데이터 흐름을 설명하면서 팀 전체가 점점 더 큰 그림을 그려갈 수 있었답니다.
거대한 트래픽 규모도 큰 도전이었어요. 하루 수억 건의 요청이 몰리다 보니 몇 밀리초의 지연만 생겨도 사용자 경험에 바로 영향을 주는 상황이었답니다. 새로운 플랫폼으로 옮기는 과정은 더욱 까다로웠어요. 매출 흐름을 흔들리지 않게 지키는 게 무엇보다 중요했거든요. 그래서 저희는 한 번에 모든 트래픽을 옮기지 않았어요. 조금씩 트래픽을 흘려보내며 안정성을 확인하고, 문제가 보이면 즉시 롤백하는 전략을 썼죠.
빠른 개발 속도와 안정성을 동시에 챙겨야 했기에 긴장감은 늘 높았지만, 이 과정을 거치며 대규모 트래픽을 다루는 법을 몸소 배울 수 있었어요. 엔지니어로서 흔치 않은 경험이자 큰 성장의 기회였다고 생각해요.
스카이넷은 단 두 달 만에 프로덕션에 성공적으로 런칭됐어요. 가장 크게 달라진 건 일하는 방식이었죠. 예전에는 새로운 모델을 배포하려면 백엔드 엔지니어의 도움이 꼭 필요했는데, 이제는 ML 엔지니어가 직접 실험을 설계하고 결과를 분석하며 모델을 개선할 수 있게 됐으니까요.
기술적인 성과도 뚜렷했어요. 추천 로직을 통합하면서 불필요한 지연이 줄었고, 응답 속도는 20~30% 이상 빨라졌어요. 인프라 비용도 크게 줄었고, 하루 수억 건의 요청에도 흔들림 없이 대응할 수 있는 확장성도 확보했죠.
이 변화는 곧 광고 효율 개선으로도 이어졌고, 성과는 매출로 드러났어요. 더 정교해진 추천이 광고 성과를 끌어올리면서, 당근 광고 매출이 3년 만에 6배 이상 성장했거든요.
스카이넷 프로젝트는 저에게 단순한 기술 구현을 넘어 비즈니스에 기여하는 압축 성장의 기회였어요. 광고나 ML 지식이 없었지만, ML 모델의 동작 원리를 이해하고 비즈니스 임팩트를 고민하며 시스템을 설계하는 경험을 통해 엔지니어로서의 시야를 크게 넓힐 수 있었죠.
그리고 이번 런칭은 끝이 아니라, 'Next Chapter'의 시작에 불과해요. 추천팀은 광고 추천 플랫폼의 지속 가능한 다음 단계를 준비하고 있어요. 하루에도 수억 건이 몰리는 대규모 트래픽 환경에서 더 다양한 전략을 실험하고, 더 빠른 사용자 경험을 만들기 위해 서버 구조와 인프라를 계속 다듬고 있죠.
앞으로도 저희는 더 큰 규모 속에서 더 빠른 실험을 이어가며, 전에 없던 광고 추천의 새로운 길을 열어갈 거예요.
Software Engineer