플러그인 설치
EmDash 플러그인은 두 가지 방식으로 설치할 수 있습니다: 관리자 대시보드를 통해 마켓플레이스에서 설치하거나, Astro 설정에 직접 추가하는 방식입니다. 마켓플레이스 플러그인은 격리된 샌드박스에서 실행되며, 설정 기반 플러그인은 인프로세스로 실행됩니다.
마켓플레이스에서 설치
섹션 제목: “마켓플레이스에서 설치”관리자 대시보드에는 플러그인을 검색, 설치 및 관리할 수 있는 마켓플레이스 브라우저가 포함되어 있습니다.
사전 요구사항
섹션 제목: “사전 요구사항”마켓플레이스 플러그인을 설치하려면 사이트에 다음이 필요합니다:
-
샌드박스 러너 구성됨 — 마켓플레이스 플러그인은 격리된 V8 워커에서 실행되며, 이는 샌드박스 런타임이 필요합니다:
astro.config.mjs import { emdash } from "emdash/astro";export default defineConfig({integrations: [emdash({marketplace: "https://marketplace.emdashcms.com",sandboxRunner: true,}),],}); -
관리자 권한 — 관리자만 플러그인을 설치하거나 제거할 수 있습니다.
탐색 및 설치
섹션 제목: “탐색 및 설치”- 관리자 패널을 열고 Plugins > Marketplace로 이동합니다
- 플러그인을 탐색하거나 검색합니다
- 플러그인 카드를 클릭하여 상세 페이지(README, 스크린샷, 기능, 보안 감사 결과)를 확인합니다
- Install을 클릭합니다
- 기능 동의 대화 상자를 검토합니다 — 이는 플러그인이 접근할 수 있는 항목을 보여줍니다
- 설치를 확인합니다
플러그인이 다운로드되어 사이트의 R2 버킷에 저장되고 샌드박스 러너에 로드됩니다. 즉시 활성화됩니다.
기능 동의
섹션 제목: “기능 동의”설치 전에, 플러그인이 접근이 필요한 항목을 나열한 대화 상자가 표시됩니다:
| 기능 | 의미 |
|---|---|
read:content | 콘텐츠 읽기 |
write:content | 콘텐츠 생성, 업데이트 및 삭제 |
read:media | 미디어 라이브러리 접근 |
write:media | 미디어 업로드 및 관리 |
network:fetch | 특정 호스트에 네트워크 요청 수행 |
보안 감사
섹션 제목: “보안 감사”마켓플레이스의 모든 플러그인 버전은 자동화된 보안 감사를 거쳤습니다. 감사 결과는 플러그인 카드에 표시됩니다:
- 통과 — 문제 없음
- 경고 — 사소한 문제가 발견됨 (결과 검토 필요)
- 실패 — 심각한 보안 문제 감지됨
플러그인의 상세 페이지에서 개별 발견 사항과 심각도를 포함한 전체 감사 보고서를 볼 수 있습니다.
업데이트
섹션 제목: “업데이트”설치된 플러그인의 최신 버전이 사용 가능할 때:
- 관리자 패널에서 Plugins로 이동합니다
- 마켓플레이스 플러그인에 Update available 배지가 표시됩니다
- Update를 클릭하여 변경 로그와 기능 변경 사항을 확인합니다
- 새 버전에 추가 기능이 필요한 경우, 차이점이 표시되고 승인이 필요합니다
- 업데이트를 확인합니다
- 관리자 패널에서 Plugins로 이동합니다
- 제거하려는 마켓플레이스 플러그인을 클릭합니다
- Uninstall을 클릭합니다
- 플러그인의 저장된 데이터를 유지할지 삭제할지 선택합니다
- 확인합니다
플러그인의 샌드박스 코드가 R2 버킷에서 제거되고 즉시 실행이 중지됩니다.
설정에서 추가
섹션 제목: “설정에서 추가”신뢰할 수 있는 플러그인(자체 코드 또는 npm을 통해 설치한 패키지)의 경우, Astro 설정에 직접 추가하세요:
typescript title="astro.config.mjs"import { defineConfig } from "astro/config";import { emdash } from "emdash/astro";import seoPlugin from "@emdash-cms/plugin-seo";
export default defineConfig({ integrations: [ emdash({ plugins: [ seoPlugin({ generateSitemap: true }), ], }), ],});설정 기반 플러그인:
- 인프로세스로 실행됨 (샌드박스되지 않음)
- Node.js API에 대한 전체 접근 권한을 가짐
- 빌드 시와 서버 시작 시마다 로드됨
- 관리자 UI에서 설치하거나 제거할 수 없음
마켓플레이스 vs 설정: 언제 무엇을 사용할지
섹션 제목: “마켓플레이스 vs 설정: 언제 무엇을 사용할지”| 마켓플레이스 | 설정 | |
|---|---|---|
| 실행 | 샌드박스된 V8 격리 | 인프로세스 |
| 설치 방법 | 관리자 UI | 코드 변경 + 배포 |
| 기능 | 런타임 시 강제 적용 | 문서화만 됨 |
| Node.js API | 사용 불가 | 전체 접근 권한 |
| 최적 용도 | 타사 플러그인 | 자사 코드 |
| 업데이트 | 관리자에서 원클릭 | 버전 업데이트 + 배포 |