본문 바로가기

Book18

Kafka 컨슈머 만들기: 동작 흐름과 기본 설정 이해하기 개요메시지를 보내는 것 만큼, 받는 것도 중요하다. 카프카 프로듀서에 이어 이번에는 컨슈머에 대해 공부해봤다. 처음에는 poll 메서드가 뭘 하는지, subscribe 메서드는 왜 필요한지, 설정값들은 왜 이렇게 많은지 조금 헷갈렸는데 책을 읽으며 예제 코드를 하나씩 다라가며 개념을 정리해보니 어느 정도 감이 잡히기 시작했다. 이 글은 그 과정을 기록한 것으로, 컨슈머의 기본 동작부터 주요 설정값, 그리고 토픽을 구독하고 메시지를 읽어오는 방식까지 이해한 대로 정리해봤다. 1.카프카 컨슈머란?카프카에서 메시지를 읽는 주체를 컨슈머(Consumer)라고 한다. 메시지를 보낼 떄는 프로듀서(Producer)가 사용되며, 그 메시지를 읽고 처리하는 역할을 담당하는 것이 바로 컨슈머이다. 카프카는 모든 메시.. 2025. 4. 16.
Kafka 프로듀서 더 깊이 보기: 직렬화부터 스로틀링까지 개요이전에는 Kafka 프로듀서가 메시지를 어떻게 Kafka 브로커에게 전송하는지 전반적인 흐름을 살펴 보았다. 단순해 보이는 producer.send() 한 줄에도 직렬화, 파티션 분배, 배치, 전송, 응답 처리, 재시도 등 다양한 과정이 숨어 있었다. 이번에는 이 흐름을 조금 더 깊이 파고들어, 메시지가 전송되기 전과 후에 어떤 기술적인 처리들이 일어나는지 정리해보려한다.시리얼라이저부터 시작해, Avro 레코드, 파티셔너, 헤더, 인터셉터 그리고 쿼터 및 스로틀링 까지 카프카 프로듀서를 구성하는 핵심 개념들에 대해 학습하고 기록해보자. 1. Kafka에서의 시리얼라이저 (Serializer)카프카에서는 메시지를 네트워크로 전송하기 전에 반드시 바이트 배열(byte[])로 바꿔야한다. 왜냐하면 네트워크.. 2025. 4. 10.
Kafka 프로듀서 만들기: 개념, 설정, 전송 방식 정리 개요카프카를 처음 접하면서 가장 먼저 마주친 개념 중 하나가 바로 프로듀서 였다. 카프카는 단순히 데이터를 저장하고 전달하는 분산 메시징 시스템일 뿐이다. 결국 카프카에 데이터를 써주는 누군가가 필요한데, 이 역할 바로 프로듀서가 한다. 이번 글에서는 카프카 프로듀서가 어떤 식으로 메시지를 전송하는지 동작 원리부터 시작해서 순수 Java를 사용한 기본 구현 방식들을, 그리고 성능이나 안정성과 관련된 여러 설정들에 대해 정리해 보았다. 1. Kafka 프로듀서란 무엇인가?Kafka 프로듀서는 카프카에게 메시지를 보내는 역할을 하는 애플리케이션의 구성 요소이다. 쉽게 말해 카프카는 단순한 메시지 저장소에 가깝다. 저장소에 데이터가 쌓이려면 누군가는 데이터를 보내줘야할텐데, 이 때 데이터를 보내는 역할을 하는.. 2025. 4. 7.
Kafka 설치부터 첫 메시지 전송까지: Producer와 Consumer 개요지난번에는 카프카의 기본 개념에 대해서 공부했는데, 오늘은 직접 카프카를 설치해보고 실행해보았다.  Homebrew로 Kafka 설치 및 실행하기아파치 카프카는 다양한 운영체제에서 실행이 가능한 자바 어플리케이션이다. 나는 mac을 사용하고 있어서 homebrew를 통해 설치하려한다.  Homebrew는 Mac에서 패키지를 쉽게 설치할 수 있도록 도와주는 패키지 관리 도구이다.  1. Homebrew가 설치되었는지 확인// 버전을 확인brew --version// 설치되지 않았다면, Homebrew 설치/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"  2. Kafka 설치 //카.. 2025. 4. 3.
Kafka 처음 배우기: 카프카란 무엇인가? 개요이번 스터디 주제로 카프카(Kafka)가 정해졌다. 개발을 하면서 카프카라는 키워드를 자주 접했지만, 정확히 어떤 개념인지, 어디에 활용되는지, 어떻게 학습해야 할지 몰랐다. 이번 기회를 통해 카프카의 기본 개념부터 핵심 요소, 그리고 실제 활용 사례까지 정리하고자 한다. 카프카를 이해하고 효과적으로 활용할 수 있도록 학습 내용을 기록하였다. 책: Orelly 카프카 핵심 가이드. 1. 카프카란 무엇인가? 카프카는 대량의 데이터를 빠르고 안정적으로 처리하기 위한 '분산 메시징 시스템'이다. 메시징 시스템은 애플리케이션 간 데이터를 교환하는 방법으로, 쉽게 말해 두 개 이상의 프로그램이 서로 메시지를 주고 받을 수 있도록 도와주는 역할을 한다. 특징고성능 :- 초당 수백만 개의 메시지 처리 가능- 대용.. 2025. 4. 2.
04. SOLID 원칙 (유지보수성과 확장성을 높이자.) 💭 개요좋은 객체지향 설계와 아키텍처를 이야기 하면 빠지지 않고 나오는 개념인 SOLID 원칙을 알아보자. 💡 공부한 것SOLID단일 책임 원칙 (SRP)개방 폐쇄 원칙 (OCP)리스코프 치환 원칙 (LSP)인터페이스 분리 원칙 (ISP)의존성 역전 원칙 (DIP)각 원칙의 목표는 소프트웨어의 유지보수와 확장성을 높이는 것이다.SOLID를 따르는 코드는 코드 변경으로 인한 영향 범위를 축소할 수 있고, 의존성을 제대로 관리하며, 기능 확장이 쉽다. 단일 책임 원칙 (SIP : Single Responsibility Principle)클래스에는 너무 많은 책임이 할당돼서는 안되며, 단 하나의 책임만 있어야 한다. ‘책임’이란 무엇일까?💡 하나의 모듈은 오직 하나의 ‘액터’에 대해서만 책임져야 한다.액.. 2024. 9. 11.