<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>실습 예제 on Advanced Beginner</title><link>https://advanced-beginner.github.io/ko/docs/kafka/examples/</link><description>Recent content in 실습 예제 on Advanced Beginner</description><generator>Hugo</generator><language>ko-KR</language><managingEditor>d8lzz1gpw@mozmail.com (kimbenji)</managingEditor><webMaster>d8lzz1gpw@mozmail.com (kimbenji)</webMaster><lastBuildDate>Mon, 23 Mar 2026 19:08:15 +0900</lastBuildDate><atom:link href="https://advanced-beginner.github.io/ko/docs/kafka/examples/index.xml" rel="self" type="application/rss+xml"/><item><title>환경 구성</title><link>https://advanced-beginner.github.io/ko/docs/kafka/examples/setup/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/ko/docs/kafka/examples/setup/</guid><description>&lt;p&gt;Spring Boot에서 Kafka를 사용하기 위한 환경 설정 레퍼런스입니다.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kafka 실행&lt;/strong&gt;: Docker Compose로 KRaft 모드 Kafka 3.6.1 실행&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;의존성&lt;/strong&gt;: &lt;code&gt;spring-kafka&lt;/code&gt;, &lt;code&gt;spring-boot-starter-web&lt;/code&gt; 추가&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;기본 설정&lt;/strong&gt;: &lt;code&gt;bootstrap-servers&lt;/code&gt;, Serializer/Deserializer, &lt;code&gt;group-id&lt;/code&gt; 설정&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;프로덕션&lt;/strong&gt;: &lt;code&gt;acks: all&lt;/code&gt;, &lt;code&gt;enable.idempotence: true&lt;/code&gt;로 안정성 확보&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="대상-독자-및-선수-지식"&gt;대상 독자 및 선수 지식&lt;a class="anchor" href="#%eb%8c%80%ec%83%81-%eb%8f%85%ec%9e%90-%eb%b0%8f-%ec%84%a0%ec%88%98-%ec%a7%80%ec%8b%9d"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;항목&lt;/th&gt;
 &lt;th&gt;설명&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;대상 독자&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Spring Boot 프로젝트에서 Kafka 환경을 구성하려는 개발자&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;선수 지식&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Docker 기본 사용법, Gradle 또는 Maven 빌드 도구, Spring Boot 설정 파일(application.yml)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;필수 도구&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Docker Desktop 또는 Docker Engine, JDK 17+, IDE (IntelliJ IDEA 권장)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;예상 소요 시간&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;약 15분&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Quick Start를 완료했다면 이미 기본 환경을 구성한 것입니다. 이 문서는 설정 상세 내용과 프로덕션 환경 구성을 위한 참조 문서입니다.&lt;/p&gt;</description></item><item><title>Spring Kafka로 Producer/Consumer 구현하기</title><link>https://advanced-beginner.github.io/ko/docs/kafka/examples/basic/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/ko/docs/kafka/examples/basic/</guid><description>&lt;p&gt;이 문서에서는 Spring Kafka를 사용하여 메시지를 송수신하는 방법을 단계별로 실습합니다.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Producer&lt;/strong&gt;: &lt;code&gt;KafkaTemplate&lt;/code&gt;으로 동기/비동기 메시지 전송, Key 사용으로 Partition 지정&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consumer&lt;/strong&gt;: &lt;code&gt;@KafkaListener&lt;/code&gt;로 메시지 수신, 배치 처리 및 패턴 구독 지원&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;수동 커밋&lt;/strong&gt;: &lt;code&gt;Acknowledgment&lt;/code&gt;로 처리 완료 후 명시적 커밋&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;에러 처리&lt;/strong&gt;: &lt;code&gt;@RetryableTopic&lt;/code&gt;으로 재시도 및 Dead Letter Topic 설정&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h2 id="시작하기-전에"&gt;시작하기 전에&lt;a class="anchor" href="#%ec%8b%9c%ec%9e%91%ed%95%98%ea%b8%b0-%ec%a0%84%ec%97%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;항목&lt;/th&gt;
 &lt;th&gt;요구사항&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;대상 독자&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Spring Boot 애플리케이션에서 Kafka를 사용하려는 백엔드 개발자&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;선수 지식&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Java 기본 문법, Spring Boot 기초, Kafka 기본 개념&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;사전 완료&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://advanced-beginner.github.io/ko/docs/kafka/quick-start/"&gt;Quick Start&lt;/a&gt; 예제 완료, &lt;a href="https://advanced-beginner.github.io/ko/docs/kafka/examples/setup/"&gt;환경 구성&lt;/a&gt; 설정 완료&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;예상 소요 시간&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;약 30분&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;환경별 주의사항&lt;/strong&gt;&lt;br&gt;&lt;p&gt;&lt;strong&gt;Windows 사용자&lt;/strong&gt;: 명령어에서 &lt;code&gt;./gradlew&lt;/code&gt; 대신 &lt;code&gt;gradlew.bat&lt;/code&gt;을 사용하세요.&lt;/p&gt;</description></item><item><title>주문 시스템</title><link>https://advanced-beginner.github.io/ko/docs/kafka/examples/order-system/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/ko/docs/kafka/examples/order-system/</guid><description>&lt;p&gt;실무에 가까운 이벤트 기반 주문 시스템을 구현합니다. 이 예제에서는 주문 생성부터 배송 완료까지의 전체 흐름을 Kafka 이벤트로 처리하며, Message Key를 활용한 순서 보장과 여러 Consumer Group을 활용한 확장 패턴을 학습합니다.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;이벤트 기반 아키텍처&lt;/strong&gt;: REST API 요청을 Kafka 이벤트로 변환하여 비동기 처리&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Message Key&lt;/strong&gt;: orderId를 Key로 사용하여 같은 주문 이벤트의 순서 보장&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;상태 머신&lt;/strong&gt;: CREATED -&amp;gt; PAID -&amp;gt; SHIPPED -&amp;gt; DELIVERED 순서로 상태 전이&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;확장 패턴&lt;/strong&gt;: 여러 Consumer Group이 동일 Topic 독립적으로 구독&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="대상-독자-및-선수-지식"&gt;대상 독자 및 선수 지식&lt;a class="anchor" href="#%eb%8c%80%ec%83%81-%eb%8f%85%ec%9e%90-%eb%b0%8f-%ec%84%a0%ec%88%98-%ec%a7%80%ec%8b%9d"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;항목&lt;/th&gt;
 &lt;th&gt;설명&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;대상 독자&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;이벤트 기반 시스템을 구축하려는 백엔드 개발자&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;선수 지식&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Spring Boot 기초, Kafka 기본 개념, &lt;a href="https://advanced-beginner.github.io/ko/docs/kafka/examples/basic/"&gt;기본 예제&lt;/a&gt; 완료&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;필수 환경&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Docker로 Kafka 실행 중, JDK 17+, Gradle&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;예상 소요 시간&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;약 45분&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;이 페이지의 모든 코드 예제에서는 다음 import가 공통으로 사용됩니다. Spring Kafka의 KafkaTemplate과 @KafkaListener를 중심으로 구현하며, Jackson ObjectMapper를 통해 JSON 직렬화를 처리합니다.&lt;/p&gt;</description></item><item><title>마이크로서비스 연동</title><link>https://advanced-beginner.github.io/ko/docs/kafka/examples/microservices/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/ko/docs/kafka/examples/microservices/</guid><description>&lt;p&gt;마이크로서비스 환경에서 Kafka를 활용한 이벤트 기반 통신을 구현합니다.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;이벤트 체이닝&lt;/strong&gt;: 주문 -&amp;gt; 결제 -&amp;gt; 배송 -&amp;gt; 알림 순서로 이벤트 전파&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Correlation ID&lt;/strong&gt;: 분산 추적을 위한 상관 ID 전파&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Saga 패턴&lt;/strong&gt;: 보상 트랜잭션으로 분산 트랜잭션 처리&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;멱등성&lt;/strong&gt;: 중복 메시지 안전하게 처리&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;h4 id="대상-독자-및-선수-지식"&gt;대상 독자 및 선수 지식&lt;a class="anchor" href="#%eb%8c%80%ec%83%81-%eb%8f%85%ec%9e%90-%eb%b0%8f-%ec%84%a0%ec%88%98-%ec%a7%80%ec%8b%9d"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;항목&lt;/th&gt;
 &lt;th&gt;설명&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;대상 독자&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;마이크로서비스 아키텍처에서 이벤트 기반 통신을 구축하려는 개발자&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;선수 지식&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Kafka 기본, Spring Boot, &lt;a href="https://advanced-beginner.github.io/ko/docs/kafka/examples/order-system/"&gt;주문 시스템&lt;/a&gt; 예제 이해&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;필수 환경&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Docker, JDK 17+, 여러 서비스를 실행할 수 있는 환경&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;예상 소요 시간&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;약 60분&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="시나리오-주문-처리-시스템"&gt;시나리오: 주문 처리 시스템&lt;a class="anchor" href="#%ec%8b%9c%eb%82%98%eb%a6%ac%ec%98%a4-%ec%a3%bc%eb%ac%b8-%ec%b2%98%eb%a6%ac-%ec%8b%9c%ec%8a%a4%ed%85%9c"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;이 예제에서는 주문 서비스, 결제 서비스, 배송 서비스, 알림 서비스가 Kafka를 통해 이벤트를 주고받습니다. 주문 서비스가 주문을 생성하면 orders Topic에 이벤트를 발행합니다. 결제 서비스가 이를 수신하여 결제를 처리하고 payments Topic에 결과를 발행합니다. 배송 서비스는 결제 완료 이벤트를 수신하여 배송을 생성합니다. 알림 서비스는 모든 Topic을 구독하여 고객에게 알림을 발송합니다.&lt;/p&gt;</description></item></channel></rss>