콘텐츠로 이동

2. 오늘도하오와 MySQL database를 분리

  • 상태: 승인됨
  • 날짜: 2026-04-06

맥락

오늘도하오(Hao-Day-Backend)와 같은 MySQL 인스턴스(104번 서버)를 공유한다. 트렌드 수집 데이터를 어디에 저장할지 결정해야 한다.

결정

같은 MySQL 인스턴스를 사용하되, 별도 database(trend_collector)로 분리한다.

근거

  • 도메인 분리: 트렌드 수집은 오늘도하오(중국어 학습)와 전혀 관련 없는 도메인이다. 같은 database에 테이블을 섞으면 관심사가 혼재된다.
  • 독립적 관리: 스키마 변경, 백업, 마이그레이션을 독립적으로 수행할 수 있다. 오늘도하오의 Flyway 마이그레이션과 충돌할 위험이 없다.
  • 권한 격리: 필요 시 trend_collector에 대한 별도 DB 유저를 만들어 권한을 제한할 수 있다.
  • 인프라 비용 절감: 별도 MySQL 인스턴스를 띄울 필요가 없다.

검토한 대안

대안 장점 선택하지 않은 이유
haotoday database에 테이블 추가 설정 간단 도메인 혼재, Flyway 충돌 위험, 오늘도하오 백업에 불필요한 데이터 포함
별도 MySQL 인스턴스 완전 격리 리소스 낭비, 관리 부담 증가 (현재 규모에서 불필요)
SQLite (파일 기반) 설치 불필요 시계열 분석 쿼리에 부적합, 동시 접근 제한

결과

  • 104번 MySQL에 trend_collector database를 수동 생성한다.
  • haotoday 유저에 trend_collector.* 권한을 부여한다.
  • 테이블은 SQLAlchemy create_all로 애플리케이션 시작 시 자동 생성한다.