Show GN: TunnelForge - SSH 터널 + MySQL/PostgreSQL 덤프·복원·엔진 간 이전 데스크톱 앱 (MIT)

1 hour ago 3

Bastion(점프 서버) 뒤에 있는 MySQL·PostgreSQL을 다룰 때 터널 열기, 쿼리, 덤프·복원, 엔진 간 이전을 한 앱에서 하려고 만든 데스크톱 앱입니다.

주요 기능

  • SSH 터널 관리: bastion 경유/직접 연결, RSA·Ed25519·ECDSA 키, 그룹별 정리와 연결 상태 표시
  • SQL 에디터: 테이블·컬럼 자동완성, 결과 표, 트랜잭션 제어
  • 덤프/복원: 일부 테이블만 내보내면 FK 부모 테이블 자동 포함. 복원은 기본이 '안전 복원'(새 스키마에 복원 → 검증 → 교체)이고, 덮어쓰기도 검증을 통과한 뒤에만 교체합니다.
  • MySQL ↔ PostgreSQL 전환: 사전 점검 → 계획 → 이전 → 원본 키 기준 검증 → 중단 지점부터 이어하기

만든 방식
UI는 Python/PyQt6, DB 작업은 전부 Rust 코어가 맡습니다. 코드는 대부분 AI 코딩 에이전트(Claude Code, Codex)로 작성했습니다. 그래서 검증에 공을 들였습니다. 덤프·복원·보안 테스트는 실제 MySQL·PostgreSQL 컨테이너를 띄운 CI 필수 게이트로 돌고, 통과하지 않으면 머지·배포가 막힙니다. 실사용 중 복원 도중 대상 DB에만 있던 FK 때문에 작업이 멈추고 테이블이 빈 채로 남은 사고가 있었고, 테이블 단위 복원으로 근본 수정했습니다.

한계와 보안

  • Windows 설치 파일이 주력이고, macOS DMG는 CI 검증만 거친 베타입니다(실제 Mac 검증 전).
  • Windows 설치 파일은 아직 코드 서명 전이라 SmartScreen 경고가 뜹니다(SignPath Foundation 무료 서명 신청 예정).
  • 접속 정보는 로컬 설정 파일에 Fernet으로 암호화해 저장하지만, 키 파일도 같은 로컬 앱 데이터 폴더에 있어 OS 키체인 수준의 보호는 아닙니다.
  • 사용 통계는 수집하지 않습니다. 앱 시작 시 새 버전 확인을 위해 GitHub Releases API를 호출하며(설정에서 끌 수 있음), 오류 보고는 동의한 경우에만 보냅니다.

받고 싶은 피드백

  • 실제 DB에서 덤프/복원이나 엔진 간 이전이 깨지는 경우
  • 자격증명 보관 방식에 대한 의견

설치 파일은 GitHub Releases에 있습니다.

Read Entire Article