EmDash 소개

이 페이지

EmDash는 Astro 네이티브 콘텐츠 관리 시스템입니다. 컬렉션, 분류법, 메뉴, 위젯 및 세련된 관리 UI와 같은 익숙한 CMS 패턴을 완전한 TypeScript 지원 및 이식 가능한 배포와 함께 Astro 사이트에 직접 가져옵니다.

EmDash란 무엇인가

EmDash는 Astro를 위해 특별히 제작된 CMS입니다. Astro 6의 Live Content Collections를 사용하여 런타임에 콘텐츠를 제공하므로 편집 내용이 즉시 나타납니다. 콘텐츠는 SQL 데이터베이스(SQLite, libSQL, Cloudflare D1 또는 PostgreSQL)에 저장되고 미디어는 S3 호환 스토리지(R2 또는 로컬 파일 시스템)에 저장됩니다.

주요 특징:

  • 시각적 콘텐츠 모델링 — 관리 UI에서 컬렉션과 필드를 정의하고 변경하며, 변경 사항이 즉시 적용됩니다.
  • 라이브 컬렉션 — 콘텐츠가 런타임에 제공되므로 편집 내용이 즉시 나타납니다.
  • 플러그인 시스템 — WordPress에서 영감을 받은 훅, 스토리지, 설정 및 관리 UI 확장.
  • 클라우드 이식 가능 — Cloudflare(Workers + D1 + R2) 또는 Node.js에서 실행되며, SQLite, libSQL 또는 PostgreSQL과 모든 S3 호환 스토리지를 사용할 수 있습니다.

EmDash가 아닌 것

  • 헤드리스 CMS가 아님 — EmDash는 Astro와 긴밀하게 통합되어 있으며 API를 통해 호출하는 별도의 서비스가 아닌 동일한 배포에서 실행됩니다.
  • WordPress 호환이 아님 — PHP나 WordPress 플러그인을 실행하지 않습니다. WordPress 콘텐츠와 개념은 EmDash 동등물로 마이그레이션됩니다.
  • 페이지 빌더가 아님 — EmDash는 구조화된 콘텐츠를 관리합니다. Astro 컴포넌트로 시각적 레이아웃을 구축하세요.

EmDash는 누구를 위한 것인가

에이전시 개발자

재사용 가능한 플러그인과 테마로 클라이언트 사이트를 빠르게 구축하세요. 플러그인은 명시적 API가 있는 격리된 컨텍스트에서 실행됩니다.

솔로 개발자

콘텐츠 관리는 Astro 사이트의 일부이며 하나의 프로젝트로 배포 및 관리됩니다.

콘텐츠 편집자

관리 패널에서 콘텐츠를 생성하고 편집합니다.

WordPress 사용자

콘텐츠 및 플러그인을 위한 마이그레이션 경로. 현대적인 도구, 익숙한 개념.

아키텍처 개요

다음 다이어그램은 EmDash가 Astro 사이트 내에 어떻게 위치하며 콘텐츠 엔진, 관리 패널 및 플러그인을 데이터 레이어에 연결하는지 보여줍니다.

┌─────────────────────────────────────────────────────────────┐
│                      Your Astro Site                        │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                 EmDash Integration                  │  │
│  │                                                       │  │
│  │  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐   │  │
│  │  │  Content    │  │   Admin     │  │   Plugins    │   │  │
│  │  │  Engine     │  │   Panel     │  │              │   │  │
│  │  └─────────────┘  └─────────────┘  └──────────────┘   │  │
│  │                                                       │  │
│  │  ┌───────────────────────────────────────────────────┐│  │
│  │  │                  Data Layer                       ││  │
│  │  │Database (SQLite/libSQL/D1/Postgres) + media store ││  │
│  │  └───────────────────────────────────────────────────┘│  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                   Astro Framework                     │  │
│  │        Live Collections • Sessions • Middleware       │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

핵심 개념

문서 전체에서 사용되는 주요 개념은 다음과 같습니다:

  • Collections(컬렉션) — 데이터베이스에 정의된 콘텐츠 유형(게시물, 페이지, 제품 등)
  • Fields(필드) — 컬렉션의 속성(제목, 콘텐츠, 가격 등)
  • Taxonomies(분류법) — 분류 시스템(카테고리, 태그, 사용자 정의 분류법)
  • Menus(메뉴) — 관리자가 편집 가능한 내비게이션 구조
  • Widget Areas(위젯 영역) — 사이드바 및 푸터를 위한 구성 가능한 콘텐츠 영역
  • Plugins(플러그인) — 훅, 스토리지 및 UI를 통해 기능을 추가하는 확장

다음 단계