CloudCannon & Astro
CloudCannon은 Git 기반의 헤드리스 콘텐츠 관리 시스템으로, 콘텐츠와 UI 컴포넌트를 위한 시각적 에디터를 통해 풍부한 실시간 편집 경험을 제공합니다.
Astro와 통합하기
섹션 제목: “Astro와 통합하기”이 가이드는 CloudCannon 사이트 대시보드를 사용하여 Astro의 CMS로 CloudCannon을 구성하는 과정을 설명합니다.
사이트 대시보드는 Astro 파일을 체계적으로 보여주며, 다음을 사용하여 편집할 수 있는 기능을 제공합니다.
- 구조화된 데이터 파일과 마크업을 관리하기 위한 데이터 에디터
- 최소한의 화면에서 WYSIWYG 방식의 리치 텍스트 편집을 제공하는 콘텐츠 에디터
- 상호작용 가능한 사이트 미리보기를 제공하고, 페이지에서 직접 편집할 수 있는 비주얼 에디터
또한 최소한의 소스 편집기(파일 소스 코드의 사소한 변경을 위한 브라우저 내 코드 편집기)에 대한 역할 기반 접근 권한을 구성할 수도 있습니다.
사전 요구 사항
섹션 제목: “사전 요구 사항”- CloudCannon 계정이 필요합니다. 계정이 없다면, CloudCannon에 가입할 수 있습니다.
- 로컬 또는 CloudCannon이 지원하는 Git 서비스 제공업체(GitHub, GitLab, Bitbucket) 중 하나에 저장된 기존 Astro 프로젝트가 필요합니다. 기존 프로젝트가 없는 경우, CloudCannon의 Astro 시작 템플릿으로 시작할 수 있습니다.
새로운 CloudCannon 사이트 구성하기
섹션 제목: “새로운 CloudCannon 사이트 구성하기”다음 단계에 따라 대시보드에서 새로운 CloudCannon 사이트를 구성할 수 있습니다. 이 사이트는 기존 Astro 저장소와 연결되며, CloudCannon의 WYSIWYG 텍스트 에디터를 통해 콘텐츠를 관리하고 수정할 수 있게 해줍니다.
- CloudCannon 조직 홈 페이지에서 새로운 사이트를 생성합니다.
- Git 서비스 제공업체 인증을 진행하고 연결하려는 Astro 저장소를 선택합니다.
- 사이트 이름을 설정하면 CloudCannon이 사이트를 생성하고 파일 동기화를 시작합니다.
- 사이트 대시보드에서 제공되는 안내 작업에 따라 CloudCannon 설정 파일(
cloudcannon.config.yml) 생성을 포함한 사이트 설정을 완료합니다. - CloudCannon 설정 파일에 구성을 추가하여 CloudCannon이 에디터에게 어떻게 보이고 작동하는지 설정합니다. CloudCannon의 구성 모드를 사용하여 편집하거나 코드 에디터에서 직접 구성을 추가할 수 있습니다.
- 구성 모드를 끄면 콘텐츠 제작자를 위한 편집 인터페이스로 돌아갑니다. 설정 파일은 나머지 파일과 함께 저장소에 다시 저장됩니다.
이제 사이트 대시보드를 탐색하여 Astro 사이트의 콘텐츠 파일을 확인하고, 필요에 따라 콘텐츠 에디터(예: .md, .mdx), 데이터 에디터(예: .yml, .json), 비주얼 에디터(예: .astro)를 사용하여 편집할 수 있습니다.
또한 파일을 컬렉션으로 구성하거나, CloudCannon 스키마를 생성하고, 시각적 편집을 위한 프로젝트 설정과 같은 CloudCannon의 기능들을 활용할 수도 있습니다.
더 자세한 지침은 CloudCannon의 시작 가이드를 참조하세요.
CloudCannon 컬렉션 및 스키마
섹션 제목: “CloudCannon 컬렉션 및 스키마”Astro의 콘텐츠 컬렉션을 사용한다면 사이트 대시보드에서 구성 및 탐색에 사용되는 컬렉션과 새로운 콘텐츠 항목의 형식을 정의하는 데 사용되는 스키마라는 CloudCannon의 개념이 익숙할 것입니다.
CloudCannon 사이트 대시보드를 사용하면 Astro 프로젝트의 페이지와 콘텐츠를 비슷한 형식을 가진 관련 파일의 그룹인 컬렉션으로 구성할 수 있습니다. 이를 통해 유사한 유형의 콘텐츠를 함께 확인하여 편집을 용이하게 하고, 콘텐츠 파일을 쉽게 탐색, 정렬 및 필터링할 수 있습니다.
컬렉션을 위한 CloudCannon 스키마 생성하기
섹션 제목: “컬렉션을 위한 CloudCannon 스키마 생성하기”CloudCannon 항목의 데이터 속성이 콘텐츠 컬렉션에 정의된 Zod 유효성 검사 schema와 일치하도록 CloudCannon 스키마(새 항목을 생성하기 위한 빈 템플릿 문서)를 생성할 수 있습니다. 템플릿 스키마를 생성하면 CloudCannon에서 생성되는 모든 새 문서가 콘텐츠 컬렉션에 필요한 속성을 갖추게 되어 프로젝트의 타입 오류를 방지할 수 있습니다. 또한 CloudCannon 스키마에는 1인 블로그의 작성자 이름과 같이 새 문서를 시작하기 위한 기본값을 포함할 수 있습니다.
다음 예시는 Markdown으로 작성된 블로그 포스트를 위한 Astro 콘텐츠 컬렉션(blog)을 기반으로 CloudCannon 스키마를 생성합니다. 이 스키마는 CloudCannon의 “Posts” 컬렉션에서 새 항목을 생성할 때 사용할 수 있습니다.
-
.cloudcannon/schemas/폴더가 존재하지 않는다면 생성합니다. -
기본 블로그 포스트 템플릿으로 사용할 빈 파일을 이 폴더에 추가합니다. 파일 이름은 중요하지 않지만, 파일 확장자는 Astro 콘텐츠 컬렉션 항목과 동일해야 합니다. (예:
post.md) -
콘텐츠 컬렉션 스키마에 필요한 프런트매터 필드를 작성합니다. 반드시 모든 필드의 값을 제공할 필요는 없지만, 포함된 콘텐츠는 새 항목을 생성할 때 자동으로 포함됩니다. 이 필드들은 콘텐츠 에디터의 사이드바에서 사용할 수 있습니다.
다음 블로그 포스트용 예시 스키마에는 제목, 작성자, 날짜를 위한 자리표시자가 포함되어 있습니다.
.cloudcannon/schemas/post.md ---title:author:date:--- -
CloudCannon 설정 파일의
collections_config속성 내 “Posts” 컬렉션 아래에 스키마 파일 경로를 추가합니다.cloudcannon.config.yml collections_config:posts:path: content/blogname: Postsicon: post_addschemas:default:path: .cloudcannon/schemas/post.mdname: Blog Post Entry
새 항목 생성하기
섹션 제목: “새 항목 생성하기”CloudCannon 사이트 대시보드에서 “Add” 버튼을 사용하여 새로운 콘텐츠를 생성할 수 있습니다. 현재 속해 있는 컬렉션에 따라 cloudcannon.config.yml에 정의한 스키마 중에서 항목 유형을 선택할 수 있습니다.
CloudCannon에 파일을 업로드하거나 Astro 프로젝트에 직접 새 파일을 생성할 수도 있습니다. 사이트 변경 사항을 저장하면, 어느 위치에서 생성된 파일이든 동기화되어 CloudCannon과 Astro 프로젝트 양쪽에서 모두 사용할 수 있게 됩니다.
다음은 Astro의 blog 콘텐츠 컬렉션을 충족하기 위해 생성한 post.md 템플릿 스키마를 사용하여, CloudCannon 사이트 대시보드의 “Posts” 컬렉션에서 새로운 블로그 포스트를 생성하는 예시입니다.
-
CloudCannon 사이트 대시보드에서 추가하려는 콘텐츠 유형에 해당하는 컬렉션으로 이동합니다. 예를 들어, 새로운 블로그 포스트를 추가하려면 “Posts” 컬렉션으로 이동합니다.
-
“Add” 버튼을 사용하여 새 포스트를 생성합니다. CloudCannon의
post.md스키마를 설정했다면, 기본 블로그 포스트 항목을 선택하여 새 포스트를 만들 수 있습니다. -
콘텐츠 에디터의 사이드바에서 필요한 필드들을 채우고(예:
title,author,date) 포스트 내용을 작성한 뒤 저장합니다. -
이 포스트는 CloudCannon에 로컬로 저장되며 사이트 대시보드의 “Posts” 컬렉션에서 확인할 수 있습니다. 이 대시보드 페이지에서 모든 개별 포스트를 확인하고 수정할 수 있습니다.
-
이 새 포스트를 Astro 저장소에 커밋할 준비가 되면, 사이트 대시보드의 사이트 탐색 사이드바에서 “Save”를 선택합니다. 그러면 마지막 커밋 이후 사이트에 발생한 모든 저장되지 않은 변경 사항이 표시되며, 저장하거나 취소할 항목을 검토하고 선택할 수 있습니다.
-
Astro 프로젝트 파일로 돌아가 Git에서 새로운 변경 사항을 가져옵니다. 이제 해당 포스트를 위해 지정된 디렉터리에서 새로운
.md파일을 찾을 수 있습니다. 예를 들면 다음과 같습니다.디렉터리src/
디렉터리content/
디렉터리blog/
- my-new-post.md
-
코드 에디터에서 해당 파일로 이동하여 입력한 Markdown 콘텐츠가 있는지 확인합니다. 예를 들면 다음과 같습니다.
---title: My New Postauthor: Sarahdate: 2025-11-12---This is my very first post created in CloudCannon. I am **super** excited!
CloudCannon 콘텐츠 렌더링하기
섹션 제목: “CloudCannon 콘텐츠 렌더링하기”기존 Astro 프로젝트에서와 마찬가지로 Astro의 콘텐츠 컬렉션 API를 사용하여 포스트와 컬렉션을 조회하고 표시하세요.
컬렉션 목록 표시하기
섹션 제목: “컬렉션 목록 표시하기”다음 예시는 각 포스트의 제목 목록을 개별 포스트 페이지로 연결되는 링크와 함께 표시합니다.
---import { getCollection } from 'astro:content';
const posts = await getCollection('blog');---<ul> {posts.map(post => ( <li> <a href={`/posts/${post.slug}`}>{post.data.title}</a> </li> ))}</ul>개별 항목 표시하기
섹션 제목: “개별 항목 표시하기”개별 포스트의 콘텐츠를 표시하려면 <Content /> 컴포넌트를 가져와 콘텐츠를 HTML로 렌더링할 수 있습니다.
---import { getEntry, render } from 'astro:content';
const entry = await getEntry('blog', 'my-first-post');const { Content } = await render(entry);---
<main> <h1>{entry.data.title}</h1> <p>By: {entry.data.author}</p> <Content /></main>컬렉션 콘텐츠의 조회, 필터링, 표시 등에 관한 더 자세한 정보는 콘텐츠 컬렉션 문서의 전체 내용을 참조하세요.
CloudCannon + Astro 배포하기
섹션 제목: “CloudCannon + Astro 배포하기”CloudCannon은 모든 요금제에 포함된 무료 웹 호스팅을 제공하며, 내부적으로 Cloudflare를 사용합니다. 하지만 Git 저장소에서 배포할 수 있는 거의 모든 호스팅 제공업체를 통해 호스팅할 수 있습니다.
웹사이트를 배포하려면 배포 가이드를 방문하여 선호하는 호스팅 제공업체의 지침을 따르세요.
시각적 편집 설정하기
섹션 제목: “시각적 편집 설정하기”CloudCannon의 시각적 에디터를 사용하면 사이트의 실시간 대화형 미리보기 화면에서 텍스트, 이미지 및 기타 콘텐츠를 확인하고 수정할 수 있습니다. 이러한 업데이트는 편집 가능 영역, 데이터 패널 및 사이드바를 통해 이루어집니다.
CloudCannon의 시각적 편집 설정 가이드를 따르세요. 이 가이드는 사이트 대시보드에서도 확인할 수 있습니다. 가이드에서는 DOM 요소에 HTML data- 속성을 설정하거나 웹 컴포넌트를 삽입하여 실시간 미리보기의 편집 가능 영역을 정의하는 방법을 보여줍니다.
예를 들어, 다음 템플릿은 실시간 미리보기에서 업데이트할 수 있는 편집 가능한 author 값을 생성합니다.
<p>By: <editable-text data-prop="author">{author}</editable-text></p>컴포넌트를 활용한 시각적 편집
섹션 제목: “컴포넌트를 활용한 시각적 편집”CloudCannon을 사용하면 시각적 에디터에서 Astro 컴포넌트를 실시간으로 다시 렌더링할 수 있도록 컴포넌트 편집 가능 영역을 정의할 수 있습니다. 이를 통해 Astro 컴포넌트에 대해서도 동일한 대화형 편집 경험을 제공할 수 있습니다.
-
@cloudcannon/editable-regions패키지를 설치합니다.터미널 창 npm install @cloudcannon/editable-regions터미널 창 pnpm add @cloudcannon/editable-regions터미널 창 yarn add @cloudcannon/editable-regions -
Astro 구성 파일에
editableRegions통합을 추가합니다.astro.config.mjs import { defineConfig } from 'astro/config';import editableRegions from "@cloudcannon/editable-regions/astro-integration";export default defineConfig({// ...integrations: [editableRegions()],// ...}); -
CloudCannon의 컴포넌트 등록 지침을 따르세요. 이는 해당 컴포넌트들이 시각적 에디터의 클라이언트 측 사용을 위해 번들링되어야 함을 CloudCannon에 알리는 과정입니다.
-
시각적 편집을 위해 컴포넌트에 적절한 속성을 추가합니다. 예를 들어, 다음
CTA.astro컴포넌트의 설명이나 버튼 색상과 같은 속성들을 CloudCannon의 시각적 에디터에서 업데이트할 수 있습니다.src/components/CTA.astro ---const { description, link, buttonText, buttonColor } = Astro.props;---<p data-editable="text" data-prop="description">{description}</p><a href={link}><span data-editable="text" data-prop="buttonText" style={`background-color: ${buttonColor}`}>{buttonText}</span></a>
공식 리소스
섹션 제목: “공식 리소스”- CloudCannon: The Astro CMS
- Astro Sendit Template
- 동영상: Getting started with Astro and CloudCannon CMS: WYSIWYG blogging
- 동영상: Using CloudCannon’s configuration mode
- 동영상: Visually edit your Astro site
더 많은 CMS 가이드
주요 CMS 파트너
-
CloudCannon
Git-based CMS built for speed, security, and zero headaches.