본문 바로가기

전체 글102

[Debezium] 데베지움 오픈소스에 기여하기 얼마 전 카프카 CDC인 데베지움의 오픈소스 기여를 했다. 평소 관심있었던 분야였기에 공식문서를 읽다가 documentation에서 수정할 부분이 있어서 처음으로 기여하게 되었고 데베지움 기여에 있어서의 과정에 대해 작성해보려고 한다. 데베지움 몽고디비 커넥터에 대한 문서를 읽다가 수정해야할 부분이 있으면 우상단에 'Edit this Page' 를 클릭하면 문서 정보를 담고있는 깃헙 레포로 리디렉션된다. 모든 오픈소스는 기본적으로 기여를 하려면 해당 레포를 포크를 통해 본인 레포로 받아와야 한다.  수정해야할 것이 하나면 깃헙에서 바로 수정하고 'Commit Changes'로 수정하면 되지만, 여러개면 IDE에서 브랜치를 하나 만들어서 작업하는 것을 추천한다.이 부분은 오픈소스마다 서로 셩격이 다른데 데.. 2024. 5. 5.
[Kafka + MongoDB] 몽고디비 데베지움 커넥터 (part.1 MongoDB 클러스터와 oplog) MongoDB의 데베지움 커넥터를 사용하기 위해서는 MongoDB 클러스터를 구축하고 oplog를 분석해서 데이터를 캡쳐해야한다. oplog는 MySQL의 binlog, PostgreSQL의 WAL 과 비슷하다고 보면 된다. 대표적으로 binlog와 oplog를 비교하면 아래와 같은 차이가 있다. oplog vs. binlog 사용 데이터베이스 MongoDB (NoSQL) MySQL, MariaDB (SQL) 주요 목적 데이터 복제, 변경 사항 스트리밍 데이터 복제, 복구, 감사 기록 형태 순차적 로그 (텍스트 기반) 바이너리 로그 적용 사례 데이터베이스 클러스터 내 고가용성 유지 데이터 복제, 포인트-인-타임 복구, 변경 사항 감사 데이터 변경 사항 기록 삽입, 갱신, 삭제 DDL 및 DML 쿼리 효율.. 2024. 4. 7.
[회고] 나의 100번째 글 + 1분기겸 회고하기 어느덧 블로그 글을 100개나 올리게 되었다..! 무얼 기념해야 할까 하다가 갤러리를 위주로 1분기 회고를 해볼까 하고 글을 작성한다. 매년 1월 1일에 특별하고 소소한 신년의식을 한다. 헤더에 박혀있는 사진인 대모산을 올라갔다가 근처 맥날가서 핫케익을 먹는 것이다. 먹어본 사람은 알겠지만 맥모닝 핫케익이 주는 따스함이 있다. 관습처럼 하다보니 에뉴얼 루틴이 되버렸다. 횟수를 세어보니 벌써 7년이나 되어버렸다. 대모산 내려가는게 힘들어질때까지 앞으로도 계속 할거같다. 공부(했었던) 42서울에서도 이너과정을 다 마치고 멤버가 되었다. 얻어간건 많았지만 그 과정의 끝이 아 끝났다!!!! 이런게 아니라 끝났는데 이제 뭐하지..? 라는 생각이 들어서 싱숭생숭했다. 결국 남은건 멤바 타이틀하나와 CS(가스아님).. 2024. 3. 27.
[Kafka] 브로커, 토픽, 주키퍼 브로커 + 토픽 카프카 브로커 카프카 클러스터는 다수의 브로커(서버)들로 구성되어 있다. 각각의 브로커는 정수형ID로 구분된다. 각 브로커는 특정한 토픽 파티션만 포함된다. 임의의 브로커에 연결된 이후(부트스트랩 브로커라고도 불림) 전체의 클러스터에 연결하게 된다. 브로커와 토픽 토픽-A 는 3개의 파티션을 가지고 있다고 간주하고, 토픽-B는 2개의 파티션을 가지고 있다고 간주하자 토픽 파티션은 모든 브로커에 걸쳐 분산되게 된다. 브로커에 토픽-B 데이터가 존재하지 않아도 가져야 할 데이터만 가지고 있기 때문에 정상이라고 볼 수있다. 이는 카프카 스케일을 이루고, 수평적 스케일링이라고 부른다. 카프카 브로커의 전개 카프카의 각각의 브로커는 "부트스트랩 서버"라고도 불린다. 하나의 브로커에만 연결이 된다면.. 2024. 3. 21.
[Kafka] 카프카 토픽, 프로듀서, 컨슈머 토픽, 파티션 그리고 오프셋 토픽 : 특정한 스트림 데이터를 의미한다. 데이터베이스 테이블과 유사함(제한사항 없는) 토픽을 제한없이 설정할 수 있다. 이름으로 구분되고 어떠한 메세지 포멧(binary, avro, parquet...)을 지원한다. 메세지의 순서를 데이터 스트림 이라고 한다. 참고로, 토픽을 쿼리할 수 없다. 카프카 프로듀서를 통해 데이터를 보내고 컨슈머를 통해 데이터를 읽는 식으로는 가능하다. 파티션과 오프셋 토픽은 파티션으로 분리된다. 각 파티션은 순서대로 정렬되어 나타난다. 각 파티션에 있는 메세지는 서로다른 파티션마다 incremental id를 가진다. 이를 오프셋이라고 한다. 데이터가 한번 파티션에 기록된다면 변경이 불가능하다. 주의해야하는 사항 파티션에 데이터가 기록이 된다면,.. 2024. 3. 19.
[Book / 비개발도서] 잘 그리기 금지 독후감 이전에 예고했던 개발자의 글쓰기에 이어서 잘 그리기 금지라는 책을 읽었다. 책을 보게 된 배경? 책의 내용자체가 딱딱하지도 않고 역설적인 제목때문에 슥 본게 리뷰하게 된 계기였다. 그림 이외에도 창작하는 사람이라면 갖춰야하는 태도들에 대해 배울 수 있어서 상당히 인상깊었다! 놀랍게도 이 책의 첫장부터 끝까지 모두 역설이다.. 예를들어, 첫번째 챕터의 첫 문장부터가 예사롭지않다. Q. 초보자는 무엇부터 연습해야 할까? A. 연습하지 않는다. 위의 질의의 작가의 부연설명으로, 기초를 연습하기 전에 가장 먼저 해야할 일은 '누구보다 그림을 좋아하는 것이다' 라고 이야기한다. 남들에게 그림을 보여줌으로써 좋아하고 즐거워하는 모습을 보며, 성장의 원동력을 가졌다는 것이었다. '만든다'는 행위에 있어서 시행착오를 .. 2024. 3. 16.
반응형