Debezium Debezium은 CDC(Change Data Capture)를 위한 오픈 소스 분산 플랫폼이다. (공식 사이트) Kafka Connect의 Source Connector 플러그인 중 하나 (내가 지금까지 이해한 정도) Debezium은 Kafka Connect와 호환되는 소스 커넥터(Source Connector)...
Kafka Connect 알아보기
Kafka Connect Apache Kafka와 다른 데이터 시스템 간에, 데이터를 확장 가능하고 안정적으로 스트리밍하기 위한 도구 대규모 데이터를 Kafka로 가져오거나 Kafka에서 내보내는 커넥터를 빠르고 간단하게 정의할 수 있게 해준다. 전체 데이터베이스를 가져오거나, 애플리케이션 서버 전반에서 수집한 메트릭(metric...
CDC(Change Data Capture) 알아보기
CDC(Change Capture Data)란 ? 데이터베이스나 데이터 웨어하우스 같은 데이터 소스의 모든 변경 사항을 추적하여, 이러한 변경 내용을 대상 시스템에 반영할 수 있도록 하는 과정 (출처 : https://www.confluent.io/learn/change-data-capture/#quick-intro-to-cdc) 주요...
Cubrid에서 MySQL로의 여정(0) - 개요
프로젝트 개요 담당 서비스에서 사용하던 DBMS인 Cubrid를 걷어내고 MySQL로 전환 기존에 사용하던 Cubrid 9.3 버전은 이미 EOL(End of Life, 2023.03.31)이 지나 장기적인 유지보수가 어려운 상황이었음. DBA 팀에 따르면 상위 버전(10.x)으로의 업그레이드는 데이터 저장 방식과 구조 차이로 인...
오늘 드는 생각 (251016, 은탄환)
개발자라는 직업을 갖고나서 “은탄환은 없다”라는 말을 많이 들었던 것 같다. 왜 은탄환은 없는걸까 ? 내 나름대로의 결론은, 모든 상황에는 저마다의 맥락(context)이 있기 때문인 것 같다. 예를 들어, 특정 서비스의 DBMS를 다른 DBMS로 마이그레이션하는 프로젝트를 진행한다고 할 때 고려해야할 맥락은 다양하다: 서비스의 기술 스택,...
오늘 드는 생각 (251015, 일과 공부)
현실적으로 생계를 유지하려면 내 인생에서 일은 계속 해야하지 않을까 생각한다. 하루 24시간 중 일과 관련된 시간은: 출퇴근 (출근 준비시간 포함) : 2시간 회사에 있는 시간 : (8시간 근무 기준) 9시간 11시간 정도된다. 단순 계산으로 비율을 따져보면: 하루로 계산했을때, 약 45% 1년 워킹데이(대략 250일)로 계산...
유지보수하기 어렵다 ?
나는 주로 어떤 상황에서 ‘유지보수하기 어렵다’라고 느낄까 ? 유지보수와 어렵다를 각각 그동안의 내 경험에 비추어 생각해보면 유지보수 1. 새로운 기능 추가 (또는 시스템 단위의 개발) 2. 요구사항 변경 등으로 인한 기존 기능 수정 3. 이슈 디버깅 및 조치 4. 기능은 동작하지만 사용자 경험이 좋지않거나, 추후 이슈가 될 것으로 예상되는 부분...
MySQL - Hash Join 알아보기
Hash Join 해시 테이블을 사용해서 매칭되는 행을 찾는 조인 방식 Hash Join은 크게 build phase와 probe phase 두 단계로 구성된다. 1. Build Phase SELECT given_name, country_name FROM persons JOIN countries ON persons.country...
MySQL - Nested-Loop Join 알아보기
Nested-Loop Join Algorithm MySQL은 테이블 간 조인을 수행할 때, 중첩 루프 조인(Nested-Loop Join, NLJ) 알고리즘(및 그 변형)을 사용한다. MySQL 8.0.18부터는 Hash Join도 지원 NLJ : 바깥(outer) 테이블에서 한 행씩 가져와 안쪽(inne...
오늘 드는 생각 (250923, 정답)
정답을 찾는데 급급해하지 않고, 정답이 아니면 어쩌나 불안해하지 않고, 적절한 근거와 논리에 기반한 내 생각을 갖고 살 수 있기를.