당근의 성공을 견인하는 첫 화면의 비밀

서비스 | 2025-01-10
당근의 성공을 견인하는 첫 화면의 비밀_포스트썸네일

당근에 접속하면 처음 마주하게 되는 홈 피드 화면. 여기서는 스크롤을 통해 자신이 관심이 있을 만한 다양한 콘텐츠를 쉽게 탐색할 수 있는데요. 당근 피드실은 중고거래 게시물뿐만 아니라 동네 가게, 알바, 부동산, 중고차, 모임까지 사용자에게 필요한 콘텐츠를 적절하게 추천하여 더욱 풍성한 볼거리를 제공해요. MAU 2000만 사용자 각자에게 딱 맞는 추천 콘텐츠로, 다른 서비스의 성장까지 이끌어내는 당근 피드는 어떻게 만들어지고 있을까요? 피드실 구성원들과 이야기 나눠봤습니다. 

안녕하세요! 각자 자기소개 부탁드릴게요. 

피드실 Ruth, Winter, Evan, Yeda

피드실 Ruth, Winter, Evan, Yeda

Yeda: 안녕하세요! 피드실 리더를 맡고 있는 PM Yeda예요. 2021년 초에 당근에 합류해 중고거래실에서 일하다 지금은 피드실에서 일하고 있어요. 중고거래가 어느 정도 성장 단계에 올라온 서비스라면, 피드는 새롭게 도전할 부분이 많다고 느껴 재밌겠다 싶어 합류했어요. 

Evan: 안녕하세요, 저는 Feed Infra 팀 리더이자 백엔드 엔지니어 Evan입니다. 저희 팀은 추천 기능을 제외한, 피드에 콘텐츠를 불러오고 내보내는 모든 기술적 요소를 책임지고 있어요. 

Ruth: 저는 2023년 6월에 입사한 피드 품질팀의 머신러닝(ML) 엔지니어 Ruth입니다. 저희 팀은 ML 엔지니어로 꾸려져 피드의 추천 시스템을 개선하고 품질을 향상시키는 작업을 하고 있어요. 

Winter: 저는 ML 데이터 플랫폼팀 엔지니어 Winter예요. 작년 봄에 당근에 합류했고 방대한 데이터를 처리하는 안정적인 추천 시스템을 만들기 위한 인프라 구축을 담당하고 있습니다. 

피드실은 당근에서 어떤 역할을 하고 있나요? 

Yeda: 피드에 대한 설명부터 해야할 것 같은데요. 피드는 당근의 첫 화면이에요. 중고거래, 알바, 부동산, 광고 등 다양한 맥락과 의도를 가진 당근의 서비스와 콘텐츠가 모이는 곳이죠. 당근 앱을 켜는 99%의 사용자가 피드를 거쳐서 당근의 서비스를 이용해요. 목적성을 가지고 원하는 서비스를 찾아가는 것도 중요하지만, 비목적성으로 둘러보면서 ‘내가 좋아하는 걸 보다 보니 내 취향을 파악해서 자동으로 잘 추천해주네’ 하는 경험도 정말 중요해요.

피드실은 관심을 가질 만한 로컬 콘텐츠와 사용자를 연결해서, 당근의 서비스 전체를 함께 성장시키는 역할을 하고 있어요. 당근만 있으면 동네와 관련된 모든 서비스를 자연스럽게 이용할 수 있게 되는 거죠. 사실 이전 피드는 각 서비스에서 제공하는 콘텐츠를 서빙하는 플랫폼 역할을 해 왔는데요. 지금은 게시글을 보여주는 것에 그치지 않고 피드 자체도 하나의 프로덕트로 성장하고 있어요. 


하나의 프로덕트로 변화된 피드의 역할을 더 설명해주실 수 있나요? 

Yeda: 과거의 피드는 새로 생성된 콘텐츠를 최신순으로 서빙하는 수동적인 역할이었어요. 기본적으로 중고거래 물품을 최신순으로 보여주고, 순서에 따라 몇 번째 자리는 알바, 몇 번째 자리는 부동산 정해두고 각 서비스 팀이 선별한 콘텐츠를 그대로 보여주는 방식이었죠. 하지만 지금은 피드에 노출 가능한 콘텐츠를 일관된 데이터 모델로 정의해서 저장하고, 수급된 콘텐츠를 개인화 추천 모델을 거쳐 사용자에게 보여주고 있어요.

