버즈빌 프론트엔드 변천사
버즈빌 Supply 그룹의 Product Growth 팀의 Luke입니다. 저희 버즈빌에서 지난 몇 년간 겪어온 프론트엔드 아키텍처 변화를 공유하려 합니다. AngularJS에서 시작해 Vue, React를 거쳐 Next.js까지, 각 전환점에서의 고민과 선택 과정을 …
Read Article안녕하세요, 버즈빌 Supply 그룹의 Product Backend 팀 리드 Wynn입니다.
현재 저희 팀에서 함께 팀을 성장시킬 동료를 찾고 있습니다. 채용 공고만으로는 우리 팀이 어떤 팀이고, 어떤 일을 하는지 충분히 전하기 어렵다고 느껴 이 글을 쓰게 되었습니다.
저희 팀은 버즈베네핏(BuzzBenefit)의 백엔드 시스템 전반을 책임지고 있습니다. 이번 글에서는 저희 Product Backend 팀이 어떻게 만들어졌고 지금 어떤 역할을 하고 있는지를 사례와 함께 소개드리려 합니다.
버즈베네핏 SDK는 처음 제품이 출시된 후 올해 2025년 초반까지만 해도, 약 10년 동안은 리워드 광고 송출에 초점을 맞춘 제품이었습니다. 그러나 올해 초부터는 단순한 광고 플랫폼을 넘어 게이미피케이션 기능을 통해 사용자 참여를 유도하고 다양한 혜택 경험을 제공하는 플랫폼으로 빠르게 진화했습니다.
 
그 결과 카카오뱅크, 카카오페이와 같은 디지털 뱅킹과 핀테크를 넘어, 국내 5대 금융사 파트너를 올해 모두 확보하며 국내 리워드 수익화 플랫폼 1위 자리를 공고히 했습니다. 또한, 이미 시장 점유율 1위를 지키던 상황에서도 50% 이상의 사용자 성장을 달성했습니다.
하지만 제품의 급격한 성장과 함께 저희 백엔드 시스템도 변화가 필요했습니다.
“사용자의 참여와 체류를 늘리고 더 풍부한 혜택 경험을 제공하는 플랫폼”을 실현하기 위해 제품 조직에서는 사용자 참여를 극대화하기 위한 다양한 게이미피케이션 기능들을 기획했고, 각 기능의 효과를 정확히 측정하기 위한 데이터 분석과 가설 검증을 위한 실험을 확대하고자 했습니다.
그러나 이를 뒷받침할 백엔드 시스템은 광고 송출에 최적화되어 있어 새로운 기능이 추가될 때마다 서로 다른 데이터 구조와 로직이 쌓이며 데이터 흐름이 파편화되었습니다. 기능 간의 시너지를 만들어내기 위한 데이터 연동도 복잡해져 확장성과 유지보수성 모두 한계에 부딪혔습니다.
무엇보다도 실험 단위로 데이터를 수집·가공하기가 어려웠습니다. 결국 제품팀이 원하는 속도로 가설을 검증하거나 유저 행동 데이터를 유기적으로 연결해 인사이트를 얻는 데에 어려운 구조가 되어가고 있었습니다. 트래픽을 안정적으로 처리함과 동시에 새로운 기능의 확장과 실험이 용이한 시스템이 필요했습니다.
Product Backend 팀은 이러한 문제들을 근본적으로 해결하고 버즈베네핏의 현재부터 미래 도약을 책임지기 위해 탄생했습니다.
저희는 팀을 만들 때 아래의 3대 핵심 원칙을 세웠습니다.
위의 핵심 원칙에 기반하여, 일상 속 주요 업무는 다음과 같습니다.
현재 팀이 사용하는 기술 스택은 다음과 같습니다.
애플리케이션: Golang, Python, MySQL, AWS DynamoDB, Redis, Kafka, Airflow, Confluent Kafka Connector, Argo Workflows
인프라: Kubernetes, Istio, Docker, Terraform, AWS, Helm, Argo CD, Datadog, Loki, Grafana, Prometheus
저희 팀이 어떤 팀인지 좀 더 잘 이해하실 수 있도록 실제로 팀에서 했던 프로젝트를 소개해 드리겠습니다.
팀에서 최근 “모임통장 미션 챌린지” 라는 기능을 런칭했습니다. 카카오뱅크 모임통장 참여 인원들의 광고 참여 데이터를 바탕으로 사용자의 모임통장 참여 랭킹을 집계하고 랭킹 리워드를 받아가는 서비스를 만드는 프로젝트입니다.
이 프로젝트의 핵심 도전 과제는 세 가지였습니다.
설계한 데이터 플로우는 다음과 같습니다. 먼저 핵심 서버 컴포넌트를 설명 드리겠습니다.
랭킹 집계는 사용자의 참여 이벤트를 기반으로 이뤄집니다. 따라서 이벤트를 발행할 때 광고 참여 서버가 모임통장 정보를 가지고 있어야 했습니다. 하지만 모임통장 정보는 랭킹 서버의 DB에만 존재했기 때문에 두 DB 간 데이터 동기화(Replication)가 필요했습니다.

