Skip to content
> giho's blog

Archives

All the articles I've archived.

202628
August17
July1
June1
May8
  • CSV를 Parquet으로 한 방에 (duckdb)

    duckdb 한 줄로 CSV를 Parquet으로 변환하는 작은 셸 스크립트

  • MySQL Online DDL 정리

    MySQL을 운영하다 보면 결국 ALTER TABLE 을 해야 하는 순간이 온다. 컬럼을 추가하거나, 인덱스를 만들거나, 컬럼 타입을 바꾸거나, PK를 바꿔야 할 때가 있다. 문제는 DDL은 자주 하지 않지만 한…

  • Aurora MySQL Architecture를 다시 정리해보기

    Aurora MySQL을 쓰다 보면 겉으로는 MySQL처럼 보이는데, 운영 관점에서는 일반 MySQL과 다른 지점이 꽤 많다. 처음에는 “MySQL 호환 managed database” 정도로 생각하기 쉽다.…

  • DynamoDB로 AI Chat 이력 모델링하기

    DynamoDB로 콜센터 상담 이력이 저장되고 있었지만, 내가 입사하기 전에 이미 구축된 영역이라 직접 만질 기회가 많지는 않았다. RDBMS처럼 매일 slow query를 보고 index를 조정하는 식의…

  • airflow.cfg에서 나중에 다시 보게 되는 옵션들

    Airflow를 설치형으로 쓰면 결국 airflow.cfg 를 다시 열어보게 된다. 처음 설치할 때는 기본값으로도 잘 떠서 넘어가게 되는데, API를 호출하거나 task를 병렬로 돌리거나 metadata…

  • AWS DMS 테스트하면서 실제로 막혔던 지점들

    AWS DMS를 테스트하면서 생각보다 여러 지점에서 막혔다. 처음에는 source와 target endpoint를 만들고, replication instance를 하나 띄운 다음, migration task만 잘…

  • MySQL Collation

    MySQL에서 character set은 이제 utf8mb4 를 사용하는 것이 거의 기본처럼 되었다. 문제는 character set만 맞췄다고 끝나는 게 아니라는 점이다. 운영하다 보면 실제로는 collation…

  • Karabiner에서 kanata로 전환하기

    Karabiner-Elements를 걷어내고 kanata로 완전히 옮기기 — 제거·설치·launchd 자동실행과 자동 업데이트로 인한 재발 트러블슈팅까지

January1
  • Mac 초기 세팅 flow

    1. chezmoi init javascript chezmoi init https://github.com/ggiho/dotfiles.git chezmoi update v chezmoi installed,…

20257
September1
  • MongoDB.local 2025

    처음으로 MongoDB conference에 참여하게 되었다. 나같은 몽린이에게 MongoDB와 더 친숙해지는 시간이었다. 가장 기억에 남는 부분은 hybrid search와 8.0 feature 였다.

August4
  • Aurora DSQL

    제약사항 FK 사용 불가능 pg extension 사용 불가능 trigger, procedure 사용 불가능 user별 password 생성이 아닌 토큰으로 인증(영구 패스워드 불가능) Conclusion

  • PyCon Korea 2025 후기

    PyCon Korea 오프라인 행사에 처음으로 참여했다. 개인적으로 참여하려면 티켓을 6만원에 구매해야 하지만 후원사 티켓을 받아서 다녀올 수 있었다. 한 가지 깨달은 점은 커뮤니티 후원사로 참여하면 저렴하게…

  • MySQL adaptive hash index

    몇년 전 MySQL 8.0 버전을 스터디할 때 Adaptive hash index(AHI)에 대한 주제로 토론을 했던 적이 있다. 당시에는 8.0 버전뿐 아니라 MySQL에 대한 이해도가 전반적으로 떨어졌을 때라서…

  • Aurora 3.10 (MySQL 8.0.42) jmalloc

    2025년 7월 30일부터 모든 리전에서 Aurora MySQL 3.10 버전으로 업그레이드 가능하다. 3.10 버전에서는 최대 스토리지 용량이 128TiB에서 256TiB로 증가한다. 또한 인 메모리 릴레이 로그…

July2
  • Schema Diff Pro

    기존에 사용하던 데이터베이스 스키마 비교 도구를 claude와 함께 개선하며 pro라는 이름을 덧붙여서 Schema Diff Pro 라는 거창한 이름으로 탄생하게 되었다. 최초에 만들었던 목적은 여러 환경의 스키마…

  • CAP 이론 — 파티션이 나면 뭘 포기할 것인가

    CAP을 외우는 대신 "네트워크가 끊겼을 때 내 시스템이 뭘 하는가"로 이해한 정리. CP/AP, CA의 함정, PACELC까지

20249
October1
  • How to compile C & C++ in Mac OS

    Mac에는 기본적으로 gcc(clang)가 설치되어 있다. shell gcc version Apple clang version 15.0.0 (clang 1500.1.0.2.5) Target: arm64 apple…

September2
  • RDS start export task

    스냅샷 생성 aws rds create db cluster snapshot \ db cluster snapshot identifier dev cluster snapshot 2024 09 24 \ db cluster…

  • Airflow Tutorial

    이미 안 쓰이는 곳이 없을 정도로 유명한 Apache top level 오픈소스이기 때문에 설명은 생략해도 될 것 같다. 이전 회사에서 cron을 airflow로 변경했던 적이 있었는데 시간이 꽤나 지나서 기억이…

