BizSpring.ai AI 모드

지식센터 / 레퍼런스

비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (2) - BizSpring BLOG

비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (2) - BizSpring BLOG 콘텐츠로 건너뛰기 내비게이션 메뉴 인사이트 테크 활용 방법/사례 활용 방법/사례 성공사례 성공 사례 일반 광고/마케팅 에이전시 이커머스 미디어/콘텐츠 금융/핀테크 의료/헬스케

핵심 요약

  • 애드몬스터 쇼츠 광고시스템의 광고 송출 과정을 등록→검수→데이터 적재→선별·출력 단계로 설명한다.
  • 검수 완료된 광고는 목록 출력을 위해 Redis에 데이터를 저장하고, 이를 통해 노출·잔액요건에 맞는 소재를 선별한다.
  • Redis는 인메모리 Key-Value 데이터베이스로 빠른 읽기·쓰기 성능이 필요한 곳에 사용되며, Redis Cluster로 여러 노드에 데이터를 자동 샤딩한다.
  • Redis Cluster는 Master-Slave 구조로 동작하며 Lettuce, Redisson 같은 라이브러리가 데이터 위치를 자동 취득해 단점을 보완한다.
  • 쇼츠 광고플랫폼은 광고 정보(Hash 자료형)와 광고 소비자 정보(Set 자료형)를 Redis에 저장해 캠페인·광고그룹 상태 체크와 소재 송출·조회·리워드 여부 확인에 활용한다.

비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (2) - BizSpring BLOG

콘텐츠로 건너뛰기

내비게이션 메뉴

인사이트

테크

활용 방법/사례

활용 방법/사례

성공사례

성공 사례 일반

광고/마케팅 에이전시

이커머스

미디어/콘텐츠

금융/핀테크

의료/헬스케어

통신/인터넷

뉴스/트렌드

릴리즈 노트

인터넷트렌드 ↗

웹사이트 ↗

# 비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (2)

2025년 02월 27일 2025년 02월 27일

테크

비즈스프링에서 현재 진행중인 애드몬스터 쇼츠 광고시스템을 기술적으로 살펴보려고 합니다.

지난 시간에는 쇼츠 광고시스템을 구성하는 광고 구조 및 운영에 필요한 내용에 대해 살펴보았었는데요. 이번 시간엔 광고 송출에 대한 내용에 관해 기술적 관점으로 살펴보겠습니다. 이전 글 보기: 비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (1)

쇼츠 광고시스템 광고의 송출 과정

쇼츠 광고시스템 광고의 송출 과정은 다음과 같습니다.

광고 등록

광고 검수

검수 완료 및 광고 데이터 적재

노출/잔액요건에 따른 광고 소재 선별 및 출력

이 과정에 대해 기술적으로 살펴보겠습니다.

광고 등록

광고 목록에 출력하고 싶은 광고를 등록합니다. 가장 큰 광고 전략 단위인 캠페인 , 중간 단위인 광고 그룹 , 마지막으로 실제 게재되는 광고인 소재 를 등록합니다.

등록이 완료되면, 소재는 자동적으로 검수 단계에 진입하게 됩니다.

광고 검수

광고 등록이 완료되면 광고가 바로 게재가 되는 것이 아닌, 검수를 받아 승인을 받게 됩니다. 검수 란 해당 소재 생성시에 기입 했던 설정 내용이 이용 약관 혹은 규정에 어긋나지 않는지, 소재 내용이 실제 쇼츠 내용과 관련성이 있는 지 등을 확인 하는 단계입니다.

광고 검수는 비즈스프링에서 진행하게 되며 내용에 따라 검수 보류 혹은 검수 완료 처리됩니다.

검수 완료 및 광고 데이터 적재

검수 처리가 완료되면 광고 목록에 출력을 하기 위해 Redis에 데이터를 저장하게 됩니다.

노출/잔액요건에 따른 광고 소재 선별 및 출력

사용자에게 보여 줄 광고를 선별하고 광고 페이지에 출력합니다. 사용자가 해당 광고를 보았는지, 해당 광고가 출력하기에 알맞은 상태인지 등을 Redis에 있는 데이터를 이용하여 확인 후 조건에 맞는 광고 데이터를 전송하여 광고 목록 페이지에 출력합니다.

Redis

애드몬스터 쇼츠 광고시스템 광고 등록 단계에서 Redis와 Kafka Streams를 이용하게 됩니다. 이전 글에서는 Kafka Streams에 대해 설명을 하였으니 이번 시간에는 Redis 에 대해 알아보겠습니다.

Redis

Redis란?

Redis(Remote Dictionary Server)란 키(Key)와 값(Value)의 쌍 으로 이루어진(프로그래밍의 Map) 구조의 데이터를 가진 인 메모리(In-Memory) 데이터베이스 관리 시스템입니다. 하드디스크에 데이터를 저장하는 일반 데이터베이스와 다르게 컴퓨터 메모리에 데이터를 저장 및 처리하는 것이 특징입니다.

