Skip to content

Architecture

범수 edited this page Sep 12, 2026 · 1 revision

아키텍처

DBTower는 채널, 서비스 코어, DBMS 어댑터를 분리한 Spring Modulith 애플리케이션입니다. 다른 모듈은 공개 서비스와 DTO만 사용하고 구현·엔티티·저장소는 각 모듈의 internal 패키지에 둡니다.

DBTower 상세 아키텍처

핵심 구조

영역 책임
operator DbmsOperator 계약과 5개 DBMS 구현, 커넥션 풀·클라이언트 캐시
registry 대상 등록과 헬스체크
insight 스냅샷, 비교, 활동, 파라미터·스키마 차이
analysis 규칙 기반 실행계획 분석, AI 1차 분석, 심층 진단
alert 회귀·이상·복제·역할변경·split-brain 관측과 알림
backup 정책, 실행, 복원 검증, 원격 보관, 신선도
review 변경 판정·승인·상태 전이의 단일 권위
workbench 조회 콘솔, 변경 티켓 실행, 전후 비교, 되돌리기
security·audit 인증·인가, 비밀값 보호, 월권·상태변경 감사
mcp stdio·HTTP 전송과 REST 서비스 코어 위임

전체 16개 모듈은 생성된 모듈 문서에서 확인할 수 있습니다.

중요한 설계 결정

기종 차이는 Operator 뒤에 둔다

플랫폼 코드는 DbmsOperator에만 의존합니다. 같은 능력의 기종별 구현 선택은 DbmsOperatorFactory 한 곳에서 담당합니다. 새 DBMS 지원은 Operator 구현체가 본체이고 enum, 팩토리, 백업 도구, JDBC 드라이버, 화면 자산은 등록 절차입니다.

메타 DB와 관리 대상을 분리한다

DBTower의 상태는 전용 PostgreSQL에 저장합니다. 관리 대상 DB가 느리거나 응답하지 않아도 플랫폼 전체가 멈추지 않도록 풀 생성, 로그인 제한, 수집 작업을 인스턴스별로 격리합니다.

변경 안전은 실행 계층에서 보장한다

SQL 문장 해석만 믿지 않습니다. 실행 직전 행을 복사하고 사본 행 수와 실제 영향 행 수가 다르면 롤백합니다. 되돌리기는 실행 직후 사본과 현재 행이 같은 경우에만 허용합니다.

AI는 분석기다

AI가 승인이나 실행을 결정하지 않습니다. 사람이 정한 분석 규칙 위에서 1차 분석을 수행하고, 실행 도구는 제공하지 않습니다.

상세 결정과 성능 개선 과정: DESIGN.md

Clone this wiki locally