# DuckDB에서 SQL 입력 즉시 결과를 제공하는 "Instant SQL" 공개

> Clean Markdown view of GeekNews topic #20528. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20528](https://news.hada.io/topic?id=20528)
- GeekNews Markdown: [https://news.hada.io/topic/20528.md](https://news.hada.io/topic/20528.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-04-25T23:34:06+09:00
- Updated: 2025-04-25T23:34:06+09:00
- Original source: [motherduck.com](https://motherduck.com/blog/introducing-instant-sql/)
- Points: 13
- Comments: 2

## Summary

**Instant SQL**은 SQL 쿼리 작성 시 **실시간으로 결과를 미리보기**하여 쿼리 작성과 디버깅을 가속화하는 도구입니다. 이 도구는 **MotherDuck**과 **DuckDB Local UI**에서 사용 가능하며, 다양한 외부 데이터 소스를 실시간으로 탐색할 수 있습니다. **AI 기반 편집 제안**을 통해 쿼리 작성 및 수정이 더욱 효율적이며, **0초 대기 시간**으로 결과를 즉시 확인할 수 있습니다. DuckDB의 **로컬 우선 설계**와 **고급 기술** 덕분에 이러한 기능이 가능해졌습니다.

## Topic Body

- **Instant SQL**은 SQL 쿼리를 작성할 때 **결과를 실시간으로 미리보기**하여 쿼리 작성 및 디버깅을 가속화하는 도구  
- 복잡한 CTE나 컬럼 수식을 손쉽게 분해하고 분석할 수 있으며,  **AI 기반 편집 제안**을 즉시 미리볼 수 있어, 쿼리 작성 및 수정이 더욱 효율적임  
- **MotherDuck**과 **DuckDB Local UI**에서 사용 가능하며, DuckDB 기반으로 다양한 외부 데이터 소스까지 실시간 탐색 가능  
- DuckDB의 로컬 우선 설계와 성능 최적화, 캐싱 전략, AST 기반 커서 매핑 등 고급 기술 조합 덕분에 실현 가능했음  
- **MotherDuck**은 데이터 분석을 위한 다양한 도구를 제공하는 관리형 DuckDB 클라우드 서비스   
  
---  
  
### Instant SQL 소개  
  
- **Instant SQL**은 SQL 쿼리 결과를 **타이핑하는 즉시** 실시간으로 업데이트해주는 새로운 기능임  
- 별도의 실행 버튼(run button) 없이, **0초 대기 시간(zero-latency)** 으로 결과를 미리 확인할 수 있음  
- 현재 **MotherDuck** 플랫폼과 **DuckDB Local UI**에서 사용 가능함  
  
### 왜 Instant SQL이 필요한가  
  
- SQL 작성은 구문이 아니라 **데이터를 이해하고 질문을 구성하는 과정**이 핵심임  
- 기존에는 텍스트 에디터에 쿼리를 쓰고, 실행 버튼을 누르고, 결과를 기다리는 느린 반복 작업이 필수였음  
- Instant SQL은 이 과정을 **즉각적이고 자연스럽게 탐색**하는 흐름으로 바꿔줌  
  
### 주요 기능  
  
- # 작성하면서 실시간으로 결과 미리보기  
  - SQL 쿼리를 타이핑할 때마다 **결과 세트 미리보기**가 실시간으로 업데이트됨  
  - 간단한 변환부터 복잡한 집계까지 **데이터 탐색**을 끊김 없이 진행 가능함  
- # CTE(공통 테이블 표현식) 실시간 디버깅  
  - CTE를 클릭하여 **즉시 시각화** 가능  
  - 수정사항이 즉시 모든 종속 노드에 반영되어, CTE 디버깅이 매우 쉬워짐  
- # 복잡한 컬럼 수식 분해  
  - 컬럼 수식 오류를 빠르게 찾을 수 있도록 **결과 테이블에서 수식 분해** 가능  
  - 수식 로직이나 데이터 문제를 **즉각 식별**할 수 있음  
- # 다양한 데이터 소스 지원  
  - DuckDB가 지원하는 모든 소스(DuckDB 테이블, S3의 parquet 파일, Postgres, SQLite, MySQL, Iceberg, Delta 등)에 대해 **미리보기** 가능  
  - 외부 데이터 모델링과 탐색이 **매우 빠르게** 가능해짐  
- # 최종 실행 전 빠른 쿼리 검증  
  - 미리보기를 통해 쿼리를 다듬은 후, 만족스러우면 **최종 실행** 가능  
  - SQL 작성-실행-대기 주기를 **혁신적으로 단축**시켜줌  
- # AI 기능과의 결합  
  - 선택한 텍스트에 대해 **자연어 명령**을 입력하면 AI가 수정 제안을 해줌  
  - 제안 결과를 **즉시 미리보기**할 수 있어, 실수 위험 없이 수정을 수용할 수 있음  
  
### 어떻게 가능했는가  
  
- # 초저지연 쿼리 실행 기술  
  - **DuckDB의 로컬 우선 설계** 덕분에 PC에서 직접 빠른 결과를 얻을 수 있음  
  - MotherDuck의 **듀얼 실행 아키텍처**가 대용량 데이터도 저지연으로 지원함  
- # 쿼리 재작성 기술  
  - **DuckDB JSON 확장 기능**을 활용하여 SELECT 쿼리의 **AST(구문 트리)**를 추출하고 활용함  
  - 쿼리 일부를 **로컬 캐시 샘플 데이터**로 대체하여 빠른 미리보기가 가능해짐  
- # 스마트 캐싱 시스템  
  - **미리 예측된 데이터 캐시**를 사용해 키 입력 즉시 결과를 렌더링함  
  - 다양한 캐싱 전략을 사용하여 사용자가 손가락을 떼기도 전에 결과가 나타남  
- # 커서-구문트리 매핑  
  - 사용자의 **커서 위치**를 AST에서 특정 SELECT 노드로 정확히 매핑하는 기능을 개발함  
  - 복잡한 쿼리 안에서도 사용자가 작업 중인 **SELECT문**만 골라서 미리보기 제공 가능함  
  
### Instant SQL 이용 방법  
  
- **MotherDuck**이나 **DuckDB Local UI**에서 "공개 프리뷰"로 사용 가능  
- 새로운 **프롬프트 기반 수정 기능**도 MotherDuck 사용자에게 제공됨

## Comments



### Comment 37845

- Author: aer0700
- Created: 2025-04-26T12:35:44+09:00
- Points: 1

이거 완전 신기하네요

### Comment 37825

- Author: neo
- Created: 2025-04-25T23:34:08+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43782406) 
* DataCouncil 컨퍼런스에서 이 기능과 블로그 포스트의 저자가 발표하는 것을 보았고, 이를 구축하는 데 많은 공예, 창의성, 그리고 세심함이 들어갔음을 알 수 있었음. Hamilton과 MotherDuck 팀의 멋진 출시를 축하함
* DuckDB UI와 MotherDuck에서 멋진 비디오가 있음
* SQL에 파이프 구문이 있으면 더 좋을 것 같음. SQL은 훌륭하지만, 그 순서는 직관적이지 않으며, 중간 결과를 미리 보기 위해서는 CTE만이 신뢰할 수 있는 방법임. 파이프를 사용하면 각 단계가 중간 출력을 명확히 보여줄 수 있음
  - 예시:
    - FROM orders
    - WHERE order_date >= '2024-01-01'
    - AGGREGATE SUM(order_amount) AS total_spent GROUP BY customer_id
    - WHERE total_spent > 1000
    - INNER JOIN customers USING(customer_id)
    - CALL ENRICH.APOLLO(EMAIL > customers.email)
    - AGGREGATE COUNT(*) high_value_customer GROUP BY company.country
* DuckDB 엔지니어가 있다면, 당신의 도구가 생물정보학/생명공학에서 내 작업에 엄청난 도움이 되었음을 알리고 싶음. 생물학적 데이터(복잡하고, 끊임없이 변화하는)가 요구하는 유연성과 단순함을 가지고 있음
* DuckDB가 kusto나 구글의 파이프 쿼리 구문과 같은 파이프 구문을 가지지 않은 것은 치명적인 기능이 빠진 것임
  - 왜 치명적인 기능인가? 우선, LLM은 왼쪽에서 오른쪽으로 텍스트를 완성함. 그것만으로도 치명적인 기능임
  - 하지만 컴퓨팅 파워가 적은 우리 인간에게는 파이프 구문이 (훨씬 더 나은) 코드 완성을 가능하게 함
  - 파이프 구문은 작업하기에 즐거우며 SQL로 돌아가는 것은 정말 실망스러운 순간임
* DELETE 쿼리와 함께 작동하지 않기를 바람
* DuckDB의 노트북을 탐색하는 것을 정말 좋아하며, 이 기능은 그것들을 더욱 멋지게 만듦. 그러나 공유, 내보내기 또는 git 저장소에 커밋할 수 없다는 점은 매우 제한적임. DuckDB 데이터베이스에 저장하고, 심지어 역사적 버전을 저장하는 것 같지만, 실제로 그것으로 할 수 있는 것이 없음
* CTE 검사는 놀라움. 수동으로 너무 많은 시간을 소비함
* 멋진 도구이며, SQL을 위한 매니폴드 프로젝트와 함께 사용하면 더욱 멋짐. 타입 안전하고 네이티브 DuckDB 구문에 대한 훌륭한 지원을 제공함
* 멋져 보이지만, 쿼리하려는 전체 테이블을 보고 싶음. 항상 쿼리를 시작할 때 `select * from table limit 10;`을 빠르게 실행한 후 열과 조인을 추가함