물론 이런 변화를 만들기까지 쉽지는 않았어요. 다른 팀 입장에서는 고정된 노출 영역을 빼앗긴다고 느낄 수 있었기 때문인데요. 예컨대 9번째 자리는 항상 부동산 자리였는데, 갑자기 피드 개인화를 이유로 고정 노출 구좌가 사라지면 콘텐츠가 어디에 어떻게 노출되는지 예측하기가 어려워져요. 하지만 처음 개인화를 시도했던 알바, 중고차 서비스를 시작으로 모임, 부동산, 비즈프로필 소식까지 피드 개인화를 거친 모든 서비스의 클릭수가 적게는 133%, 많게는 456%까지 늘어나며 폭발적인 성장을 경험했어요. 중고거래 개인화 이후로 다른 주요 서비스를 하나씩 개인화 도입해나가는 것만 1년 남짓한 시간이 걸렸죠. 처음에는 각 서비스의 개인화 도입을 설득하는 과정이 어려웠는데, 성공의 경험이 누적되며 쌓인 서비스 조직들의 신뢰를 바탕으로 피드에 대해 주도적으로 의사결정을 하며 피드와 다른 서비스를 함께 성장시키고 있어요. 

당근의 다양한 서비스를 시작하는 마중물 역할을 하다 보니, 안정적으로 콘텐츠를 보여주는 것에 대한 책임감이 남다를 것 같아요. 

Evan: ‘다른 서비스가 다 죽어도 우리는 죽지 않아야 된다’라는 책임감이 있어요. 피드는 첫 화면이다 보니까 ‘피드가 안 뜨면 당근이 안 된다'로 인식되니 안전성은 절대 포기할 수 없죠. 그런 상징적인 역할과 책임이 있는 것 같아요. 

Winter: 그래서 피드실에는 서로서로 문제가 생겼을 때 대체할 수 있는 fallback 장치나 시나리오가 많아요. 홈 피드에 빈 화면이 뜨지 않게 겹겹이 대비 장치를 만들어두는 거죠. 제가 속한 ML 데이터 플랫폼팀은 추천을 위한 데이터를 안정적으로 처리하는 역할을 하고 있는데요. 대표적인 업무로는 더 많은 피처를 쉽게 추가하고, 높은 트래픽에도 안정적으로 사용할 수 있게 피처 플랫폼으로 재개발하는 게 있었어요. 더 좋은 피드 추천을 위해 사용자의 클릭 혹은 구매 내역 등 히스토리를 종합적으로 사용하는데, 당근이 성장하면서 데이터가 많이 쌓이고 무거워졌거든요. 이전 방식으로는 한계가 있다 보니 1년에 걸쳐 재개발과 마이그레이션을 진행했고 지금은 그때보다 더 많은 트래픽을 더 빠르게 처리할 수 있어요. 피드는 특히 추천이 생명이다 보니, 피드실의 ML 데이터만 안정적으로 처리할 수 있게 플랫폼팀이 따로 있는 거예요.


피드실은 안정성을 챙기면서도 실험을 많이 하는 조직이라고 들었어요. 

Evan: 피드실은 당근 내부에 있는 실험 플랫폼을 가장 많이 쓰는 조직 중 하나일 거예요. 사용자 경험을 좋게 만들려면 결국 피드의 개인화와 추천 기능이 중요하거든요. 그러려면 실험을 많이 해야 하고요. 피드실에서는 데이터 분석가나 PM만이 아니라 엔지니어까지 대부분이 각자 주도해서 실험을 열어요. 피드실에 있는 분들은 대부분 다 실험 오너를 한 번씩 해보신 분들일 거예요. 당장 지금도 실험이 여러 개 돌아가고 있어요. 