저희는 DB 변경 사항을 실시간으로 감지해 다른 DB에 전파하는 CDC 파이프라인을 구축했습니다. 이를 위해 Kafka 기반의 Confluent Platform 을 활용했습니다.
Confluent Platform은 실시간 데이터 파이프라인과 스트리밍 애플리케이션을 쉽게 구축할 수 있는 Kafka 기반 플랫폼입니다.
이 구조를 통해 별도의 동기화 로직 없이도 DB 간 일관성을 유지하며, 손쉽게 데이터 Extract/Load 파이프라인을 구현했습니다.
그 결과 광고 참여 서버에서도 모임통장 정보를 활용해 참여 이벤트를 문제없이 발행할 수 있게 되었습니다.
참여 이벤트는 Kafka 토픽으로 구성되어, 여러 서비스가 이를 구독해 활용할 수 있습니다. 랭킹 집계 방식은 두 가지 옵션을 검토했습니다.
위의 두 가지 옵션을 검토한 끝에, Kafka Consumer 유지보수 비용과 파일럿 프로젝트라는 특성을 고려해 최종적으로 주기적 집계 방식을 선택했습니다.
이에 Confluent Managed S3 Sink Connector를 활용해 이벤트를 S3에 적재하고, Argo Workflow를 이용해 정해진 주기에 데이터 쿼리부터 랭킹 집계, 그리고 DB 적재까지 자동화했습니다.
추가로 랭킹 및 참여 정보는 별도의 ETL Workflow를 통해 S3에 저장되어 분석에도 활용됩니다. 버즈빌은 이미 셀프 서빙 데이터 파이프라인을 보유하고 있기 때문에, YAML에 익숙한 백엔드 엔지니어라면 누구나 직접 분석용 파이프라인을 작성할 수 있습니다.
Kafka 기반 구조를 도입하면서 사용자 참여 증가에 따른 API 요청 및 이벤트 발행 수 급증으로 인한 데이터 규모 증가에도 **수평 확장(Scale-out)**이 용이해졌고, 실제 서비스 런칭 후 트래픽 급증 상황에서도 무중단 운영을 유지했습니다.
이러한 확장성 있는 파이프라인을 구축한 덕분에 1,200만 모임통장 유저 대상으로 오픈한 “모임통장 미션 챌린지” 시즌 1을 성공적으로 마무리하고 현재는 시즌 2도 안정적으로 운영 중입니다.
제품의 데이터 흐름을 안정적으로 관리하기 위해서는 API, Workflow 등 소스 데이터를 만드는 컴포넌트들과 기반 인프라가 잘 동작하는지 모니터링 하는 것이 중요합니다. 컴포넌트가 오동작하거나 장애가 생겨 제품에 문제가 생기진 않았을지, 데이터가 오염되진 않았을지, 데이터 동기화는 잘 되고 있는지 면밀하게 추적해야 합니다.
버즈빌에서는 Datadog과 Grafana라는 툴을 사용해서 주로 모니터링을 수행하고 있습니다.
Datadog으로 Trace를 기본적으로 수집하고 있기 때문에, APM 기능을 통해 API의 Latency, Error, Traffic 등을 효과적으로 모니터링 할 수 있습니다.
전반적인 서비스 모니터링은 Datadog을 사용하고 있으며, Grafana의 경우 Loki를 사용한 로그 모니터링과 Prometheus를 사용한 메트릭 모니터링을 수행하고 있습니다.
팀이 구성된 초기에는 위와 같은 모니터링이 미비했지만, 몇 차례 장애를 겪으면서 빠르게 시스템 구축의 필요성을 깨달았습니다. 다행히 이미 시스템을 잘 구축해놓은 다른 팀들의 레퍼런스가 있었기 때문에 안정적으로 세팅할 수 있었습니다.
저희 팀의 경우, Datadog으로 대시보드와 Alert을 세팅해서 API, Workflow 등의 컴포넌트와 Kafka, MySQL, Redis, DynamoDB 등의 인프라를 실시간으로 모니터링 하고 있습니다.
 
 
Datadog을 연동하지 않은 Kafka Connector 컴포넌트 등의 경우 Loki와 Grafana Alerting을 사용해 모니터링을 하고 있습니다.
시스템은 지속적으로 튜닝을 거쳐 현재는 SLO 목표 수준을 유지하며 안정적으로 시스템을 운영하고 있습니다.
제품을 안정적으로 운영하고 신규 기능을 성공적으로 런칭하려면 데이터 흐름을 세밀하게 통제할 수 있는 환경이 중요합니다. 데이터를 통제할 수 있다면 장애 등의 리스크에 쉽게 대응할 수 있고, 테스트를 용이하게 만들고, 나아가 민첩한 제품 실험도 가능하기 때문입니다.
버즈베네핏의 경우, 서비스 변화에 보수적인 대형 고객사가 많아지고 만드는 기능도 많다보니 제품 운영 파트에서 더 세밀하게 기능을 통제하고 빠르게 리스크를 대응하고 싶은 니즈가 커졌습니다. 이를 위해 저희 팀은 Feature Flag 시스템을 주도적으로 초기 구축부터 시스템 고도화를 위한 TF 조직 구성까지 해 나가고 있습니다.
Feature Flag는 코드 변경 없이 기능을 동적으로 활성화하거나 비활성화할 수 있는 메커니즘입니다. 예를 들어, 신규 기능을 일부 유저/고객사에만 제한적으로 노출하거나, 기능 장애가 발생할 경우 즉시 기능을 비활성화할 수 있습니다.
Feature Flag를 통해 개발자는 기능을 보다 효과적으로 관리 및 테스트할 수 있고 운영자는 제품의 릴리스 프로세스를 쉽게 제어할 수 있습니다.
구현한 전체 구조는 다음과 같습니다.
 
