Shardines
Rails에서 SQLite로 테넌트별 데이터베이스 관리하기
About
- Rails에서 테넌트마다 별도 데이터베이스를 사용하는 구조를 구축하는 방법과 그 도전 과정을 설명
- ActiveRecord는 기본적으로 단일 DB 연결을 전제로 설계되어 있어, 테넌트별 연결 전환이 복잡하고 까다로움
- Rails 6 이상의 connected_to 기능을 활용해 런타임에 연결을 동적으로 전환하는 방법을 제안함
- SQLite3는 소규모, 다수의 독립 DB를 다루기에 적합하여 백업, 디버깅, 삭제 등 관리가 용이함
- 대규모 시스템 최적화 중심으로 발전한 Rails 인프라와 달리, 작고 독립적인 데이터베이스 중심 아키텍처가 가능함을 강조함