Yeda: 피드실에서는 A/B 테스트로 효과가 더 좋은 것을 배포하는 실험도 많이 하지만, A/A 테스트로 시스템을 개선하면서 사용성은 유지하는 실험도 진행하고 있어요. 피드는 사용자가 많다 보니 작은 변화만으로도 영향이 크게 나타나기도 하고, 당근 전체 서비스 지표에도 쉽게 영향을 주게 되거든요. 따라서 사용자가 보기에는 똑같지만 시스템이 더 효율화되는 방향으로 개선하는 실험을 진행하기도 해요. 


효과적으로 실험하기 위한 피드실만의 업무 방식이나 사례가 있을까요? 

Yeda: 피드실은 시스템 복잡도가 높고 안정성이 중요하다 보니 린하게, 빠르게 움직이는 것이 어려울 때가 종종 있어요. 하지만 안정성이 중요하다는 이유만으로 느려지는 것을 정당화하면 안 된다고 생각해요. 그래서 최근에는 클라이언트 의존도를 낮추고 서버에서 직접 요소를 컨트롤 할 수 있는 뷰타입을 만들었어요. 기존에는 피드에서 아이콘 하나를 바꾸거나 새로운 정보를 보여주고 싶어도 클라이언트 앱 배포를 기다려야 했는데, 서버와 클라이언트가 사전에 데이터 구조와 응답을 맞춰두고 서버가 직접 뷰타입을 컨트롤 할 수 있는 기반을 마련했어요. 클라이언트에 의존하지 않고 실험할 수 있게 된 거죠. 프로젝트에 따라 클라이언트 배포가 필요한 부분은 그에 맞게 움직이고, 안정성도 챙기면서 효율성과 속도를 높이기 위해서 고민하고 있어요. 

Evan: 파편화돼 있던 콘텐츠 뷰 타입을 통일하기도 했어요. 피드실은 모바일실, 광고실 등 다양한 조직과 협업해야 하는데, 각 팀마다 다르게 들어오는 요청을 유연하게 수용할 수 있도록 하나의 형태로 통합한 거예요. 내부 뷰 타입을 하나로 정의해서 커뮤니케이션 비용도 훨씬 줄인 거죠. 

(해당 프로젝트에 대해 피드실 엔지니어가 직접 작성한 테크 인사이트 글은 🔗당근 테크 블로그에서 볼 수 있어요!)

Yeda: 피드는 워낙 다른 서비스에 영향을 줄 수 있는 지면이다 보니, 업무 맥락을 잘 공유하는 것도 중요한데요. 주로 팀 슬랙 채널을 통해 비동기로 빠르게 공유하는 편이에요. 맥락을 잘 정리하거나 히스토리를 남겨야 하는 경우, PRD나 테크 스펙, 실험문서, 배포 결정 문서 등을 작성해서 누구나 문서만 보더라도 업무 맥락을 잘 이해할 수 있도록 하고 있어요. 

그리고 한 달에 한 번 피드실 전체 구성원이 오프라인으로 얼라인 데이를 가져요. 얼라인 데이를 시작한 지 1년이 되어가는데요. 주로 팀마다 깊게 고민하는 영역이 다르다보니, 접점이 없는 일은 공유가 잘 되지 않는 문제가 있었어요. 각 조직이 어떤 일을 하고 있는지를 가시화하고 실험에서의 레슨런을 공유하는 목적으로 진행돼요. 


최근에 진행한 실험 중에 인상 깊은 프로젝트를 소개해줄 수 있나요? 

Ruth: 추천을 더 잘 하기 위해 부정 피드백 실험을 한 적 있어요. 예를 들어 ‘수영복’을 한 번 검색해본 이후 계속 뜨면 문제가 되잖아요. 긍정 학습도 중요하지만, 사용자가 원치 않는 데이터를 보여주지 않는 부정 학습도 중요하다고 생각했어요. 그래서 영상 플랫폼에서 보기 싫은 영상을 숨길 수 있는 기능을 당근 게시글에도 도입했어요. 

