🇺🇸 Glancer — Ask your Rails database questions in plain language

개요

Glancer는 Ruby on Rails 애플리케이션에서 자연어 질의를 통해 데이터베이스에 접근할 수 있게 해주는 Rails 엔진으로, RAG(Retrieval Augmented Generation)와 LLM(Large Language Model) 기술을 활용하여 사용자가 코드를 작성할 필요 없이 데이터베이스 질문을 할 수 있도록 지원합니다.

주요 내용

  • 기능: Glancer는 Rails 애플리케이션 내 /glancer 경로에 채팅 인터페이스를 제공합니다. 사용자는 평범한 언어로 질문을 입력하면, Glancer는 관련 스키마 컨텍스트를 검색하고 SELECT 쿼리 또는 ActiveRecord 표현식을 생성합니다. 이 쿼리는 안전하게 검증 및 실행되며, 결과는 사람이 이해할 수 있는 설명과 함께 반환됩니다.
  • 설치 및 설정: Gemfile에 gem "glancer"를 추가하고 rails generate glancer:install, rails db:migrate, rails glancer:index:all 명령어를 실행하여 설치합니다. LLM 제공업체(Gemini, OpenAI, OpenRouter 등)와 모델 설정은 생성된 초기화 파일에서 구성할 수 있습니다.
  • 안전성: 모든 쿼리는 롤백되는 트랜잭션 내에서 실행되며, DELETE, UPDATE, INSERT, DROP과 같은 키워드는 실행 전에 차단됩니다. 읽기 전용 복제본에 연결하는 옵션도 제공됩니다.
  • 도메인 이해: Markdown 파일을 통해 비즈니스 규칙, 상태 값의 의미, 수익 계산 방식, 무시할 열 등을 Glancer에 학습시킬 수 있습니다.
  • UI 특징: 결과는 테이블 형태로 렌더링되며 CSV 내보내기 기능을 지원합니다. 데이터에 따라 차트가 자동 생성되며, 쿼리는 백그라운드 스레드에서 실행되어 앱의 메인 스레드를 방해하지 않습니다. 특정 테이블을 고정하거나, 생성된 SQL을 편집하고 다시 실행하거나, 음성으로 질문하는 기능도 제공됩니다. /glancer/db-schema 경로에서 스키마 뷰어를 확인할 수 있습니다.
  • Blazer 통합: Blazer가 설치되어 있다면, 생성된 SQL을 Blazer에서 직접 열 수 있는 버튼을 제공합니다.
  • 개발 배경: Glancer는 Rails 엔진 개발 과정 이해를 위한 스터디 프로젝트로 시작되었으며, 동료들의 유용성 피드백을 바탕으로 커뮤니티에 공개되었습니다. 현재 버전 1.0.0이며, 이슈 및 풀 리퀘스트를 받고 있습니다.

시사점

Glancer는 개발자가 아닌 팀원들도 코드 작성 없이 데이터베이스 정보를 쉽게 탐색할 수 있게 함으로써 데이터 접근성을 크게 향상시키고, 데이터 기반 의사결정 과정을 간소화할 수 있는 실용적인 도구입니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions