Database2 접속정보 한 줄이 데려간 곳 - VIP와 MMM VIP, 그리고 DB 고가용성 작년, 만으로 갓 2년이 넘은 백엔드 개발자였던 나는 DB 접속정보 한 줄을 어떻게 적어야 할지 몰라 잠깐 멈칫했다. 그 사소한 의문을 그냥 넘기지 않고 끝까지 파봤더니, 그 끝에는 "데이터베이스 고가용성(HA)"이라는 큰 주제가 있었다. 그리고 1년쯤 뒤, 운영 장애 영향도를 분석하다가 정확히 같은 주제를 다시 만났다. 이 글은 그 작은 의문에서 시작해 한 바퀴 돌아온 학습 기록이다.Intro 망분리 작업 중 받은 DB 접속정보에 VIP와 MMM VIP 두 가지가 있었고, Spring 에 무엇을 적어야 하는지 막혔다. MMM VIP 는 현재 writer(primary) 를 따라다니는 floating VIP, 일반 VIP 는 노드에 고정된 IP다. 쓰기 접속은 MMM VIP(writer floatin.. 2026. 6. 3. Flyway가 스키마는 풀어줬다. 그런데 "환경마다 다른 초기 데이터"에서 막혔다. Flyway를 도입하면 "이제 스키마 걱정 끝"이라고 생각하기 쉽다. 나도 그랬다. DDL이 코드와 함께 버전 관리되고, 어느 DB에 어디까지 적용됐는지 history 테이블이 기록해주니까. 그런데 막상 신규 환경을 부트스트랩하다 보니, Flyway가 깔끔하게 풀어준 건 "불변하고 환경 공통인 스키마"뿐이었다. 환경마다 값이 달라야 하는 초기 데이터는 Flyway 안으로 넣는 순간 오히려 더 꼬였다. 이 글은 Flyway의 동작 원리를 바닥까지 파보고, 그 과정에서 부딪힌 세 가지, checksum으로 Pod가 죽은 사건, 미리 만들어둔 테이블과 Flyway를 공존시킨 baseline 트릭, 그리고 "고정이 아닌 초기 데이터" 딜레마를 정리한 기록이다.IntroFlyway가 진짜로 풀어주는 건 "불변·환.. 2026. 5. 23. 이전 1 다음