Project Detail

ZQL Studio

ZQL Studio — Side Project

복잡한 환경 설정 없이 브라우저에서 바로 SQL을 작성하고, AI 튜터와 함께 실행 계획을 분석하며 성장하는 Interactive Learning 환경을 제공합니다.

  • Client-side GenAI Integration
  • React + Vite 고성능 대시보드
  • Spring Boot DDD Architecture
  • Radix UI 디자인 시스템

Google Gemini 3.0 Pro가 탑재된 실시간 SQL 튜터링 플랫폼입니다. 별도의 서버 통신 없는 Client-side AI 분석으로 즉각적인 피드백과 쿼리 최적화 가이드를 제공합니다.

Gemini 3.0 Pro

실시간 AI 튜터

Google Gemini 3.0 Pro 모델을 클라이언트에 직접 연동하여, 서버 대기 시간 없이 즉각적으로 SQL 문법 오류와 논리적 결함을 분석합니다.

Zero-Latency Feedback
Editor

인터랙티브 SQL 에디터

구문 강조(Syntax Highlighting)와 다중 데이터베이스(MySQL, PostgreSQL) 모드를 지원하는 직관적인 웹 기반 쿼리 편집 환경을 제공합니다.

React Syntax Highlighter
Architecture

엔터프라이즈 백엔드

Java 21 및 Spring Boot 기반의 멀티 모듈 아키텍처(DDD)로 확장성과 유지보수성을 고려한 견고한 서버 시스템을 구축했습니다.

Gradle Multi-module, DDD
ZQL Studio 프론트오피스 — 랜딩 1 / Hero
1 / 57

프로젝트 개요

서비스 목표

ZQL Studio​는 SQL 학습의 진입 장벽을 낮추고, 실무 수준의 쿼리 작성 능력을 배양하기 위해 탄생했습니다. 단순한 문법 암기를 넘어, "내가 작성한 쿼리가 왜 틀렸는지", "어떻게 최적화해야 하는지"​를 실시간으로 알려주는 나만의 AI 데이터베이스 튜터​를 제공하는 것을 목표로 합니다.

역할과 범위

  • Full Stack Development: 프론트엔드(React)부터 백엔드(Spring Boot)까지 전 과정 1인 개발
  • AI Integration: Google Gemini API를 활용한 클라이언트 사이드 튜터링 로직 설계 및 구현
  • System Architecture: 확장성을 고려한 백엔드 멀티 모듈 구성 및 프론트엔드 컴포넌트 시스템 설계

핵심 기술적 도전 및 구현 (Technical Deep Dive)

1. Client-Side AI Orchestration (Serverless AI)

기존의 RAG 시스템이 서버를 거쳐야 해서 발생하는 Latency(지연 시간) 문제를 해결하기 위해, Google의 최신 GenAI SDK​를 클라이언트에 직접 통합했습니다.
  • Zero-Latency: 사용자의 브라우저에서 직접 Gemini API를 호출하여, 네트워크 홉(Hop)을 최소화하고 즉각적인 피드백을 제공합니다.
  • Context Management: 데이터베이스 스키마(Schema) 정보와 사용자의 쿼리(Query)를 프롬프트 컨텍스트에 효율적으로 주입하여, AI가 마치 실제 DB 구조를 아는 것처럼 정확한 답변을 생성하도록 유도했습니다.
  • Security: (Note: 프로덕션 환경에서는 Proxy 서버를 통한 호출로 전환 예정이나, 현재 데모 단계에서는 빠른 프로토타이핑을 위해 클라이언트 직접 호출 방식을 채택했습니다.)
1// AiTutorView.tsx (Simplified) 2const genAI = new GoogleGenAI({ apiKey }); 3const model = genAI.getGenerativeModel({ model: "gemini-3-pro-preview" }); 4 5const prompt = ` 6 Context: ${schemaContext} 7 User Query: ${userQuery} 8 Task: Explain this query and find errors. 9`; 10 11const result = await model.generateContent(prompt);

2. Modern Frontend Architecture

학습 도구 특성상 복잡한 UI 상태 관리가 필요함에 따라, 견고한 프론트엔드 아키텍처를 수립했습니다.
  • Component Driven Development: SqlEditor, AiTutorView, ChatInterface 등 기능 단위로 컴포넌트를 분리하여 재사용성을 높였습니다.
  • Radix UI & Tailwind: 접근성(Accessibility)이 보장된 Headless UI 라이브러리인 Radix UI를 기반으로, Tailwind CSS를 사용하여 일관되면서도 커스터마이징 가능한 ZQL Design System​을 구축했습니다.
  • Performance: React Query를 도입하여 비동기 데이터 상태를 관리하고, 불필요한 리렌더링을 방지했습니다.

3. Spring Boot Multi-Module (Domain-Driven Design)

비즈니스 로직의 복잡도가 증가함에 따라, 유지보수성을 위해 단일 모듈 대신 멀티 모듈(Multi-module) 구조를 채택했습니다.
  • api-domain: 외부 의존성이 배제된 순수 비즈니스 로직 및 엔티티
  • api-application: 유스케이스(Use Case) 및 서비스 흐름 제어
  • api-datasource: 데이터베이스 구현체 (JPA 등)
  • api-container: 실제 실행 가능한 Spring Boot 애플리케이션
이러한 계층형 아키텍처는 향후 서비스 확장 시 특정 모듈(예: AI 서비스)만 별도로 분리하거나 교체하기 용이하게 만듭니다.

4. Code Quality Automation

1인 개발임에도 엔터프라이즈급 코드 퀄리티를 유지하기 위해 자동화 도구를 적극 도입했습니다.
  • Spotless: Java 및 Kotlin 코드에 대해 저장 시점에 자동으로 Google Style Guide 포맷팅을 적용하여 일관된 코드 스타일을 강제했습니다.
  • TypeScript Strict Mode: 프론트엔드 전반에 엄격한 타입 체크를 적용하여 런타임 오류를 최소화했습니다.

Tech Stack

프론트엔드는 React와 Google GenAI SDK를 활용해 즉각적인 AI 경험을 제공하며, 백엔드는 Spring Boot 멀티 모듈 아키텍처로 도메인 복잡도를 관리합니다.

CLIENT

Frontend & AI

5

Vite 기반의 빠른 빌드 환경과 Gemini 모델의 직접 통합으로 끊김 없는 학습 경험 제공

React 18 + ViteTypeScriptGoogle GenAI SDK (Gemini 3.0 Pro)Tailwind CSS + Radix UIReact Query + Zustand

SERVER

Backend Architecture

5

도메인 주도 설계(DDD) 원칙을 적용한 멀티 모듈 구조로 비즈니스 로직과 인프라의 명확한 분리

Java 21 LTSSpring Boot 3.2Gradle (Kotlin DSL)Spring SecurityJPA / Hibernate

INFRA

DevOps & Tools

3

Spotless를 통한 코드 품질 관리와 Docker 기반의 개발 환경

DockerGithub ActionsSpotless (Java/Kotlin Formatter)