> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 사용 가능한 확장 기능

> AI, 암호화, 네트워킹, HTTP, UUIDs, 기하학 기능을 지원하는 VillageSQL의 공식 확장 기능입니다.

VillageSQL은 내장 확장 기능을 제공하며 VillageSQL 팀에서 구축 및 유지 관리하는 공식 확장 기능을 지원합니다. `INSTALL EXTENSION` 명령어로 설치할 수 있습니다.

## 내장 확장 기능

<Warning>
  소스에서 빌드할 때는 `vsql_complex`와 `vsql_simple`만 포함됩니다. 아래의 공식 확장 기능은 별도의 저장소에서 관리됩니다.
</Warning>

### vsql\_complex

**상태:** VillageSQL 내장
**저장소:** [villagesql-server/villagesql/examples/vsql-complex](https://github.com/villagesql/villagesql-server/tree/main/villagesql/examples/vsql-complex)

전기 공학, 신호 처리, 과학 계산에 대한 완전한 산술 지원을 제공하는 복소수 데이터 유형입니다.

**기능:**

* 복소수(a + bi) 저장을 위한 `COMPLEX` 열 유형
* 문자열 리터럴 형식: `'(real,imaginary)'` (예: `'(3.0,4.0)'`)
* 산술: 덧셈, 뺄셈, 곱셈, 나눗셈
* 유틸리티: `complex_real()`, `complex_imag()`, `complex_abs()`, `complex_conjugate()`
* 이진 저장: 16바이트(2개의 double)

**설치:**

```sql theme={null}
INSTALL EXTENSION vsql_complex;
```

**예시:**

```sql theme={null}
CREATE TABLE signals (
    id INT PRIMARY KEY,
    impedance COMPLEX,
    frequency_response COMPLEX
);

INSERT INTO signals VALUES
    (1, '(50.0,0.0)', '(0.95,0.31)');

SELECT
    complex_abs(impedance) as magnitude,
    complex_add(impedance, frequency_response) as total
FROM signals;
```

## 핵심 확장 기능

다음 확장 기능은 별도의 저장소에서 관리되며 별도로 빌드하고 설치해야 합니다. 각 확장 기능은 자체 설치 지침과 문서를 제공합니다.

### vsql\_ai

**저장소:** [villagesql/vsql-ai](https://github.com/villagesql/vsql-ai)

AI 기반 SQL 함수. SQL 쿼리에 대한 AI 프롬프팅 및 임베딩 함수를 지원합니다. Anthropic Claude, Google Gemini, OpenAI, 로컬 Ollama를 지원합니다.

### vsql\_crypto

**저장소:** [villagesql/vsql-crypto](https://github.com/villagesql/vsql-crypto)

암호화 함수. 해싱(MD5, SHA-1, SHA-256, SHA-512 등), HMAC, AES 암호화, 비밀번호 해싱, OpenSSL을 사용한 안전한 랜덤 데이터 생성을 지원합니다.

### vsql\_cube

**저장소:** [villagesql/vsql-cube](https://github.com/villagesql/vsql-cube)

N차원 상자 및 점 유형. 최대 100차원까지 기하학적 상자와 점을 저장하고 쿼리할 수 있으며, 생성자, 접근자, 조건자, 거리, 기하학 함수를 제공합니다. VillageSQL 0.0.4 이상이 필요합니다.

### vsql\_http

**저장소:** [villagesql/vsql-http](https://github.com/villagesql/vsql-http)

HTTP 클라이언트 함수. SQL 쿼리에서 HTTP 요청(GET, POST, PUT, DELETE, PATCH)을 보내며 JSON 응답을 처리하고, URL 인코딩 및 디코딩을 지원합니다.

### vsql\_network\_address

**저장소:** [villagesql/vsql-network-address](https://github.com/villagesql/vsql-network-address)

네트워크 주소 유형. IPv4, IPv6, MAC 주소 데이터 유형을 검증, 비교, 네트워크 연산과 함께 지원합니다.

### vsql\_uuid

**저장소:** [villagesql/vsql-uuid](https://github.com/villagesql/vsql-uuid)

UUID 데이터 유형 및 함수. SQL 내에서 직접 UUID(v1, v3, v4, v5, v6, v7)를 생성하고 작업할 수 있으며, 내장 16바이트 UUID 유형, 타임스탬프 추출, 비교 기능을 제공합니다.

### vsql\_boolean

**저장소:** [villagesql/vsql-boolean](https://github.com/villagesql/vsql-boolean)

실제 불리언 유형. 표준 진리값(`true`/`false`, `yes`/`no`, `on`/`off`, `1`/`0`), 1바이트 저장 공간, 올바른 덤프/복원 동작을 갖춘 `STRICTBOOL` 열 유형입니다. 집계 함수 `boolean_sum()`은 그룹 내 `TRUE` 값의 개수를 `INT`로 반환하고, `boolean_avg()`는 `TRUE` 값의 비율(TRUE 개수 ÷ NULL이 아닌 개수)을 `REAL`로 반환합니다. 두 함수 모두 `NULL`을 무시하며, 빈 그룹에 대해 `boolean_avg()`는 `NULL`을 반환합니다.

### vsql\_rest

**저장소:** [villagesql/vsql-rest](https://github.com/villagesql/vsql-rest)

REST API 서버. 코드를 작성하지 않고도 데이터베이스 테이블을 실시간 HTTP/HTTPS 엔드포인트로 공개합니다. `SET GLOBAL`로 구성하고, URL 필터로 테이블을 조회하며, `/rpc/`를 통해 저장 함수를 호출할 수 있습니다. 미리 보기 기능이므로 `--vsql_allow_preview_extensions=ON`으로 시작한 서버가 필요합니다.

### vsql\_trgm

**저장소:** [villagesql/vsql-trgm](https://github.com/villagesql/vsql-trgm)

트라이그램 기반 텍스트 유사도 검색. PostgreSQL `pg_trgm`의 포팅 버전입니다. 문자열 간 유사도 점수 계산, 열에서 근사 일치 항목 찾기, 단어 단위 유사도 측정을 모두 SQL에서 수행할 수 있습니다. VillageSQL 0.0.4가 필요합니다.

### vsql\_fuzzystrmatch

**저장소:** [villagesql/vsql-fuzzystrmatch](https://github.com/villagesql/vsql-fuzzystrmatch)

퍼지 문자열 매칭 함수. PostgreSQL `fuzzystrmatch`의 포팅 버전입니다. Soundex 발음 코드, 레벤슈타인 편집 거리(비용 설정 및 조기 종료 임계값 지원), Metaphone, Double Metaphone을 제공하여 이름 매칭, 맞춤법 교정, 발음 기반 중복 제거에 활용할 수 있습니다. VillageSQL 0.0.4가 필요합니다.

### vsql\_currency

**저장소:** [villagesql/vsql-currency](https://github.com/villagesql/vsql-currency)

ISO 4217 통화 코드 유형. 164개 통화 코드 중 하나를 단일 바이트에 저장하는 `currency` 열 유형으로, 대소문자를 구분하지 않는 입력, 대문자 정규화 출력, 알파벳순 정렬, 인덱스를 지원합니다. `adjust/pg-currency`의 Rust 포팅 버전입니다.

### vsql\_oauth2

**저장소:** [villagesql/vsql-oauth2](https://github.com/villagesql/vsql-oauth2)

OAuth2/OIDC JWT 인증. `IDENTIFIED WITH vsql_oauth2`로 생성한 계정은 비밀번호 대신 JWT를 제시하여 인증합니다. 확장 기능은 구성된 RS256/ES256 공개 키로 서명을 검증하고 `exp`를 확인하고 구성된 경우 `iss`/`aud`도 확인한 뒤, 클레임을 VillageSQL 계정에 매핑합니다. 미리 보기 기능이므로 `--vsql_allow_preview_extensions=ON`으로 시작한 서버가 필요합니다.

### vsql\_stat\_ch

**저장소:** [villagesql/vsql-stat-ch](https://github.com/villagesql/vsql-stat-ch)

ClickHouse로 전송하는 SQL 문 단위 텔레메트리. 완료된 SQL 문마다 이벤트 하나를 수집하여 ClickHouse 네이티브 프로토콜(포트 9000) 또는 HTTP(포트 8123)로 배치 전송합니다. 전송 방식은 서버 실행 중에 전환할 수 있습니다. 미리 보기 기능이므로 `--vsql_allow_preview_extensions=ON`으로 시작한 서버가 필요합니다.

### vsql\_mcp

**저장소:** [villagesql/vsql-mcp](https://github.com/villagesql/vsql-mcp)

Model Context Protocol 서버. MCP Streamable HTTP를 통해 데이터베이스를 AI 에이전트용 도구 표면으로 노출합니다. 리스너는 서버 프로세스 내부에서 실행됩니다. 에이전트는 스키마 목록 조회, 테이블 설명, 읽기 전용 쿼리 실행을 수행할 수 있으며, 쓰기는 활성화할 때까지 꺼져 있습니다. 도구 쿼리는 전용 데이터베이스 계정을 통해 실행되고 선택적 테이블 허용 목록, 행 수 상한, 호출별 타임아웃이 적용됩니다. 미리 보기 기능이므로 `--vsql_allow_preview_extensions=ON`으로 시작한 서버가 필요합니다.

## 커뮤니티 확장 기능

커뮤니티 확장 기능은 VillageSQL 확장 프레임워크(VEF)를 사용하여 제3자가 구축합니다. VillageSQL 팀에서 관리하지 않습니다.

### vsql\_statistics

**저장소:** [ronaldbradford/vsql-statistics](https://github.com/ronaldbradford/vsql-statistics)
**관리자:** [Ronald Bradford](https://github.com/ronaldbradford)

데이터 분석을 위한 통계적 집계 함수. IQR, 사분위수, 중앙값, Tukey 경계 이상치 탐지 — `STATS_IQR`. VillageSQL 0.0.4 이상이 필요합니다.

### prometheus\_exporter

**저장소:** [ProxySQL/vsql-prometheus-exporter](https://github.com/ProxySQL/vsql-prometheus-exporter)
**관리자:** [ProxySQL](https://github.com/ProxySQL)

내장 Prometheus 메트릭 내보내기. HTTP `/metrics` 엔드포인트에서 Prometheus 노출 형식으로 MySQL 서버 메트릭(전역 상태, 전역 변수, InnoDB 메트릭, 복제 상태)을 노출합니다.

### vsql\_luhn

**저장소:** [intojhanurag/vsql-luhn](https://github.com/intojhanurag/vsql-luhn)
**관리자:** [intojhanurag](https://github.com/intojhanurag)

Luhn 알고리즘 검증기 및 검사 숫자 생성기. `luhn_valid()`로 신용카드 번호, IMEI 코드, 캐나다 SIN 및 기타 업계 식별자를 검증하고, `luhn_checkdigit()`로 올바른 검사 숫자를 생성합니다.

### vsql\_nanoid

**저장소:** [intojhanurag/vsql-nanoid](https://github.com/intojhanurag/vsql-nanoid)
**관리자:** [intojhanurag](https://github.com/intojhanurag)

짧고 URL 안전한 고유 식별자를 위한 NanoID 생성기. `nanoid()`는 21자 ID를 반환하며, `nanoid_with(size[, alphabet])`로 길이와 문자 집합을 사용자 지정할 수 있습니다. 암호학적으로 안전한 난수 소스를 사용합니다.

### vsql\_slugify

**저장소:** [intojhanurag/vsql-slugify](https://github.com/intojhanurag/vsql-slugify)
**관리자:** [intojhanurag](https://github.com/intojhanurag)

임의의 텍스트에서 URL 안전한 슬러그를 생성합니다 — 악센트가 있는 문자를 ASCII로 변환하고, 소문자로 만들고, 영숫자가 아닌 문자를 단일 구분자로 축약하고, 앞뒤 구분자를 제거합니다.

### vsql\_pgjwt

**저장소:** [intojhanurag/vsql-pgjwt](https://github.com/intojhanurag/vsql-pgjwt)
**관리자:** [intojhanurag](https://github.com/intojhanurag)

SQL에서 직접 JSON Web Token을 서명하고 검증하고 디코딩합니다. HMAC(HS256, HS384, HS512) 및 RSA(RS256) 알고리즘을 지원합니다.

### vsql\_address\_standardizer

**저장소:** [jobala/vsql-address-standardizer](https://github.com/jobala/vsql-address-standardizer)
**관리자:** [Japheth Obala](https://github.com/jobala)

미국의 자유 형식 우편 주소를 번지, 도로명, 접미사, 도시, 주, 우편번호 구성 요소로 구문 분석합니다. 이 확장 기능은 PostgreSQL의 contrib [address\_standardizer](https://github.com/postgis/address_standardizer)에서 영감을 받았습니다.
