mysql 6

Tabellarius CDC, Cursus 생태계의 시작

메시지 브로커로 시작한 오픈소스 프로젝트 cursus는 작업해온 양이 방대해서 문서화하는데도 오래 걸리고 있다. 플랫폼화해서 생태계를 이루는 것을 다음 목표로 생각하고 있던 터라, cursus connector에 해당하는 CDC 사이드 프로젝트를 함께 시작했다. https://github.com/downfa11-org/tabellarius GitHub - downfa11-org/tabellarius: Change data capture sourceChange data capture source. Contribute to downfa11-org/tabellarius development by creating an account on GitHub.github.com 이번 글은 CDC 프로젝트의 시작과 함께 ..

tech 2025.12.30

MySQL 8.0의 GTID 복제(Replication) 및 mode 변경 실습

GTID(Global Transaction ID)란?원본 서버에서 Commit된 트랜잭션과 연결된 식별자를 말한다.GTID = server_uuid:transaction_id복제의 일관성 - 모든 트랜잭션에 대해서 전역 고유 식별자를 부여자동 복구 - Slave 서버가 손실된 트랜잭션을 자동 감지 및 복구 가능Master-Slave 전환 용이성 - 복제 위치를 명시적으로 지정하지 않고 페일 오버 가능트랜잭션 기반 복제 - 트랜잭션 단위로 복제해서 복제간 충돌 방지 및 데이터 일관성 유지 GTID 기반 복제(Replication)gtid 브랜치에서 my.cnf 변경사항 확인하기 https://github.com/downfa11/mysql-replication/tree/gtid GitHub - downfa..

mysql 2025.06.18

Master-Slave 노드간 복제(Replication) 실습 (feat. MySQL 8.0)

MySQL 8.0 기반 데이터베이스 복제 실습레포지토리에서 제공하는 자동화 스크립트들도 꼭 한번 확인해보길 바란다. docker-entrypoint-initdb.d에서 User 생성, 권한 부여, 복제 구성 설정 등을 자동화하고 있다.01-init-user.sql : 복제를 담당할 User 생성 및 권한 부여 (Master Node)02-configure-replication.sql : Slave Node에서 실행될 복제 구성 실습한 내용은 Github Repository에서 확인할 수 있다.https://github.com/downfa11/mysql-replication GitHub - downfa11/mysql-replication: MySQL 8.0 기반 데이터베이스 복제와 GTID mode 실습M..

mysql 2025.06.18

MySQL Full-text Search가 항상 LIKE보다 뛰어난 성능을 내는가?

부제 - 은탄환은 없다 알다시피, SQL문에서 LIKE 쿼리의 성능은 처참하다.%keyword% 형태의 문자열의 경우는 인덱스를 활용할 수 도 없어서 Full Table Scan을 해야한다. 당연히 결과값 데이터가 많을수록 성능이 더 떨어진다.아직 결과 수가 많지 않아서 LIKE 연산으로 괜찮지만 충분히 개선의 여지가 남아있다. 복잡한 텍스트 검색시 사용되는 ElasticSearch는 현재 서비스 성격상 맞지 않으며, 우리는 운영비 제로를 목표로 t2.micro를 쥐어짜내고 있는 상황이다. MySQL에서 Full-text Search라는 기능을 제공한다.Full-text Index를 사용해서 텍스트 기반 검색에 대해 더 빠르게 검색할 수 있다. Full-text Search 개요데이터베이스나 검색 시스템..

mysql 2025.06.13

Entity 계층 구조에 따른 상속 관계에 대하여 알아보자

아 상속 계층 전략별로 예시들어가면서 테이블 만들었는데 안이뻐서 지웠다. 시간 박았는데 속상하다   객체 지향에서는 각 클래스끼리의 상속 관계가 존재한다.그러나 관계형 데이터베이스에서는 상속을 지원하지 않는다. 대신 super 타입, sub 타입이라는 모델링 기법을 통해 객체의 상속 관계를 매핑할 수 있다.  Entity 계층 구조에 따른 상속 관계 매핑부모 테이블과 특수한 유형을 표현하는 자식 테이블 JPA에서는 이를 지원하기 위해 객체의 상속을 이용한 @Inheritance 어노테이션을 지원한다. 엔티티 상속 계층 전략SINGLE_TABLE (default)부모와 모든 자식 엔티티의 속성을 포함하는 하나의 테이블 사용TABLE_PER_CLASS부모와 자식 엔티티를 개별적인 테이블로 나누어 사용JOIN..

mysql 2025.04.01

kubernetes 환경에서 MySQL, Redis를 구성해보자

StatefulSet 리소스로 프로젝트에 필요한 컴포넌트들을 설치하고, 테스트 해보는 것까지 기록하는 목적이다. ​각 컴포넌트간에 ClusterIP 방식으로 통신하고자 설계했다.​default로 설정된 ClusterIP은 k8s cluster 내부에서만 접근이 가능한 서비스로 외부로 노출되지 않는 특징이 있다.그래서 Pod끼리 해당 서비스의 DNS 이름이나 ClusterIP를 사용해서 주로 접근한다.​ConfigMap과 Secret 리소스를 활용해서 컴포넌트들을 결합한 서버를 배포하는게 이번 게시글의 목적이다.​​​우선 먼저, 항상 eks를 종료하기 전에 모든 리소스를 삭제(terraform destroy)했기에 다시 생성해줘야 한다.1. *.tf 폴더 경로에서 terraform apply로 재생성2. ..

kubernetes 2024.11.19