사용자가 직접 ‘이 글 숨기기’ 의사 표현을 하게 된 거죠. 이 기능이 처음 만들어졌을 때는 숨기기가 선택된 해당 게시물만 비공개 처리가 됐는데, ML 플랫폼 팀에서 이를 고도화하기 위한 여러 실험을 했어요. 부정 피드백 시기, 물건의 카테고리, 미노출 정도 등을 미세하게 조절하는 실험을 통해 비슷한 물건도 보여주지 않은 거죠. 이후 숨기기 사용 기능이 40% 정도 줄었어요. 이 실험에서는 머신러닝을 고민하는 ML 엔지니어뿐만 아니라 해당 기능을 어떻게 보여줄지 고민하는 UX팀, 하루에도 몇 번이고 데이터를 살펴보는 데이터 분석가와 PM과 함께 해서 더 기억에 남아요. 

Winter: 더욱 정교한 추천을 위한 거대 언어 모델(LLM) 도입도 실험하고 있어요. 예를 들어 특정 브랜드의 조명이 올라오면, 이게 생활 가전인지, 인테리어 소품인지 등을 LLM으로 판단하는 거죠. 세부 카테고리를 대략 천 개 정도로 정리했는데요. 이를 토대로 새로운 게시물이 올라오면 어떤 카테고리에 속하는지를 자동으로 찾고 콘텐츠에 관심 있을 사용자에게 보여주는 거죠. 사용자들이 게시글을 올릴 때 카테고리를 모두 선택할 수 없으니, 머신러닝이 대신 판단해주는 거예요. 세부 카테고리가 정리되면, 추천뿐 아니라 UI/UX에서도 새로운 기능으로 활용될 수 있을 거라 생각해요. 


앞으로 피드실에 어떤 성향의 구성원이 합류하시길 바라나요? 

Evan : 도전을 즐기는 성향이신 분이면 좋을 것 같아요. 피드실은 비용이든, 리소스든, 혹은 팀 내 요청 측면에서든 당근에서 제일 큰 데이터를 처리하는 곳이에요. 특히 ML 데이터 플랫폼에서는 초당 10만 번 이상의 트래픽이 발생해요. 보통 90%의 요청이 100밀리세컨드 이하로 처리되면 어느 정도 빠르게 처리된다라고 말할 수 있는데, 저희 피드실은 요청 사항의 90% 말고 예컨대 99%, 99.9%의 요청이 30밀리세컨드 정도까지 좁혀나가는 팀이거든요. 많은 트래픽을 견디면서 딥다이브를 할 일이 많다 보니 도전 의식이 많은 분이면 좋을 것 같아요. 

Winter: ML 데이터 플랫폼 팀은 아무래도 엔지니어링적으로 수준 높은 최적화 과제를 풀어나가야 하기 때문에, 난이도 높은 문제를 풀어내면서 같은 비용으로도 더 많은 트래픽을 처리하는 데 재미를 느끼는 분들이 오시면 좋을 것 같아요. 예전에 1초 걸렸던 걸 0.5초, 0.3초, 이렇게 줄여나가는 그런 재미를 찾는 분들이면 좋겠어요. 당근 피드실에서는 효율화된 파이프라인을 구축하는 경험을 할 수 있어서, 비용은 낮추고 피드 소비는 증가시켜 지표나 매출 증가에 기여하는 자부심도 가질 수 있을 것이라고 생각해요. 

Yeda: PM 관점에서는 홈 피드를 하나의 프로덕트로 바라보면서, 각 서비스와 연결되는 디테일한 사용자 경험도 균형 있게 보실 수 있는 분이 합류하시기를 기대해요. 피드실은 결국은 모든 서비스를 조망하면서도 사용자 경험을 다루는 역량도 중요하다고 보고 있어요. 기본적으로 데이터를 깊게 탐구하면서도 정성적인 사용자의 경험을 관찰하며 문제를 정의할 줄 아는 분이 오시면 좋겠어요. 

Ruth: 개인화와 추천의 머신러닝 영역에서는 문제가 모호한 게 많고 정답이 없는 게 많아요. 새로운 기술도 많이 배워야 하고요. 그렇다 보니 ML 엔지니어의 경우에는 머신러닝 기술을 잘 알고 최신 업계 동향을 살펴보며 실제 활용 역량까지 갖추신 분을 모시고 싶어요. 

Evan: 한 가지 덧붙이자면, 엔지니어를 채용할 때 ‘피드’ 혹은 ‘추천’이라는 도메인을 엄청 중요하게 보지는 않아요. 해당 분야의 전문지식이 있느냐보다는, 문제 정의를 잘하고 그에 따른 엔지니어링적인 문제 해결법을 잘 찾을 수 있는 분이라면 모두 환영해요.