이러한 특징으로 인하여 Redis는 메시지 브로커, 캐시 서버 등 데이터가 복잡하지 않으면서도 빠른 읽기 및 쓰기 성능 을 요하는 곳에 사용하고 있습니다.

Redis Cluster

Redis Cluster란 Redis 서버를 여러개의 노드로 구성하고 Redis 에 들어오는 데이터를 자동으로 Sharding 해주는 기술입니다.

Redis Cluster (출처: https://ankitsahay.medium.com/redis-multi-node-deployment-replication-vs-cluster-vs-sentinels-8099d15dcc09)

Redis Cluster는 Master-Slave 노드 를 구성하고 있dmau, Master-Slave 노드의 특징은 다음과 같습니다.

각 노드별로 하나의 Master 존재

각 Master는 최소 1개 이상의 Slave 존재

Master는 Read-Write Mode로 동작 데이터 쓰기의 경우 Master node에서 처리

Slave는 Read-Only Mode로 동작 데이터 읽기의 경우 Master 혹은 Slave에서 처리

Redis Master-Slave 노드 방식에는 한 가지 단점이 존재합니다. 바로 다음과 같은 경우입니다.

데이터 쓰기 시 여러 개의 Master 노드 중 하나의 노드에 저장됩니다. 이 상황에서는 별 다른 문제가 없습니다 .

Client(데이터를 요청한 주체)가 데이터 읽기 를 요청 시에 다른 Master 노드에 저장되어 있는 데이터를 요청하게 되면 해당 데이터가 저장된 Master 노드의 정보 를 알려주게 됩니다. Client는 해당 정보를 이용하여 해당 Master 노드에 다시 데이터를 요청 해서 받을 수 있습니다. 즉, 해당 데이터가 어디에 존재하는지 알지 못한 상태에서는 데이터 취득에 번거로움이 발생 할 수 있습니다.

하지만, Redis Cluster를 지원하는 라이브러리( Lettuce, Redisson 등 )은 대부분 Master 노드 정보를 통해 자동으로 데이터를 취득하는 기능을 제공하고 있기 때문에 해당 단점을 상쇄 시킬 수 있습니다.

Redis Lettuce

쇼츠 광고플랫폼에서 사용하는 Redis 데이터

쇼츠 광고플랫폼에서 사용하는 데이터 중 Redis에 적재해서 사용하는 데이터는 광고의 정보 , 광고 소비자의 정보 를 사용하고 있습니다.

광고 정보

광고 정보의 경우 Hash 자료형으로 데이터를 저장 및 사용하고 있습니다. Hash 자료형은 Key-Value 한 쌍으로 이루어져 있는 레코드 유형 입니다. (Java의 Map 혹은 Python의 Dictionary 와 유사한 구조입니다)

Hash 자료형에 대해 자세히 알고 싶으시다면 다음 링크를 참조해주세요.

https://redis.io/docs/latest/develop/data-types/hashes/

×

광고의 정보를 캠페인, 광고 그룹 별로 데이터를 저장하여 사용함으로써 빠른 시간에 데이터 취득 및 광고 목록 출력에 도움을 주고 있습니다.

캠페인

127.0.0.1:6379> hgetall bsa:campaign:cmp-10-000000000001 1) "_class" 2) "kr.co.bizspring.ads.redis.domain.RedisCampaign" 3) "accountNo" 4) "2" 5) "campaignNm" 6) "캠페인명" 7) "campaignNo" 8) "1" 9) "createdAt" 10) "2025-01-14T12:43:11.395164332" ... 15) "locked" 16) "0" 17) "paused" 18) "0"

캠페인 ON/OFF 여부(locked), 캠페인 게시 상태(paused) 등을 체크하여 해당 캠페인 하위에 존재하는 광고 가능 여부를 체크합니다.

광고 그룹

127.0.0.1:6379> hgetall bsa:adgroup:grp-20-000000000009 1) "_class" 2) "kr.co.bizspring.ads.redis.domain.RedisAdgroup" 3) "accountNo" 4) "1" 5) "adgroupNm" 6) "광고그룹명" 7) "adgroupNo" 8) "9" ... 19) "locked" 20) "0" 21) "paused" 22) "0"

광고그룹 ON/OFF 여부(locked), 광고그룹 게시 상태(paused), 광고 일 예산 정보(budget) 를 체크하여 광고 가능 여부를 체크합니다.

광고 소비자 정보

광고 소비자의 경우 Set 자료형으로 데이터를 저장 및 사용하고 있습니다. Set 자료형은 고유한 데이터를 여러 개 가지고 있는 순서 없는 집합 자료구조입니다. (Java의 Set 혹은 Python의 Set 와 유사한 구조입니다.)

소비자별 조회한 광고의 정보를 가지고 있습니다.

Set 자료형에 대해 자세히 알고 싶으시다면 다음 링크를 참조해주세요.

https://redis.io/docs/latest/develop/data-types/sets/

×

소비자의 ID 데이터에 소비자가 조회한 광고 소재의 정보 목록이 출력됩니다.

