<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Pletor Tech Blog (ko)</title><description>Pletor 팀이 제품, 보안, 데이터, 운영 경험을 기록하는 기술 블로그입니다.</description><link>https://tech.pletor.kr/</link><item><title>Kafka Active-Active의 핵심은 Kafka가 아니라 Ownership이다</title><link>https://tech.pletor.kr/ko/posts/kafka-active-active-ownership/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-active-active-ownership/</guid><description>Kafka 기반 Active-Active DR 아키텍처에서 Kafka가 해결하는 문제와 애플리케이션이 직접 책임져야 하는 Ownership, Outbox, Inbox, 장애 전환 전략을 정리합니다.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><category>kafka</category><category>active-active</category><category>disaster-recovery</category><category>msa</category><category>architecture</category></item><item><title>AI가 코드를 써도, 소프트웨어는 퇴고가 필요하다</title><link>https://tech.pletor.kr/ko/posts/ai-coding-software-revision/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/ai-coding-software-revision/</guid><description>바이브 코딩의 시대에도 쓸 수 있는 애플리케이션을 만들려면 왜 도메인 이해, 검수, 반복 수정이 필요한지 정리합니다.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>ai</category><category>software-development</category><category>engineering</category><category>workflow</category></item><item><title>Kafka partition은 괜찮다는데 디스크가 없다</title><link>https://tech.pletor.kr/ko/posts/kafka-log-dirs-free-space/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-log-dirs-free-space/</guid><description>Kafka 4.3의 Partition Size Percentage metrics가 retention 압력을 보여주는 방식과 한계, 그리고 log.dirs 물리 free space 모니터링이 여전히 필요한 이유를 정리합니다.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>kafka</category><category>storage</category><category>monitoring</category><category>operations</category><category>testing</category></item><item><title>AI는 코드를 배웠지만, 소프트웨어는 운영에서 배운다</title><link>https://tech.pletor.kr/ko/posts/software-learns-in-operation/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/software-learns-in-operation/</guid><description>AI가 글과 코드로 배운 지식의 강점과 한계, 그리고 실제 소프트웨어 품질이 운영 피드백을 통해 개선되는 이유를 정리합니다.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>ai</category><category>software-development</category><category>operations</category><category>observability</category></item><item><title>Kafka Streams 4.2 이후, 장애를 덜 아프게 만드는 두 가지 변화</title><link>https://tech.pletor.kr/ko/posts/kafka-streams-dlq-rebalance/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-streams-dlq-rebalance/</guid><description>Kafka Streams 운영에서 자주 만나는 나쁜 레코드와 rebalance 문제를 Kafka 4.2 이후 DLQ 지원과 Streams Rebalance Protocol 관점에서 정리합니다.</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate><category>kafka</category><category>kafka-streams</category><category>dlq</category><category>rebalance</category><category>operations</category></item><item><title>Kafka 브로커 빼기 전에 먼저 Cordon부터</title><link>https://tech.pletor.kr/ko/posts/kafka-cordoned-log-dirs/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-cordoned-log-dirs/</guid><description>Apache Kafka 4.3에 추가된 cordoned.log.dirs 설정의 의미와 사용법을 정리합니다. 브로커나 log directory를 비우기 전에 새 replica 배치를 먼저 막는 운영 흐름을 다룹니다.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>kafka</category><category>operations</category><category>storage</category><category>decommission</category><category>maintenance</category></item><item><title>Kafka 4.0 Consumer Rebalance: 이제 조율은 브로커가 한다</title><link>https://tech.pletor.kr/ko/posts/kafka-4-consumer-rebalance-protocol/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-4-consumer-rebalance-protocol/</guid><description>Apache Kafka 4.0에서 GA가 된 새 rebalance protocol을 정리합니다. 기존 protocol과 무엇이 다르고, broker-side assignment와 incremental rebalance가 운영에 어떤 의미를 갖는지 다룹니다.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>consumer</category><category>rebalance</category><category>operations</category><category>architecture</category></item><item><title>Kafka Streams와 EIP Aggregator: 모으는 것보다 끝내는 것이 어렵다</title><link>https://tech.pletor.kr/ko/posts/kafka-streams-eip-aggregator/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-streams-eip-aggregator/</guid><description>EIP Aggregator 패턴을 Kafka Streams로 구현할 때 중요한 것은 groupBy와 aggregate가 아니라 correlation key, state store, completion condition, late event 처리입니다.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>kafka-streams</category><category>eip</category><category>architecture</category><category>stream-processing</category></item><item><title>Kafka는 왜 Outbox와 Inbox 사이에 잘 맞을까</title><link>https://tech.pletor.kr/ko/posts/kafka-outbox-inbox/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-outbox-inbox/</guid><description>MSA 비동기 호출에서 Outbox와 Inbox 패턴이 필요한 이유와, Kafka가 이 패턴의 메시지 경로로 잘 맞는 이유를 정리합니다.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>msa</category><category>architecture</category><category>messaging</category><category>reliability</category></item><item><title>Kafka가 끼어도 Trace는 끊기지 않아야 한다</title><link>https://tech.pletor.kr/ko/posts/kafka-trace-context-propagation/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-trace-context-propagation/</guid><description>MSA 흐름 중간에 Kafka가 들어오면 동기 호출처럼 trace가 자연스럽게 이어지지 않습니다. Kafka header로 trace context를 전파하고 producer와 consumer instrumentation을 설계하는 관점을 정리합니다.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>tracing</category><category>opentelemetry</category><category>observability</category><category>msa</category></item><item><title>Kafka는 메모리가 남아 있는데 왜 OOM이 났을까</title><link>https://tech.pletor.kr/ko/posts/kafka-direct-buffer-memory/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-direct-buffer-memory/</guid><description>Kafka broker의 메모리를 heap과 page cache만으로 보면 놓치기 쉬운 direct buffer를 다룹니다. 시스템 메모리와 heap이 남아 있어도 direct memory 한도 때문에 allocation failure가 날 수 있습니다.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>memory</category><category>jvm</category><category>operations</category><category>performance</category></item><item><title>수정하지 않을 YAML 로그를 왜 전부 객체로 만들까</title><link>https://tech.pletor.kr/ko/posts/yaml-log-streaming/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/yaml-log-streaming/</guid><description>초당 수십/수백 건의 YAML 로그를 선별하던 경험을 바탕으로, 로그처럼 immutable한 데이터를 처리할 때 DOM/object tree 대신 stream/event 기반 처리를 고려해야 하는 이유를 정리합니다.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><category>yaml</category><category>logging</category><category>performance</category><category>streaming</category><category>operations</category></item><item><title>Docker Compose는 편한데, .env 비밀값은 너무 쉽게 남는다</title><link>https://tech.pletor.kr/ko/posts/envoyage-compose-secrets/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/envoyage-compose-secrets/</guid><description>Pletor가 공개한 Envoyage를 소개합니다. Docker Compose 흐름은 유지하면서 평문 secret env 파일이 Git, 백업, 배포 디렉터리에 남는 위험을 줄이는 작은 도구입니다.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate><category>docker</category><category>configuration</category><category>security</category><category>open-source</category></item><item><title>JVM 메트릭만으로는 컨테이너를 설명할 수 없다</title><link>https://tech.pletor.kr/ko/posts/node-metrics-agent/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/node-metrics-agent/</guid><description>Pletor가 공개한 node-metrics-agent를 소개합니다. Java 애플리케이션에서 host와 container node metric을 JMX로 노출하고 JMX exporter로 Prometheus에 연결하는 방법을 정리합니다.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>java</category><category>jmx</category><category>prometheus</category><category>containers</category><category>observability</category></item><item><title>Kafka Client Metrics는 관측의 빈틈을 메울 수 있을까</title><link>https://tech.pletor.kr/ko/posts/kafka-client-telemetry-limits/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-client-telemetry-limits/</guid><description>KIP-714로 도입된 Kafka 클라이언트 원격 메트릭 수집의 구조, 지원 메트릭, 설정 방법, 그리고 운영 현실에서의 한계를 정리합니다.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>observability</category><category>monitoring</category><category>operations</category></item><item><title>Kafka가 잘하는 대용량과 보내면 안 되는 대용량</title><link>https://tech.pletor.kr/ko/posts/kafka-large-files-storage-amplification/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-large-files-storage-amplification/</guid><description>Kafka는 대용량 이벤트 스트림에 강하지만 대용량 파일 전송 채널로 쓰면 시스템 전체의 storage amplification이 커지는 이유를 정리합니다.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>storage</category><category>architecture</category><category>operations</category></item><item><title>Kafka Broker가 느려졌지만 Kafka가 원인은 아니었다</title><link>https://tech.pletor.kr/ko/posts/kafka-storage-path-isr/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-storage-path-isr/</guid><description>특정 Kafka broker의 throughput 저하와 ISR 이탈을 추적하다가 VM 아래의 네트워크 블록스토리지 경합까지 내려간 경험을 정리합니다.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>operations</category><category>storage</category><category>observability</category></item><item><title>컨테이너 설정 주입의 마지막 한 끗: env에서 config로</title><link>https://tech.pletor.kr/ko/posts/container-config-gomplate/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/container-config-gomplate/</guid><description>컨테이너에 주입된 환경 변수를 애플리케이션이 실제로 읽는 설정 파일로 바꾸는 gomplate 기반 실무 패턴을 정리합니다.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>containers</category><category>configuration</category><category>gomplate</category><category>kubernetes</category></item><item><title>겉보기엔 균형 잡힌 Kafka, Broker Metrics는 다르게 말한다</title><link>https://tech.pletor.kr/ko/posts/kafka-broker-load-balance/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-broker-load-balance/</guid><description>Kafka cluster에서 leader partition 수가 균등해도 실제 부하는 다를 수 있습니다. partition별 traffic, network, storage 사용량을 함께 보는 balancing 기준을 정리합니다.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>operations</category><category>load-balancing</category><category>monitoring</category></item><item><title>Kafka의 디스크는 어디로 가고 있나: Object Storage로 옮겨지는 Streaming Storage</title><link>https://tech.pletor.kr/ko/posts/kafka-object-storage-layer/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-object-storage-layer/</guid><description>WarpStream, AutoMQ, Apache Fluss, Kafka Diskless Topics를 통해 Kafka 생태계가 broker-local disk를 벗어나 object storage를 바라보는 이유와 차이를 정리합니다.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>storage</category><category>object-storage</category><category>architecture</category></item><item><title>Consumer Group만으로는 Queue가 되지 않는다: Kafka Share Group의 의미</title><link>https://tech.pletor.kr/ko/posts/kafka-share-groups/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-share-groups/</guid><description>Kafka Share Group이 왜 추가되었는지, 기존 Consumer Group과 무엇이 다른지, 어떤 기준으로 적용해야 하는지 정리합니다.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>operations</category><category>consumer</category><category>queue</category></item><item><title>Konduo Community를 Docker Compose로 10분 안에 시작하기</title><link>https://tech.pletor.kr/ko/posts/konduo-docker-compose-quickstart/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/konduo-docker-compose-quickstart/</guid><description>Redis, PostgreSQL, Kafka 등 여러 운영 대상을 통합 관리하는 Konduo Community를 Docker Compose로 빠르게 구성하고 선택형 매뉴얼, Prometheus, 첫 로그인까지 확인합니다.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>konduo</category><category>docker</category><category>quickstart</category><category>prometheus</category></item><item><title>AI 애플리케이션에서 Redis가 맡는 다섯 가지 역할</title><link>https://tech.pletor.kr/ko/posts/redis-roles-in-ai-applications/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/redis-roles-in-ai-applications/</guid><description>AX 시대의 AI 애플리케이션에서 Redis가 캐시, 세션 상태, 검색 보조, 비동기 작업, 운영 제어 계층으로 쓰이는 방식을 정리합니다.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>redis</category><category>ai</category><category>architecture</category><category>operations</category></item><item><title>Consumer Lag은 건강 점수가 아니다: Kafka Consuming Pressure라는 관점</title><link>https://tech.pletor.kr/ko/posts/kafka-consuming-pressure/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-consuming-pressure/</guid><description>Kafka Consumer Lag을 절대값으로만 판단하지 않고, producer 유입량과 consumer group 처리 능력을 함께 보는 운영 관점을 정리합니다.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>observability</category><category>operations</category><category>monitoring</category></item><item><title>Consumer Group인데 Consumer가 아니다: Kafka 안에서 노드들이 서로를 찾는 법</title><link>https://tech.pletor.kr/ko/posts/kafka-coordination-groups/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/kafka-coordination-groups/</guid><description>Kafka Connect와 Schema Registry가 Kafka의 group coordination을 활용해 노드 멤버십, 리더 선출, 작업 분배를 다루는 방식을 정리합니다.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>kafka</category><category>kafka-connect</category><category>schema-registry</category><category>coordination</category></item><item><title>로그가 병목이 될 때: Log4j2 Appender의 무거운 일을 요청 경로 밖으로 밀어내기</title><link>https://tech.pletor.kr/ko/posts/log4j2-custom-appender/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/log4j2-custom-appender/</guid><description>Log4j2 Custom Appender를 만들 때 hot path, bounded queue, AsyncAppender, throttling을 어떻게 바라보면 좋은지 실전 관점으로 정리합니다.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>java</category><category>log4j2</category><category>logging</category><category>observability</category></item><item><title>AI와 함께 쓰는 기술글 발행 흐름</title><link>https://tech.pletor.kr/ko/posts/publishing-workflow/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/publishing-workflow/</guid><description>Codex 또는 Claude Code로 초안을 만들 때 필요한 검수 단계와 PR 기반 발행 절차를 정리합니다.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>ai</category><category>editorial</category><category>workflow</category></item><item><title>Redis에도 Consumer Group이 있다: Streams를 캐시 너머로 보기</title><link>https://tech.pletor.kr/ko/posts/redis-streams-beyond-cache/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/redis-streams-beyond-cache/</guid><description>Redis Streams를 key-value 캐시 너머의 append-only event log, consumer group, pending message 처리 관점에서 살펴봅니다.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>redis</category><category>streams</category><category>messaging</category><category>operations</category></item><item><title>Pletor 기술블로그를 시작하며</title><link>https://tech.pletor.kr/ko/posts/welcome/</link><guid isPermaLink="true">https://tech.pletor.kr/ko/posts/welcome/</guid><description>tech.pletor.kr을 원문 저장소로 두고, 한국어와 영어를 함께 발행하기 위한 첫 운영 원칙입니다.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>engineering</category><category>blog</category><category>workflow</category></item></channel></rss>