피드실에서 일하면 이런 게 좋다, 자랑할 수 있는 게 있을까요? 

Evan: 홈 피드라는 하나의 프로덕트 안에 이렇게 다양한 콘텐츠를 보여주는 환경은 당근이 국내 모바일 서비스 중에서는 거의 유일하다고 생각해요. 다른 회사들은 피드의 콘텐츠의 종류가 한두 가지밖에 없거든요. 영상 플랫폼 같은 경우는 긴 영상, 숏츠, 광고 정도고 소셜 미디어도 사진 혹은 텍스트 이렇게 형태가 정해져 있죠. 피드실은 중고거래, 부동산, 알바, 동네 가게 등 다양한 콘텐츠를 개인화를 토대로 사용자에게 딱 맞게 보여줘야 해요. 이런 환경에서 일하다 보면 다양한 콘텐츠에 대한 이해와 경험을 높일 수 있을 거라고 생각해요. 

Winter: 저는 팀에 와서 굉장히 놀랐던 게 동료 때문인데요. 피드실은 많은 트래픽을 견뎌야 하기 때문에 다양한 라이브러리 도구를 사용하는데, 이게 제대로 안 만들어져 있으면 한계에 부딪혀요. 이런 경우 대부분은 ‘이 도구에서 기능이 부족하네’ 하고 다른 방법을 찾거든요. 그런데 저희 팀에 벡엔드 겸 ML 엔지니어 Lani는 바로 해당 도구의 문제를 리포트하고, 해당 라이브러리의 메인테이너와 신규 기능 도입이나 문제 해결 방향을 합의해 직접 기여하더라구요. ‘우리 문제가 아니네’하고 넘길 수 있는데 직접 문제를 밝혀내고, 실제 해결을 해 내서 전 세계 거의 모든 개발자들이 함께 쓰는 개발 생태계에 기여한 게 정말 멋있다고 생각했어요. ‘이게 안 돼서, 저게 안 돼 있어서 못 해’가 아니라 ‘그게 안 되면 내가 가서 하지’ 이런 느낌이랄까요. 

Ruth: 저는 ML 엔지니어 챕터 스터디를 할 때마다 동료들이 멋지다고 생각해요. 저는 학교를 졸업하고 바로 합류해서 기술을 실제 접목하는 게 낯선 경우가 많거든요. 그런데 ML 챕터 엔지니어분들이 직접 데이터를 수학적으로 해석하고 기술에 딱 대응시켜서 문제를 해결하는 걸 보며 ‘좀 멋있다’ 느껴요. ML 챕터에서는 매주 논문을 하나씩 발표하고 논의하는 스터디를 진행하는데, 팀에서 적용해 볼만한 포인트들이 있으면 바로바로 적용하고 공유하는 것도 재밌어요. 


마지막 질문이에요! 앞으로의 피드실 목표는 무엇인가요? 

Yeda : 피드실의 목표는 올해도 크게 두 가지 방향성을 가져갈 거예요. 첫 번째는 사용자가 만족할 만한 추천을 제공하고 컨텐츠를 효율적으로 연결시켜 다른 서비스의 성장을 견인하는 플라이휠을 강화하는 거예요. 피드는 지면상으로도 모든 트래픽의 진입점이다 보니까, 숙명적으로 해야 하는 역할인 거죠. 두 번째가 중요한데요. 앞서 말씀드린 것처럼 피드를 하나의 프로덕트로서 성장시키는 거예요. 한정된 홈 피드 지면에서 당근의 다양한 서비스끼리 파이 싸움을 하게 하고 싶진 않아요. 피드가 정체되지 않고 프로덕트로서 성장한다면, 피드를 소비하는 파이도 키우고 그를 토대로 다른 서비스도 탄탄한 기반에서 성장을 이어나갈 수 있을 거예요.

당근의 첫 화면, 함께 만들어보고 싶다면피드실 채용 공고 바로 가기 🏠

당근

당신 근처의 지역 생활 커뮤니티

추천 포스트