198.18.1.244:6379> smembers bsa:user_ads:queen001__#__ads-20-000000000009:idx 1) "bsa:user_ads:userId:queen001" 2) "bsa:user_ads:campaignId:cmp-20-000000000009"

정보 목록은 Hash 구조로 이루어져 있습니다. 해당 목록 조회 시 광고 목록 송출, 조회 및 리워드 여부 를 체크합니다.

198.18.2.215:6379> type bsa:user_ads:queen100__#__ads-10-000000000012 hash 198.18.1.244:6379> hgetall bsa:user_ads:queen100__#__ads-10-000000000012 1) "action.[preview]" 2) "preview,722563781OLZ4AJ0,1737012359172,2025-01-16 16:25:59" ... 13) "userId" 14) "queen100"

이상으로, 애드몬스터 쇼츠 광고시스템 중 광고 송출에 필요한 내용에 대해 정리해보았습니다. 쇼츠 광고플랫폼에 대해 궁금한 점이 있다면 언제든지 문의 해주시길 바랍니다.

감사합니다.

최신 마케팅/고객 데이터 활용 사례를 받아보실 수 있습니다.

비즈스프링 뉴스레터 구독하기 →

구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험

AI가 React 앱을 직접 디버깅 – Agent 기반 디버깅

ChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간

AI 시대, 데이터도 설명이 필요합니다

MCP 클라이언트는 Authorization Server를 어떻게 찾는가: 공식 MCP TypeScript SDK와 VS Code 구현 비교

RAG 시대의 GEO: AI가 콘텐츠를 읽는 방식과 스키마의 진짜 역할

AI 에이전트로 웹 데이터 수집 가능 여부 자동 검증하기

GA4 Intraday 실시간 테이블, 대시보드 원천 데이터로 바로 사용할 수 있을까?

워크플로우 오케스트레이션 플랫폼 Temporal 알아보기

iOS 14.5부터 GA4까지, 환경 변화가 가져온 업무 폭증을 해결하는 실무 전략은…?

다음에 대해 검색하기...

최신 글 둘러보기

기존 SEO와 무엇이 같고 무엇이 다른가

콘텐츠가 답인 걸 모르는 사람은 없습니다 — 문제는 지속입니다

광고비를 늘리지 않고 매출을 늘린 회사들은 무엇을 했나

코호트로 비교하면 광고 예산 판단이 달라집니다

GEO를 위한 글쓰기를 위한 작은 노하우

(해외동향) 광고주가 광고플랫폼 리포트에서 자체 측정으로 옮겨가고 있다.

구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험

AI가 React 앱을 직접 디버깅 – Agent 기반 디버깅

ChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간

마케팅 자동화, 무엇부터 자동화해야 할까?

출처: https://blog.bizspring.co.kr/%ed%85%8c%ed%81%ac/%eb%b9%84%ec%a6%88%ec%8a%a4%ed%94%84%eb%a7%81-%ec%87%bc%ec%b8%a0-%ea%b4%91%ea%b3%a0%ec%8b%9c%ec%8a%a4%ed%85%9c-%ea%b8%b0%ec%88%a0%ec%a0%81-%ea%b4%80%ec%a0%90%ec%9c%bc%eb%a1%9c-%ec%82%b4%ed%8e%b4/

자주 묻는 질문

쇼츠 광고가 등록되면 바로 노출되나요?

아니요, 광고 등록이 완료되면 자동으로 검수 단계에 진입하며 비즈스프링이 이용약관·규정 위반 여부와 소재 관련성을 확인한 후 검수 완료되어야 노출됩니다.

검수가 끝난 광고 데이터는 어디에 저장되나요?

검수가 완료되면 광고 목록 출력을 위해 Redis에 데이터를 저장합니다. 이후 노출 시 이 데이터를 이용해 조건에 맞는 광고를 선별해 출력합니다.

Redis를 왜 사용하나요?

Redis는 컴퓨터 메모리에 데이터를 저장·처리하는 인메모리 데이터베이스로 빠른 읽기·쓰기 성능을 제공합니다. 이런 특징 때문에 메시지 브로커나 캐시 서버처럼 빠른 처리가 필요한 곳에 사용됩니다.

Redis Cluster의 Master-Slave 구조에는 단점이 없나요?

클라이언트가 데이터가 저장된 Master 노드를 모른 채 다른 Master에 읽기를 요청하면 해당 데이터가 있는 노드 정보를 다시 받아 재요청해야 하는 번거로움이 있습니다. 다만 Lettuce, Redisson 같은 라이브러리가 이를 자동으로 처리해 단점을 상쇄합니다.

Redis에 저장되는 광고 정보와 소비자 정보는 어떤 형태인가요?

광고 정보는 Hash 자료형으로 캠페인·광고그룹 단위로 저장되어 ON/OFF 여부, 게시 상태 등을 체크하는 데 사용됩니다. 광고 소비자 정보는 Set 자료형으로 저장되어 소비자별 조회한 광고 소재 정보를 관리하며, 송출·조회·리워드 여부를 확인하는 데 쓰입니다.

다른 표현: Markdown · JSON · 최종 갱신 2026-09-06