{
  "id": "57db3f9a-fbe8-4ee0-9ba5-43cb8123b709",
  "slug": "ref/web/blog-bizspring-co-kr/비즈스프링-쇼츠-광고시스템-기술적-관점으로-살펴보기-1-bizspring-blog",
  "doc_type": "ref",
  "title": "비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (1) - BizSpring BLOG",
  "title_en": null,
  "one_liner": "비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (1) - BizSpring BLOG 콘텐츠로 건너뛰기 내비게이션 메뉴 인사이트 테크 활용 방법/사례 활용 방법/사례 성공사례 성공 사례 일반 광고/마케팅 에이전시 이커머스 미디어/콘텐츠 금융/핀테크 의료/헬스케",
  "summary_bullets": [
    "애드몬스터 쇼츠 광고시스템을 기술적 관점에서 다룬 시리즈로, 광고 구조 및 등록 과정을 먼저 설명한다.",
    "쇼츠 광고는 캠페인-광고 그룹-소재의 3단계 구조로 이루어져 있으며 각 단계별 설정 항목을 소개한다.",
    "광고 데이터 저장 및 처리를 위해 인 메모리 DB인 Redis와 분산 이벤트 스트리밍 플랫폼 Kafka를 활용한다.",
    "Kafka는 Producer-Broker-Consumer로 구성된 Pub/Sub 모델로 동작하며, 애드몬스터는 Kafka Streams API를 사용한다.",
    "Springboot 환경에서 Kafka Streams를 이용한 Producer(전송)와 Listener(수신 처리) 구현 방식을 코드 관점에서 설명한다."
  ],
  "body_md": "비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (1) - BizSpring BLOG\n\n콘텐츠로 건너뛰기\n\n내비게이션 메뉴\n\n인사이트\n\n테크\n\n활용 방법/사례\n\n활용 방법/사례\n\n성공사례\n\n성공 사례 일반\n\n광고/마케팅 에이전시\n\n이커머스\n\n미디어/콘텐츠\n\n금융/핀테크\n\n의료/헬스케어\n\n통신/인터넷\n\n뉴스/트렌드\n\n릴리즈 노트\n\n인터넷트렌드 ↗\n\n웹사이트 ↗\n\n# 비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (1)\n\n2025년 02월 08일 2025년 02월 11일\n테크\n\n안녕하세요. 비즈스프링입니다. 비즈스프링에서 현재 진행중인 애드몬스터 쇼츠 광고시스템을 기술적으로 살펴보려고 합니다.\n애드몬스터 쇼츠 광고시스템은 크게 『광고 등록 및 송출』 파트와 『광고 성과 정제 및 집계』 파트로 분류되어 있습니다. 그 중 오늘은 쇼츠 광고시스템을 구성하는 광고 구조 및 운영에 필요한 내용에 관해 기술적 관점으로 살펴보겠습니다.\n\n## 쇼츠 광고시스템 광고의 구조\n\n애드몬스터 쇼츠 광고는 크게 3개의 구조로 이루어져 있습니다.\n\n애드몬스터 쇼츠 광고플랫폼 구조\n\n### 캠페인\n\n캠페인 이란 가장 큰 광고 전략 단위입니다. 캠페인은 광고 그룹의 집합체 이며 노출 기간등을 공유합니다. 광고의 목표, 노출 기간에 따라 광고 전략을 수립하고 운영 할 수 있습니다.\n\n### 광고 그룹\n\n광고 그룹 이란 중간 크기의 전략 단위입니다. 유사한 광고 소재들을 공유하는 소재들의 그룹 입니다. 각 캠페인별로 하나 이상의 광고그룹을 구성 하고 있습니다. 광고 그룹별로 일 예산을 제한 할 수 있으며 광고 그룹에 포함된 광고는 이 내용을 공유하여 제어합니다.\n\n### 소재\n\n광고 소재 란 가장 작은 광고 전략 단위입니다. 일반 사용자가 흔히 알고 있는, 실제 웹사이트에 게재되는 광고 이며 광고의 목표에 따라 광고 게재에 필요한 데이터를 가지고 있습니다. 광고 소재는 항상 광고 그룹에 포함 되어 있습니다.\n\n## 쇼츠 광고시스템 광고의 등록 순서\n\n쇼츠 광고시스템 광고는 다음과 같은 순서로 등록할 수 있습니다.\n캠페인 등록 캠페인 목표 설정\n캠페인명 설정\n노출 기간 설정 (노출기간 미설정도 가능)\n\n광고 그룹 등록 광고 그룹명 설정\n광고 그룹 일 예산 설정 (일 예산 제한 미설정도 가능)\n\n소재 등록 재생될 쇼츠 설정\n섬네일 설정\n광고에 표시될 내용 설정 브랜드명\n메인 문구\n\n이 글을 읽으시는 분 중에서 애드몬스터 쇼츠 광고시스템을 기술적으로 알아보려고 하는데 구조 및 등록 과정을 왜 설명하는 것인지 궁금해하실 수 있습니다.\n이제부터 위와 같이 광고가 등록되는 과정에서 사용되는 기술들을 살펴보겠습니다.\n\n## Redis와 Kafka\n\n애드몬스터 쇼츠 광고시스템을 운영함에 있어 가장 중요한 두 가지 요소는 Redis 와 Kafka 입니다.\n\n### Redis란?\n\nRedis\n\nRedis(Remote Dictionary Server)란 키(Key)와 값(Value)의 쌍 으로 이루어진(프로그래밍의 Map) 구조의 데이터를 가진 인 메모리(In-Memory) 데이터베이스 관리 시스템입니다.\nMySQL, Oracle 같은 정형 데이터를 다루는 관계형 데이터베이스(SQL)와 다르게 비정형 데이터를 다루는 비관계형 데이터베이스(NoSQL) 를 다룰 수 있습니다. 즉, 데이터에 대한 고정된 스키마가 없이 여러 종류의 데이터 적재가 가능합니다.\n또, 하드디스크에 데이터를 저장하는 일반 데이터베이스와 다르게 컴퓨터의 메모리에 데이터를 저장 및 처리하는 인 메모리 시스템 인 것이 특징입니다. 인 메모리 시스템이기 때문에 일반 하드디스크보다 훨씬 빠른 메모리에서 데이터를 처리하기 때문에 매우 빠른 성능을 제공하지만, 메모리 사용량이 많아지는 단점도 존재합니다.\n이러한 특징으로 인하여 Redis는 메시지 브로커 , 캐시 서버 등 데이터가 복잡하지 않으면서도 빠른 읽기 및 쓰기 성능을 요하는 곳에 사용 하고 있습니다.\n\n### Kafka란?\n\nApache Kafka\n\nKafka란 아파치 재단에서 제공하는 분산형 이벤트 스트리밍 플랫폼 입니다. 메시지 지향 미들웨어(MOM)을 구현한 메시지 큐 형식으로 동작하는 Pub/Sub 모델 형식의 프로그램인 것이 특징입니다.\n\nPub/Sub 모델(출처: https://www.baeldung.com/cs/publisher-subscriber-model)\n\nPub/Sub 모델 이란 Publish / Subscribe 의 줄임말로 서버 간의 메시지(데이터나 이벤트) 전달을 직접하지 않고 중간에 중재자가 존재하여 데이터를 전달하는 모델 입니다.\n메시지를 전달하는 중재자가 존재하기 때문에 서버 간의 결합도가 느슨해져 한쪽 시스템에 문제가 발생하더라도 연쇄 작용이 발생할 확률을 낮출 수 있습니다 . 또, Kafka는 설정한 만큼 디스크에 메시지를 저장할 수 있으므로 메시지를 받는 쪽 시스템이 데이터 처리에 느려지거나 문제가 발생하여 작동하지 못하더라도 메시지 손실을 최대한 줄일 수 있습니다 .\n\nApache Kafka 구성 요소 (출처: https://www.linkedin.com/pulse/kafka-simplified-introduction-apache-akash-sur-hrygc)\n\nKafka에서는 Producer(Publisher), Consumer(Subscribe), Broker(중재자) 라는 이름으로 Pub/Sub 모델을 구현하였습니다. Producer가 Consumer로 메시지를 보낼 때는 메시지를 어느 곳에서 받을 지 지정하는 Topic 을 명시하여 메시지를 받아서 이벤트를 처리합니다.\n애드몬스터 쇼츠 광고플랫폼에서는 Kafka에서 제공하는 Streams API인 Kafka Streams 를 사용하여 데이터를 처리하고 있습니다.\n이전 비즈스프링 기술 블로그에서 ‘Kafka Streams’에 대해 살펴보았습니다. Kafka Streams에 대해 확인하고 싶으시다면, 아래 링크에서 해당 블로그 글을 참고해 주세요. 📑[비즈스프링블로그] 🔽 Kafka Streams: 실시간 데이터 처리의 혁신\n\n## 애드몬스터 쇼츠 광고플랫폼 내 Kafka Streams 구현 방식\n\n사용자가 많아질수록 데이터의 저장 및 업데이트 빈도가 높아지게 되는 광고 데이터 (캠페인, 광고그룹, 소재) 저장 시, Kafka Streams를 사용하고 있습니다.\n해당 내용의 구현 방법에 대해 간략하게 살펴보겠습니다.\n\n### Producer (데이터를 보내는 서버)\n\n먼저 Springboot에서 Kafka Streams를 사용하기 위해 Spring Kafka를 import 합니다.\n\nKafka Streams를 통하여 데이터를 전달 및 저장할 서비스를 지정하기 위한 Annotation을 생성합니다.\n\n데이터를 저장할 Service에 Annotation을 지정해줍니다.\n\n해당 코드로 상황에 맞게 데이터를 생성하고 Topic명과 내용을 담아 전송합니다. 58 라인의 this.kafkaCreativeTemplate.send 함수에 메시지를 받을 Topic명과 데이터를 삽입하여 전송합니다.\n\n### Listener 서버 (데이터를 받아서 처리하는 서버)\n\n먼저 Springboot에서 Kafka Streams를 사용하기 위해 Spring Kafka를 import 합니다.\n\nKafka Streams의 전송 응답을 받는 KafkaListener를 생성합니다. 각 Topic별로 Listener를 생성한 후 해당 응답을 받아서 메시지를 처리합니다. 해당 Topic의 메시지를 받아 처리할 메소드를 생성하고 @KafkaListener라는 어노테이션에 응답할 Topic을 지정하여 설정합니다.\n해당 메소드의 작업이 이루어지고 나서 acknowledgment.acknowledge() ; 코드를 호출하여 Kafka에 해당 메시지에 대해 처리가 완료되었다고 전달하여 Kafka가 메시지를 정상적으로 처리했다고 판단하게 전달하여 서비스가 정상적으로 마칠 수 있게 해줍니다.\n\n이상으로, 애드몬스터 쇼츠 광고시스템 중 광고 구조 및 운영에 필요한 내용에 대해 정리해보았습니다.\n유튜브 쇼츠 광고플랫폼에 대해 궁금한 점이 있다면 언제든지 문의 해주시길 바랍니다. 감사합니다.\n\n최신 마케팅/고객 데이터 활용 사례를 받아보실 수 있습니다.\n비즈스프링 뉴스레터 구독하기 →\n\n## Related Posts via Categories\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\nAI 시대, 데이터도 설명이 필요합니다\nMCP 클라이언트는 Authorization Server를 어떻게 찾는가: 공식 MCP TypeScript SDK와 VS Code 구현 비교\nRAG 시대의 GEO: AI가 콘텐츠를 읽는 방식과 스키마의 진짜 역할\nAI 에이전트로 웹 데이터 수집 가능 여부 자동 검증하기\nGA4 Intraday 실시간 테이블, 대시보드 원천 데이터로 바로 사용할 수 있을까?\n워크플로우 오케스트레이션 플랫폼 Temporal 알아보기\niOS 14.5부터 GA4까지, 환경 변화가 가져온 업무 폭증을 해결하는 실무 전략은…?\n\n다음에 대해 검색하기...\n\n최신 글 둘러보기\n\n기존 SEO와 무엇이 같고 무엇이 다른가\n\n콘텐츠가 답인 걸 모르는 사람은 없습니다 — 문제는 지속입니다\n\n광고비를 늘리지 않고 매출을 늘린 회사들은 무엇을 했나\n\n코호트로 비교하면 광고 예산 판단이 달라집니다\n\nGEO를 위한 글쓰기를 위한 작은 노하우\n\n(해외동향) 광고주가 광고플랫폼 리포트에서 자체 측정으로 옮겨가고 있다.\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\n\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\n\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\n\n마케팅 자동화, 무엇부터 자동화해야 할까?\n\n출처: https://blog.bizspring.co.kr/%ed%85%8c%ed%81%ac/%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%eb%b3%b4%ea%b8%b01/",
  "related_slugs": [],
  "faq": [
    {
      "a": "캠페인, 광고 그룹, 소재의 3단계 구조로 이루어져 있습니다. 캠페인은 가장 큰 전략 단위로 광고 그룹의 집합체이며 노출 기간 등을 공유하고, 광고 그룹은 유사한 소재들을 묶은 중간 단위로 일 예산을 제한할 수 있으며, 소재는 실제 웹사이트에 게재되는 가장 작은 단위입니다.",
      "q": "애드몬스터 쇼츠 광고의 구조는 어떻게 되어 있나요?"
    },
    {
      "a": "먼저 캠페인 목표, 캠페인명, 노출 기간을 설정하여 캠페인을 등록합니다. 이후 광고 그룹명과 일 예산을 설정해 광고 그룹을 등록하고, 마지막으로 재생될 쇼츠, 섬네일, 브랜드명, 메인 문구 등을 설정해 소재를 등록합니다.",
      "q": "광고는 어떤 순서로 등록하나요?"
    },
    {
      "a": "Redis는 키와 값 쌍으로 이루어진 인 메모리 데이터베이스로, 하드디스크가 아닌 메모리에서 데이터를 처리해 매우 빠른 읽기/쓰기 성능을 제공합니다. 이런 특징 때문에 메시지 브로커나 캐시 서버처럼 빠른 처리가 필요한 곳에 사용됩니다.",
      "q": "Redis는 왜 사용하나요?"
    },
    {
      "a": "Kafka는 아파치 재단이 제공하는 분산형 이벤트 스트리밍 플랫폼으로, Pub/Sub 모델을 기반으로 Producer와 Consumer 사이에서 Broker가 메시지를 중재합니다. 이를 통해 서버 간 결합도를 낮추고 메시지 손실 위험을 줄일 수 있으며, 애드몬스터는 Kafka Streams API로 광고 데이터를 처리합니다.",
      "q": "Kafka는 어떤 역할을 하나요?"
    },
    {
      "a": "Producer 서버에서는 Spring Kafka를 이용해 캠페인, 광고그룹, 소재 데이터를 생성하고 Topic명과 함께 전송합니다. Listener 서버에서는 @KafkaListener 어노테이션으로 각 Topic별 메시지를 수신해 처리한 뒤 acknowledgment.acknowledge()를 호출해 처리 완료를 Kafka에 알립니다.",
      "q": "Kafka Streams는 실제로 어떻게 구현되어 있나요?"
    }
  ],
  "jsonld": null,
  "keywords": [],
  "source_id": "https://blog.bizspring.co.kr/%ed%85%8c%ed%81%ac/%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%eb%b3%b4%ea%b8%b01/",
  "video_url": null,
  "duration_sec": null,
  "thumbnail_url": null,
  "image_url": null,
  "caption": null,
  "solution_slug": null,
  "captured_at": null,
  "width": null,
  "height": null,
  "created_at": "2026-09-06T11:45:29.007776+00:00",
  "updated_at": "2026-09-06T11:45:29.007776+00:00",
  "visibility": "public",
  "source_stage": "1",
  "anonymized": true,
  "source_key": "web-blog",
  "origin": "ingest",
  "locked": false,
  "locked_by": null,
  "locked_at": null,
  "gate_state": {
    "g1": {
      "hits": [],
      "pass": true
    },
    "g2": {
      "pass": true,
      "total": 43,
      "issues": [
        "다른 문서와 겹치는 말이 대부분입니다"
      ],
      "applies": true
    },
    "g3": {
      "pass": true,
      "required": false
    },
    "stage": "1",
    "decided_at": "2026-09-12T15:43:23.696Z"
  },
  "raw_id": "de491612-6cee-43f3-b1db-1a2259f5be05",
  "search_text": "비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (1) - BizSpring BLOG  비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (1) - BizSpring BLOG 콘텐츠로 건너뛰기 내비게이션 메뉴 인사이트 테크 활용 방법/사례 활용 방법/사례 성공사례 성공 사례 일반 광고/마케팅 에이전시 이커머스 미디어/콘텐츠 금융/핀테크 의료/헬스케  비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (1) - BizSpring BLOG\n\n콘텐츠로 건너뛰기\n\n내비게이션 메뉴\n\n인사이트\n\n테크\n\n활용 방법/사례\n\n활용 방법/사례\n\n성공사례\n\n성공 사례 일반\n\n광고/마케팅 에이전시\n\n이커머스\n\n미디어/콘텐츠\n\n금융/핀테크\n\n의료/헬스케어\n\n통신/인터넷\n\n뉴스/트렌드\n\n릴리즈 노트\n\n인터넷트렌드 ↗\n\n웹사이트 ↗\n\n# 비즈스프링 쇼츠 광고시스템 기술적 관점으로 살펴보기 (1)\n\n2025년 02월 08일 2025년 02월 11일\n테크\n\n안녕하세요. 비즈스프링입니다. 비즈스프링에서 현재 진행중인 애드몬스터 쇼츠 광고시스템을 기술적으로 살펴보려고 합니다.\n애드몬스터 쇼츠 광고시스템은 크게 『광고 등록 및 송출』 파트와 『광고 성과 정제 및 집계』 파트로 분류되어 있습니다. 그 중 오늘은 쇼츠 광고시스템을 구성하는 광고 구조 및 운영에 필요한 내용에 관해 기술적 관점으로 살펴보겠습니다.\n\n## 쇼츠 광고시스템 광고의 구조\n\n애드몬스터 쇼츠 광고는 크게 3개의 구조로 이루어져 있습니다.\n\n애드몬스터 쇼츠 광고플랫폼 구조\n\n### 캠페인\n\n캠페인 이란 가장 큰 광고 전략 단위입니다. 캠페인은 광고 그룹의 집합체 이며 노출 기간등을 공유합니다. 광고의 목표, 노출 기간에 따라 광고 전략을 수립하고 운영 할 수 있습니다.\n\n### 광고 그룹\n\n광고 그룹 이란 중간 크기의 전략 단위입니다. 유사한 광고 소재들을 공유하는 소재들의 그룹 입니다. 각 캠페인별로 하나 이상의 광고그룹을 구성 하고 있습니다. 광고 그룹별로 일 예산을 제한 할 수 있으며 광고 그룹에 포함된 광고는 이 내용을 공유하여 제어합니다.\n\n### 소재\n\n광고 소재 란 가장 작은 광고 전략 단위입니다. 일반 사용자가 흔히 알고 있는, 실제 웹사이트에 게재되는 광고 이며 광고의 목표에 따라 광고 게재에 필요한 데이터를 가지고 있습니다. 광고 소재는 항상 광고 그룹에 포함 되어 있습니다.\n\n## 쇼츠 광고시스템 광고의 등록 순서\n\n쇼츠 광고시스템 광고는 다음과 같은 순서로 등록할 수 있습니다.\n캠페인 등록 캠페인 목표 설정\n캠페인명 설정\n노출 기간 설정 (노출기간 미설정도 가능)\n\n광고 그룹 등록 광고 그룹명 설정\n광고 그룹 일 예산 설정 (일 예산 제한 미설정도 가능)\n\n소재 등록 재생될 쇼츠 설정\n섬네일 설정\n광고에 표시될 내용 설정 브랜드명\n메인 문구\n\n이 글을 읽으시는 분 중에서 애드몬스터 쇼츠 광고시스템을 기술적으로 알아보려고 하는데 구조 및 등록 과정을 왜 설명하는 것인지 궁금해하실 수 있습니다.\n이제부터 위와 같이 광고가 등록되는 과정에서 사용되는 기술들을 살펴보겠습니다.\n\n## Redis와 Kafka\n\n애드몬스터 쇼츠 광고시스템을 운영함에 있어 가장 중요한 두 가지 요소는 Redis 와 Kafka 입니다.\n\n### Redis란?\n\nRedis\n\nRedis(Remote Dictionary Server)란 키(Key)와 값(Value)의 쌍 으로 이루어진(프로그래밍의 Map) 구조의 데이터를 가진 인 메모리(In-Memory) 데이터베이스 관리 시스템입니다.\nMySQL, Oracle 같은 정형 데이터를 다루는 관계형 데이터베이스(SQL)와 다르게 비정형 데이터를 다루는 비관계형 데이터베이스(NoSQL) 를 다룰 수 있습니다. 즉, 데이터에 대한 고정된 스키마가 없이 여러 종류의 데이터 적재가 가능합니다.\n또, 하드디스크에 데이터를 저장하는 일반 데이터베이스와 다르게 컴퓨터의 메모리에 데이터를 저장 및 처리하는 인 메모리 시스템 인 것이 특징입니다. 인 메모리 시스템이기 때문에 일반 하드디스크보다 훨씬 빠른 메모리에서 데이터를 처리하기 때문에 매우 빠른 성능을 제공하지만, 메모리 사용량이 많아지는 단점도 존재합니다.\n이러한 특징으로 인하여 Redis는 메시지 브로커 , 캐시 서버 등 데이터가 복잡하지 않으면서도 빠른 읽기 및 쓰기 성능을 요하는 곳에 사용 하고 있습니다.\n\n### Kafka란?\n\nApache Kafka\n\nKafka란 아파치 재단에서 제공하는 분산형 이벤트 스트리밍 플랫폼 입니다. 메시지 지향 미들웨어(MOM)을 구현한 메시지 큐 형식으로 동작하는 Pub/Sub 모델 형식의 프로그램인 것이 특징입니다.\n\nPub/Sub 모델(출처: https://www.baeldung.com/cs/publisher-subscriber-model)\n\nPub/Sub 모델 이란 Publish / Subscribe 의 줄임말로 서버 간의 메시지(데이터나 이벤트) 전달을 직접하지 않고 중간에 중재자가 존재하여 데이터를 전달하는 모델 입니다.\n메시지를 전달하는 중재자가 존재하기 때문에 서버 간의 결합도가 느슨해져 한쪽 시스템에 문제가 발생하더라도 연쇄 작용이 발생할 확률을 낮출 수 있습니다 . 또, Kafka는 설정한 만큼 디스크에 메시지를 저장할 수 있으므로 메시지를 받는 쪽 시스템이 데이터 처리에 느려지거나 문제가 발생하여 작동하지 못하더라도 메시지 손실을 최대한 줄일 수 있습니다 .\n\nApache Kafka 구성 요소 (출처: https://www.linkedin.com/pulse/kafka-simplified-introduction-apache-akash-sur-hrygc)\n\nKafka에서는 Producer(Publisher), Consumer(Subscribe), Broker(중재자) 라는 이름으로 Pub/Sub 모델을 구현하였습니다. Producer가 Consumer로 메시지를 보낼 때는 메시지를 어느 곳에서 받을 지 지정하는 Topic 을 명시하여 메시지를 받아서 이벤트를 처리합니다.\n애드몬스터 쇼츠 광고플랫폼에서는 Kafka에서 제공하는 Streams API인 Kafka Streams 를 사용하여 데이터를 처리하고 있습니다.\n이전 비즈스프링 기술 블로그에서 ‘Kafka Streams’에 대해 살펴보았습니다. Kafka Streams에 대해 확인하고 싶으시다면, 아래 링크에서 해당 블로그 글을 참고해 주세요. 📑[비즈스프링블로그] 🔽 Kafka Streams: 실시간 데이터 처리의 혁신\n\n## 애드몬스터 쇼츠 광고플랫폼 내 Kafka Streams 구현 방식\n\n사용자가 많아질수록 데이터의 저장 및 업데이트 빈도가 높아지게 되는 광고 데이터 (캠페인, 광고그룹, 소재) 저장 시, Kafka Streams를 사용하고 있습니다.\n해당 내용의 구현 방법에 대해 간략하게 살펴보겠습니다.\n\n### Producer (데이터를 보내는 서버)\n\n먼저 Springboot에서 Kafka Streams를 사용하기 위해 Spring Kafka를 import 합니다.\n\nKafka Streams를 통하여 데이터를 전달 및 저장할 서비스를 지정하기 위한 Annotation을 생성합니다.\n\n데이터를 저장할 Service에 Annotation을 지정해줍니다.\n\n해당 코드로 상황에 맞게 데이터를 생성하고 Topic명과 내용을 담아 전송합니다. 58 라인의 this.kafkaCreativeTemplate.send 함수에 메시지를 받을 Topic명과 데이터를 삽입하여 전송합니다.\n\n### Listener 서버 (데이터를 받아서 처리하는 서버)\n\n먼저 Springboot에서 Kafka Streams를 사용하기 위해 Spring Kafka를 import 합니다.\n\nKafka Streams의 전송 응답을 받는 KafkaListener를 생성합니다. 각 Topic별로 Listener를 생성한 후 해당 응답을 받아서 메시지를 처리합니다. 해당 Topic의 메시지를 받아 처리할 메소드를 생성하고 @KafkaListener라는 어노테이션에 응답할 Topic을 지정하여 설정합니다.\n해당 메소드의 작업이 이루어지고 나서 acknowledgment.acknowledge() ; 코드를 호출하여 Kafka에 해당 메시지에 대해 처리가 완료되었다고 전달하여 Kafka가 메시지를 정상적으로 처리했다고 판단하게 전달하여 서비스가 정상적으로 마칠 수 있게 해줍니다.\n\n이상으로, 애드몬스터 쇼츠 광고시스템 중 광고 구조 및 운영에 필요한 내용에 대해 정리해보았습니다.\n유튜브 쇼츠 광고플랫폼에 대해 궁금한 점이 있다면 언제든지 문의 해주시길 바랍니다. 감사합니다.\n\n최신 마케팅/고객 데이터 활용 사례를 받아보실 수 있습니다.\n비즈스프링 뉴스레터 구독하기 →\n\n## Related Posts via Categories\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\nAI 시대, 데이터도 설명이 필요합니다\nMCP 클라이언트는 Authorization Server를 어떻게 찾는가: 공식 MCP TypeScript SDK와 VS Code 구현 비교\nRAG 시대의 GEO: AI가 콘텐츠를 읽는 방식과 스키마의 진짜 역할\nAI 에이전트로 웹 데이터 수집 가능 여부 자동 검증하기\nGA4 Intraday 실시간 테이블, 대시보드 원천 데이터로 바로 사용할 수 있을까?\n워크플로우 오케스트레이션 플랫폼 Temporal 알아보기\niOS 14.5부터 GA4까지, 환경 변화가 가져온 업무 폭증을 해결하는 실무 전략은…?\n\n다음에 대해 검색하기...\n\n최신 글 둘러보기\n\n기존 SEO와 무엇이 같고 무엇이 다른가\n\n콘텐츠가 답인 걸 모르는 사람은 없습니다 — 문제는 지속입니다\n\n광고비를 늘리지 않고 매출을 늘린 회사들은 무엇을 했나\n\n코호트로 비교하면 광고 예산 판단이 달라집니다\n\nGEO를 위한 글쓰기를 위한 작은 노하우\n\n(해외동향) 광고주가 광고플랫폼 리포트에서 자체 측정으로 옮겨가고 있다.\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\n\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\n\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\n\n마케팅 자동화, 무엇부터 자동화해야 할까?\n\n출처: https://blog.bizspring.co.kr/%ed%85%8c%ed%81%ac/%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%eb%b3%b4%ea%b8%b01/",
  "embedding": null,
  "embedded_at": null,
  "embedding_hash": null,
  "map_x": null,
  "map_y": null,
  "backlinks": [],
  "html_url": "https://bizspring.ai/kb/ref/web/blog-bizspring-co-kr/비즈스프링-쇼츠-광고시스템-기술적-관점으로-살펴보기-1-bizspring-blog",
  "markdown_url": "https://bizspring.ai/kb/ref/web/blog-bizspring-co-kr/비즈스프링-쇼츠-광고시스템-기술적-관점으로-살펴보기-1-bizspring-blog.md"
}