August2
  • DuckDB

    요즘 핫하다는 나만 모르던 DuckDB를 사용해 봤다. tip DuckDB는 SQLite의 직관성 및 접근성과 전문 열 데이터베이스의 고성능 기능을 조화롭게 결합한 데이터베이스입니다 Install shell…

  • MySQL 5.7 Orphan table

    Aurora 3 업그레이드 중 좀비 테이블 조치 회고 MySQL upgrade precheck log에서 에러가 발생했다. (/notion/mysql 5 7 orphan table/img 1.png) MySQL…

July1
  • Dolphie for MySQL monitoring

    Dolphie Dolphie is real time monitoring tool for MySQL. install shell pip pip install dolphie brew brew install dolphie…

February3
  • minikube + podman

    mongodb replica set을 테스트하기 위해서 docker compose를 이용해서 3개의 mongodb 인스턴스를 만들었다. 회사 pc에서도 테스트를 하기 위해서 동일한 과정을 진행했는데 무의식적으로…

  • Retrieval of the RSA public key is not enabled for insecure connections

    (/notion/mysql rsa public key error/img 1.png) MySQL: Retrieval of the RSA public key is not enabled for insecure…

  • MySQL 계정 정보 모를 때

    / Introduction 쓸 일이 잘 없는 것 같다가도 종종 사용할 일이 생기곤 한다. sql stop mysqld systemctl stop mysqld mysqld safe replacement…

202314
September1
  • UUID

    (/notion/mysql uuid/img 1.png) sql select CHARGE ORDER ID,uuid(), replace(uuid(),' ',''),unhex(replace(uuid(),' ','')),…

May2
  • [MySQL 성능 최적화] 02. 신뢰성 엔지니어링 환경에서의 모니터링

    시작하며 스터디의 교재는 Real MySQL을 사용하지만 책을 한 권만 읽은 사람이 제일 무섭다는 말이 있듯이 다른 책도 읽을 필요성을 느껴서 O’relly의 High Performance MySQL 4th를…

  • MySQL replication 동작 원리

    슬레이브에서 어떤 빈로그 포지션을 보고 데이터를 동기화 해야 하는가에 대한 질문에 대해서 ???? xtrabackup info에서 binlog position으로 동기화 하는거 아닌가라고 했었는데 스터디 멤버에게…

April5
  • SQL Server 트랜잭션 격리수준

    시작하며 SQL Server에서는 오라클과 마찬가지로 default isolation level이 Read Committed 로 설정 되어 있다. 그리고 ANSI 표준과는 다른 격리 수준을 제공하는데 같이…

  • SQL Sever(mssql) 시작하기

    SQL Sever를 설치하고 사용해보자 (/notion/sql server getting started/img 1.png) CentOS 8 SQL Server 2022 Install 설치 가이드를 참고해서…

  • 데이터 파일로 내보내기

    shell SELECT FROM table WHERE condition INTO OUTFILE '/tmp/filename.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES…

  • MySQL 시스템 변수 정리 — 연결·버퍼·InnoDB 핵심

    자주 만지는 MySQL 시스템 변수를 연결·스레드·세션 버퍼·InnoDB 메모리·내구성으로 묶어 정리

  • MySQL 백업 복구 정리

    시작하며 MySQL(MariaDB)에서 많이 쓰이는 backup 도구는 mysqldump와 xtrabackup(mariabackup)이 있다. 간단한 사용 방식들을 정리해 본다. mysqldump MySQL을…

March6
  • selenium 크롤링 팁 몇 가지

    Overview 웹페이지 마다 구성이 다르기 때문에 크롤링을 하다가 간혹 브레이크가 걸릴 때가 있습니다. 몇 가지 사항에 대해서 해결 방법을 공유하려고 합니다. selenium: 3.141.0 버전 정보는 pip…

  • 이기종 디비 링크 기능 파이썬으로 구현하기

    시작하며 oracle to mariadb 전환 프로젝트를 하면서 기존에 oracle 끼리 db link를 통한 데이터 공유를 사용할 수 없게 되었습니다. db link도 이기종 데이터베이스 간의 연결을 지원하지만…

  • using rowid filter

    시작하며 실행계획을 확인하다가 extra 컬럼에 처음 보는 문구가 있어서 조사해 봤습니다. MySQL에는 존재하지 않고 MariaDB 단독으로 쓰이는 조건인 것 같습니다. (/notion/rowid…

  • MySQL Monitoring

    시작하며 PMM tip Alerting Contact points + New contact point Integration 항목을 Slack으로 선택 Webhook URL 입력 후 Test…

  • JSON column type

    Overview MySQL 5.7.8 버전부터 JSON 컬럼 타입을 지원하기 시작했다. 사용할 기회가 없었는데 마침 기회가 생겨서 정리해 본다. sql insert into json test set class…

  • MySQL 인덱스 스캔 과정 — B-Tree 탐색부터 커버링 인덱스까지

    MySQL 엔진과 InnoDB가 인덱스를 타고 데이터를 찾는 흐름, EXPLAIN 접근 타입, 커버링 인덱스까지 정리

giho=#searchesc