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_collectordatabase를 수동 생성한다. haotoday유저에trend_collector.*권한을 부여한다.- 테이블은 SQLAlchemy
create_all로 애플리케이션 시작 시 자동 생성한다.