PostgreSQL/MySQL 쿼리, 터미널에서 실시간으로 확인하세요!

by DD
3개월 전
조회수 24

sql-tap은 PostgreSQL 및 MySQL의 SQL 쿼리 트래픽을 실시간으로 시각화하는 터미널 기반 도구임

애플리케이션 코드 변경 없이 포트 설정만으로 사용 가능하며, EXPLAIN 기능 지원

데이터베이스 에이전트(Database Agent)를 통한 쿼리 분석 방식에 대한 긍정적 평가가 주를 이룸

기존 pgTAP과의 이름 중복 문제(Naming Conflict) 및 MySQL 일반 로그와의 차별성(Differentiation)에 대한 논의가 존재함

sql-tap의 핵심 기능: 실시간 쿼리 분석

sql-tap은 PostgreSQL 및 MySQL의 와이어 프로토콜(Wire Protocol)을 파싱하여 애플리케이션과 데이터베이스 사이에 위치한다. 이를 통해 애플리케이션 코드 변경 없이 실시간 쿼리 캡처(Real-time Query Capture), 트랜잭션 보기, EXPLAIN 실행이 가능하다. 특히, 터미널 UI(Terminal UI)를 통해 쿼리 정보를 시각적으로 제공하여 개발자가 데이터베이스 트래픽을 쉽게 이해하도록 돕는다.

설치 및 사용 방법

sql-tap은 Homebrew, Go, Docker를 통해 설치할 수 있으며, PostgreSQL 및 MySQL 환경에서 모두 사용 가능하다. 사용자는 sql-tapd를 프록시 데몬으로 실행하고, 애플리케이션이 데이터베이스 대신 프록시 포트를 바라보도록 설정한다. 이후 sql-tap TUI를 통해 gRPC 스트림(gRPC Stream)으로 전송되는 쿼리 정보를 실시간으로 확인할 수 있다. DATABASE_URL 환경 변수 설정을 통해 EXPLAIN 기능 활성화가 가능하다.

데이터베이스 에이전트(Database Agent) 방식의 장점

커뮤니티에서는 sql-tap과 같은 데이터베이스 에이전트(Database Agent) 방식을 통해 코드 분석보다 더 효과적으로 시스템을 이해할 수 있다는 의견이 제시되었다. 특히, 코드 변경 없이 쿼리 분석(Query Analysis)이 가능하다는 점이 강조되었다. 또한, 데이터베이스 사용자(Database User)비밀번호(Password)를 숨기는 방식으로 보안을 강화할 수 있다는 제안도 있었다.

기존 도구와의 비교 및 차별점

sql-tap은 기존 pgTAP과의 이름 중복 문제로 인해 혼란을 야기할 수 있다는 지적이 제기되었다. 또한, MySQL의 일반 로그(General Log)를 사용하는 것과 비교하여 sql-tap의 장점(Advantage)에 대한 질문도 있었다. sql-tap은 와이어 프로토콜(Wire Protocol)을 직접 파싱하여 더 상세한 정보를 제공하고, EXPLAIN 기능을 통해 쿼리 성능 분석을 지원한다는 점에서 차별점을 가진다.

Show HN: SQL-tap – Real-time SQL traffic viewer for PostgreSQL and MySQL