> ## 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.

# 확장 프로그램 또는 플러그인 및 컴포넌트

> VEF 확장 프로그램을 구축할 때와 MySQL의 네이티브 플러그인 또는 컴포넌트 인터페이스를 사용할 때의 차이점.

VillageSQL은 MySQL의 추적 포크이며 드롭인 대체 프로그램입니다. MySQL 플러그인 및 컴포넌트 인터페이스는 VillageSQL에서 MySQL과 마찬가지로 작동합니다. VillageSQL은 VillageSQL 확장 프레임워크(VEF)를 제공합니다. 새로운 기능을 추가하기 위해(사용자 정의 SQL 함수, 사용자 정의 유형, 통합 등) VEF 확장 프로그램이 적합한 모델입니다.

## 어디에 무엇을 작성해야 하는가

새로운 것을 구축하는 경우, 자신의 저장소에서 VEF 확장 프로그램을 작성하세요. 플러그인과 컴포넌트도 작동하지만, VEF가 적합한 모델입니다 — [플러그인 및 컴포넌트 대신 확장 프로그램을 사용하는 이유](#why-extensions-instead-of-plugins-and-components)를 참조하세요.

VillageSQL 서버 저장소에 속하는 기여 사항:

|                                |                                                                         |
| ------------------------------ | ----------------------------------------------------------------------- |
| VEF 자체 개선 사항(새로운 훅 유형, SDK 기능) | [서버 저장소](https://github.com/villagesql/villagesql-server)에 PR 제출        |
| 서버 버그 수정                       | [서버 저장소](https://github.com/villagesql/villagesql-server)에서 이슈 또는 PR 제출 |

<h2 id="why-extensions-instead-of-plugins-and-components">
  플러그인 및 컴포넌트 대신 확장 프로그램을 사용하는 이유
</h2>

MySQL 플러그인과 컴포넌트는 VillageSQL에서 작동합니다. VEF 확장 프로그램은 더 많은 기능을 제공합니다:

* **사용자 정의 유형** — 새로운 열 유형 정의 가능(플러그인 및 UDF는 불가능)
* **패키징** — `.veb` 파일로 배포되며 `INSTALL EXTENSION`으로 설치
* **재시작 필요 없음** — 런타임에서 확장 프로그램 로드 및 언로드
* **버전 관리** — 확장 프로그램 매니페스트에서 선언되며 서버에서 강제 적용

## 새로운 확장 프로그램 시작하기

[vsql-extension-template](https://github.com/villagesql/vsql-extension-template)을 복제하거나 포크하세요. 이 템플릿에는 작동하는 헬로 월드 확장 프로그램, 매니페스트 형식, 전체 CMake 빌드 설정이 포함되어 있습니다.

저장소를 준비한 후, [확장 프로그램 만들기](/docs/ko/mysql-8.4/0.0.4/create)가 VEF SDK를 단계별로 안내합니다.

## VEF가 지원하지 않는 기능이 필요한 경우

VEF는 여전히 성장 중입니다. 아직 지원되지 않는 훅 또는 기능이 필요한 경우:

* **[서버 저장소](https://github.com/villagesql/villagesql-server/issues)에 이슈 생성**하여 필요한 기능 설명
* **기존 이슈에 투표하기** — 요청이 이미 존재하는 경우
* **서버 저장소에 훅 추가하는 PR 제출** — 프레임워크 개선 기여는 서버 저장소에서 환영합니다.