Flag를 평가하는 Client 인터페이스와 Flag를 등록하는 Manager 인터페이스를 분리해서 추후 각각 다른 구현체로 쉽게 교체할 수 있는 구조에 주안점을 두고 만들었습니다. 프론트엔드와 백엔드에서 각각 Feature Flag를 사용할 수 있습니다.
Feature Flag를 도입하게 되면서 버즈베네핏의 Test in Production(실제 트래픽 환경에서 제한된 사용자 그룹을 대상으로 기능을 실험)이 가능해졌고, 특정한 유저 그룹/고객사에게만 기능을 오픈해서 데이터를 수집하는 것도 더 손쉬워졌습니다.
앞으로는 이 기반을 확장해 A/B 테스트 기능을 지원하고, 제품 조직이 다양한 가설 검증 실험을 더 빠르고 효율적으로 수행하도록 지원할 계획입니다.
세 가지 사례를 통해 저희 팀이 어떤 일들을 하고 있고, 어떤 환경에서 개발을 하고 있는지 설명드렸는데요. 오늘 글에서 언급한 업무 사례 이외에도 팀에서는 다양한 프로젝트를 많이 진행/계획 하고 있습니다.
이 외에도 AI를 어시스턴트로 삼아 비즈니스 임팩트와 생산성에 기여할 수 있는 과제 등, 다양한 프로젝트 또한 준비 중에 있습니다.
처음 팀을 셋업하면서 데이터 중심의 애플리케이션 설계 역량을 갖춘 팀을 만들겠다는 개인적인 목표를 세웠는데요, 점점 업무 범위를 넓혀가고, 깊이를 쌓아가면서 조금씩 목표를 향해 다가가고 있는 중입니다.
데이터 중심 애플리케이션 설계에 관심 있으신 분들, 백엔드 개발을 통해 비즈니스 임팩트를 내는데 관심 있으신 분들, 대규모 트래픽/데이터를 다루면서 팀과 함께 성장하고 싶은 분들은 적극적으로 문의 주시고 [버즈베네핏] 백엔드 개발자 (경력 3년 이상) 공고 에 지원 부탁드립니다. (커피챗도 언제나 환영합니다!)
이 이야기가 누군가에게 관심과 결심이 될 수 있기를 바라며 글을 마치겠습니다.
긴 글 읽어주셔서 감사합니다.
버즈빌 Supply 그룹의 Product Growth 팀의 Luke입니다. 저희 버즈빌에서 지난 몇 년간 겪어온 프론트엔드 아키텍처 변화를 공유하려 합니다. AngularJS에서 시작해 Vue, React를 거쳐 Next.js까지, 각 전환점에서의 고민과 선택 과정을 …
Read Article버즈빌은 2023년 한 해 동안 월간 약 1.2억, 연 기준으로 14억에 달하는 AWS 비용을 절약하였습니다. 그 경험과 팁을 여러 차례에 걸쳐 공유합니다. AWS 비용 최적화 Part 1: 버즈빌은 어떻게 월 1억 이상의 AWS 비용을 절약할 수 있었을까 (준비중) …
Read Article