지금 우리 동네에서 거래되고 있는 물건, 가장 인기 있는 모임, 집 근처에서 바로 할 수 있는 알바까지. 당근 앱을 켜고 아래로 쭉 스크롤하면 다양한 동네 소식을 볼 수 있어요. 당근에는 실시간으로 업데이트되는 동네 소식을 한 화면에 보여주는 피드를 책임지는 팀이 있는데요. 바로 피드실 피드 인프라팀입니다. 당근의 홈 피드와 동네생활 피드에서 사용자가 원하는 정보를 얻고 흥미 있는 콘텐츠를 볼 수 있도록 피드 서비스를 제공해요.
피드 인프라팀은 피드실이라는 큰 조직 아래 피드 품질팀, ML 데이터 플랫폼팀 그리고 피드 UX팀과 함께 협업하고 있는데요. 피드라는 제품을 잘 만들기 위해 하나의 조직으로 뭉치는 과정을 거쳐 지금의 모습이 되었습니다. 오늘은 이렇게 모인 피드실 사람들이 당근 피드를 어떻게 만들어가고 있는지, 함께 일하는 문화는 어떤지 소개하려고 해요.
당근 피드는 한 마디로 ‘우리 동네에서 일어나는 다양한 일을 모두 모아놓은 곳’이라 할 수 있어요. 중고거래에서부터 시작해 모임, 알바 등 동네에서 얻을 수 있는 정보들을 한 번에 볼 수 있는 우리 동네 보물창고라고나 할까요. 내 근처에서 찾던 많은 일을 쉽고 편하게 발견할 수 있죠. 피드 인프라팀은 당근의 콘텐츠를 제일 잘 보여줄 수 있는 피드 서비스를 통해 앱 사용자와 그 사용자가 찾는 동네 소식을 연결하는 일을 해요. 당근 사용자가 하고 싶은 모든 일을 슬리퍼 신고 걸어갈 수 있는 가까운 거리에서 쉽고 빠르게 할 수 있도록 돕습니다.
당근 피드에서 가장 중요한 것은 ‘개인화’예요. 중고거래, 알바, 부동산 등의 다양한 콘텐츠 중 사용자가 가장 흥미로워할 만한 것들만 보여줄 수 있도록 선별하는 작업입니다. 따라서 피드실에서는 수많은 콘텐츠를 모아 안정적으로 서빙하는 동시에, 어떻게 하면 사용자가 좋아하는 구성으로 콘텐츠를 보여줄 수 있을지 고민해요.
보통 SNS에서는 콘텐츠를 한 곳에서 작성하고, 통일된 형식으로 사진이나 글을 올리는 경우가 많은데요. 당근에서는 이와 달리 중고거래 물품부터 알바 공고, 중고차 게시글까지 발행되는 콘텐츠의 종류와 형태가 매우 다양해요. 따라서 피드실은 보 편적인 SNS 서비스의 피드 설계 구조와는 다른 시스템을 구축하고, 어떻게 하면 다양한 서비스의 콘텐츠를 각 프로덕트에 최적화된 노출 형태로 보여줄 수 있을지 당근 피드만의 방법을 고민하고 찾아가는 중이에요.
또 피드 상에서 새로운 기능을 더 간편하고 빠르게 보여주려는 노력도 하는데요. 보통 새로운 기능을 보여주려면 사용자가 앱 업데이트를 해야 해요. 귀찮아서 앱 업데이트를 미루거나 안 하는 사용자에게는 기능을 보여주지 못하게 돼요. 따라서 이런 별도의 업데이트 없이도 새로운 기능을 피드에 빠르게 노출하기 위해 ‘Viewtype’이라는 것을 만들었습니다. ‘새로운 앱을 만들 때 웹뷰로 만들고 있으니, 피드 아이템을 그릴 때 필요로 하는 정보만 골라서 보내주면 별도의 업데이트를 안 해도 되지 않을까?’ 하는 아이디어에서 출발한 건데요. 이를 더 발전시켜 다양한 콘텐츠 특성에 맞는 모양을 자유롭게 적용할 수 있는 ‘Viewtemplate’도 만들고 있어요. 당근 피드에 존재하는 다양한 뷰타입과 더 자세한 내용은 당근 테크 블로그에서 확인할 수 있어요.
지금의 피드 서비스를 만들어오기까지 피드 인프라팀에는 작고 큰 변화들이 있었어요. 가장 큰 변화라고 한다면 아무래도 피드실로의 합류인데요. 피드만을 위해 모인 피드실 조직의 탄생과 함께, 피드 서비스 구조도 함께 큰 변화를 맞으며 성장할 수 있었습니다.
피드실이 있기 전에는 피드 서비스에서 모든 콘텐츠를 모아서 정리하고 서빙하기가 어려웠어요. 하나의 큰 저장소에 여러 콘텐츠를 담았을 때 서비스 별로 원하는 정렬의 방법, 조회 빈도 등을 예상할 수 없었거든요. 또 당시에는 당근 안에 또 어떤 새로운 서비스와 콘텐츠가 생길지 알 수 없었기에, 하나의 고정된 개인화 시스템을 만드는 건 오히려 더 큰 기술 부채가 될 것이라 보았어요. 따라서 우선 콘텐츠를 제일 빠르게 노출할 수 있는 방향으로 시스템을 설계했습니다. 중고거래, 부동산 등의 각 서비스에서 1차적으로 어떤 콘텐츠를 전달할지 정해서 보내주면, 이후 어떤 순서로 노출할지 정하는 역할을 피드 서비스가 맡았죠. 각각의 서비스마다 스스로 콘텐츠 서빙과 개인화를 진행하는, 일종의 분산형 구조였어요.
초기에는 이러한 전략으로 콘텐츠를 피드에 빠르게 노출할 수 있었지만, 한층 더 발전된 개인화 단계로 넘어가야 할 만큼 콘텐츠가 많아졌을 때는 이 방식이 유효하지 않았어요. 각 서비스의 데이터만으로 각자 개인화하도록 하는 건 더 이상 큰 임팩트를 만들지 못했거든요. 모든 서비스가 사용자들의 데이터를 조화롭게 사용할 수 있는 상태도 아니었고요.
그래서! 사내의 모든 콘텐츠를 모아서 전체 최적화를 하기로 결정했습니다. 이를 위해 조직 구조 변경을 진행하여 총 24명의 구성원이 피드실로서 뭉치게 되었고, 피드 인프라팀은 10명인 팀이 되었어요. 오직 피드의, 피드에 의한, 피드를 위한 다양한 직군이 하나의 목적조직인 피드실로 모였습니다.
그리고 피드 서비스는 당근의 모든 콘텐츠를 모아 개인화하고, 피드의 적재적소에 배치하는 중앙집중형 구조로 바뀌었습니다. 플랫폼으로서 콘텐츠를 안정적으로 전달하는 법을 고민하던 피드 인프라팀은 사용자 경험, 피드백을 잘 받을 수 있는 환경, 개인화를 위한 장치 등 피드라는 하나의 제품 전체를 고민하는 팀으로 성장하게 되었는데요. 이 과정이 매우 새롭고 재밌었어요.
이렇게 피드라는 제품을 위해 뭉친 피드실 구성원들은 함께 일하며 피드실만의 문화를 만들어가고 있는데요. 당근 피드를 통해 다양한 동네 서비스를 연결하는 일을 하다 보니, 함께 일하는 방식에도 자연스레 ‘연결'이 녹아있어요. 피드실 문화 중 몇 가지만 소개해 볼게요.
피드실에서는 작업에 들어가기 전에 PRD(제품 요구 조건 문서)를 작성하여 Key Concept에 대해 논의하고, Tech Spec을 통해 세부 구현 사항을 미리 정리해요. 함께하는 모든 팀원이 같은 이해를 가지고 한 몸처럼 일할 수 있도록 하기 위해서죠. 특히 기능을 어떻게 구현할 것인지 기술적으로 풀어 설명하는 글인 Tech Spec의 경우 가능한 모든 인터페이스를 논의하고, 추후에 문서를 읽었을 때 모두가 같은 결과를 도출해 낼 수 있도록 몇 번이고 치열하게 의논합니다.
처음 제대로 Tech Spec을 사용하게 된 프로젝트에서는 문서 작성에만 2주가 걸렸지만, 이를 코드로 옮기는 데 걸리는 시간은 1주에 불과했어요. 생각은 끝났고 달리기만 하면 된다, 마치 뻥 뚫린 아우토반을 질주하는 느낌이었습니다.
피드실에서는 누구나 아이디어를 내고 이를 데이터로 검증하고 설득할 수 있어요. 실험의 중요성은 이미 많이 알려져 있는데요. 피드실 팀원들은 감이나 느낌보다는 실험을 통해서 얻은 데이터를 바탕으로 한 객관적인 지표를 가지고 논의하려고 해요. 특히 A/B 테스트를 진행할 땐 우리가 원하는 미래를 직접 선택하는 것 같아서 굉장히 매력적이라는 얘기도 나눈 적 있어요. 실험을 많이 또 효율적으로 하기 위해서는 준비 작업에 걸리는 시간이나 장애물이 최대한 적어야 하기에, 빠르고 확장 가능한 실험 인프라 역시 구축하고 있습니다.
그렇다고 무조건 실험이나 데이터에만 의존하지는 않아요. 데이터를 가지고 의논하는 과 정에서, 단기간에 제품의 특정 지표를 끌어 올리는 효과가 있더라도 장기적으로 제품 전체 경험에 해를 끼칠 수 있다고 판단되면 반려될 수 있어요. 반대로 단기적인 지표에는 변화가 없지만 우리가 만들고자 하는 궁극적인 목표에 더 가까워지는 가치를 보인다면 데이터에 상관 없이 우리의 방향성에 맞게 결정할 수 있습니다. 물론 항상 그에 대한 기회비용을 꼼꼼하게 계산하면서 움직여요.
매월 마지막 주 수요일, 당근에서는 ‘문화의 날’이 열려요. 오전에는 회의를 통해 사내 문화, 팀 문화를 다듬는 시간을 가지고 오후에는 팀원들과 함께 다양한 활동을 즐기는 날이죠. 피드실 또한 함께 문화의 날을 즐기면서 구성원 간의 돈독한 관계를 만들고 있는데요. 해산물을 좋아하는 사람들이 모여 가락시장에 킹크랩을 먹으러 가기도 하고, 시원한 바람을 맞으러 한강에 요트를 타러 간 적도 있어요. 다 같이 업무에 집중하며 생긴 피로와 스트레스를 풀고 즐거운 추억을 쌓아가고 있어요.
반기에 한 번씩은 모두 함께 워크샵을 가기도 해요. 다 함께 당근 피드의 방향성에 대해 다양한 이야기를 나누고 앞으로의 전략을 세우는 시간을 가져요. 올해 여름에 진행했던 워크샵에서는 조별로 포스트잇에 각자 평소 피드를 사용하는 이유 등을 마구 적어봤는데요. 그걸 다 같이 보면서 당근 피드가 피드로서 어떤 강점을 가져야 하는지에 대해 의논했어요. 또 각 팀마다 진행했던 실험 사례를 발표하면서 인사이트를 공유하기도 하고, 당근 피드의 미래에 대해 심도 깊은 논의를 하며 팀원들 간의 방향성을 맞추는 시간을 가졌습니다.
올 하반기에는 워크샵 대신 플레이샵을 떠났는데요. 서로 간의 친밀함과 깊은 신뢰가 쌓이는 만큼 건강한 충돌도 성장도 이뤄낼 수 있다는 마음으로, 피드실 사람들은 열심히 일하고 함께 즐거운 시간을 보내며 돈독한 관계를 다지는 중입니다.
이렇게 피드실은 서로를 연결하고, 피드를 통해 가까운 이웃들을 연결하면서 로컬 슈퍼 앱으로서의 당근을 꿈꾸고 있어요. 더욱 유연하고 확장 가능한 피드 서비스를 통해 모든 로컬 서비스가 당근으로 연결되는 세상을 만들어가는 것이 앞으로의 목표입니다.
피드를 위해 하나로 뭉치는 여정을 지나오며 피드실은 당근 피드만의 힘찬 모험을 이어가는 중인데요. 계속해서 동네에서의 더 큰 연결을 쌓아갈 당근 피드의 행보를 기대해 주세요!
Software Engineer