Community코딩 & 개발github.com

webflow/webflow-skills

Webflow CMS 아키텍처 및 모범 사례에 대한 전문적인 안내입니다. 컬렉션 계획, 관계 설정, 콘텐츠 구조 최적화 또는 CMS 문제 해결 시 사용하세요.

webflow-skills란 무엇인가요?

이 스킬은 Webflow CMS를 사용하는 개발자 및 콘텐츠 관리자에게 아키텍처 설계, 관계 설정, 성능 최적화 및 문제 해결에 대한 포괄적인 안내를 제공합니다. Webflow MCP 도구를 필수적으로 사용하여 사이트 정보 조회, 컬렉션 분석, 콘텐츠 볼륨 평가 등을 수행하며, 총 25단계의 체계적인 프로세스를 따릅니다. 주요 기능으로는 CMS vs 정적 콘텐츠 사용 기준, 필드 유형 선택 가이드, 일대다/다대다/자체 참조/양방향 관계 패턴, 그리고 실제 사용자 사례를 기반으로 한 단계별 권장 사항 제시 등이 포함됩니다. Cursor, Claude Code, Codex 등 다양한 플랫폼에서 활용 가능하며, 복잡한 CMS 구조 설계부터 마이그레이션 계획 수립까지 전 과정을 지원합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/webflow/webflow-skills/tree/HEAD/plugins/webflow-skills/skills/cms-best-practices

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

CMS 모범 사례

Webflow CMS 아키텍처, 관계 설정, 최적화 및 문제 해결에 대한 전문적인 안내를 제공합니다.

중요 참고 사항

모든 작업에는 항상 Webflow MCP 도구를 사용하세요:

  • 작업 시작 전 Webflow MCP의 webflow_guide_tool을 사용하여 모범 사례를 확인하세요.
  • Webflow MCP의 data_sites_tool을 list_sites 액션과 함께 사용하여 사용 가능한 사이트를 식별하세요.
  • Webflow MCP의 data_sites_tool을 get_site 액션과 함께 사용하여 사이트 세부 정보 및 요금제 한도를 확인하세요.
  • Webflow MCP의 data_cms_tool을 get_collection_list 액션과 함께 사용하여 기존 컬렉션을 분석하세요.
  • Webflow MCP의 data_cms_tool을 get_collection_details 액션과 함께 사용하여 컬렉션 스키마를 검토하세요.
  • Webflow MCP의 data_cms_tool을 list_collection_items 액션과 함께 사용하여 콘텐츠 볼륨을 평가하세요.
  • Webflow MCP의 data_pages_tool을 list_pages 액션과 함께 사용하여 페이지 구조를 파악하세요.
  • 특정 API 질문에는 Webflow MCP의 ask_webflow_ai를 사용하세요.
  • Webflow 작업에 다른 도구나 방법을 사용하지 마세요.
  • 모든 도구 호출에는 필수 context 매개변수(15-25단어, 3인칭 관점)를 포함해야 합니다.

지침

1단계: 발견 및 분석

  1. 요청 식별: 사용자가 다음 중 무엇을 원하는지 파악하세요:
    • 새 CMS 구조 계획
    • 기존 컬렉션 최적화
    • 성능 문제 해결
    • 관계 설정
    • 아키텍처 안내 요청
  2. 사이트 정보 획득: Webflow MCP의 data_sites_tool을 list_sites 및 get_site 액션과 함께 사용하여 요금제 한도를 파악하세요.
  3. 기존 구조 분석: Webflow MCP의 data_cms_tool을 get_collection_list 및 get_collection_details 액션과 함께 사용하여 현재 설정을 검토하세요.
  4. 콘텐츠 볼륨 평가: Webflow MCP의 data_cms_tool을 list_collection_items 액션과 함께 사용하여 규모를 파악하세요.
  5. 페이지 검토: Webflow MCP의 data_pages_tool을 list_pages 액션과 함께 사용하여 콘텐츠가 어떻게 표시되는지 확인하세요.

2단계: 요구 사항 수집

  1. 사용 사례 이해: 명확한 질문을 하세요:
    • 관리해야 할 콘텐츠는 무엇인가요?
    • 누가 콘텐츠를 업데이트하나요?
    • 콘텐츠는 어떻게 표시되나요?
    • 어떤 관계가 필요한가요?
    • 예상 콘텐츠 볼륨은 얼마인가요?
  2. 제약 조건 식별: 요금제 한도, 기술적 제약, 팀 역량을 고려하세요.
  3. 성공 기준 정의: 성능 목표, 편집 워크플로우, 확장성 요구 사항을 정의하세요.

3단계: 아키텍처 계획

  1. 컬렉션 구조 설계: 컬렉션, 필드, 관계를 계획하세요.
  2. 필드 유형 선택: 각 콘텐츠 요소에 적합한 필드 유형을 선택하세요.
  3. 관계 계획: 일대다 및 다대다 연결을 설계하세요.
  4. 분류 고려: 카테고리, 태그 및 조직 구조를 결정하세요.
  5. 확장 계획: 성장을 고려한 설계(페이지네이션, 성능, 한도)를 하세요.
  6. 결정 사항 문서화: 절충점과 근거를 설명하세요.

4단계: 권장 사항 및 검증

  1. 권장 사항 생성: 구체적이고 실행 가능한 안내를 제공하세요.
  2. 변경 사항 우선순위 지정: 영향도 기준으로 정리하세요.(빠른 성과 vs 장기적 개선)
  3. 절충점 설명: 사용자가 한계와 해결 방법을 이해하도록 도우세요.
  4. 모범 사례 검증: Webflow의 한계 및 패턴과 비교하여 확인하세요.
  5. 대안 제시: 가능한 경우 여러 접근 방식을 제공하세요.
  6. 구현 로드맵 생성: 단계별로 나누어 계획하세요.

5단계: 구현 안내

  1. 단계별 지침 제공: 구현을 위한 명확한 안내를 제공하세요.
  2. 지원 제안: 다른 스킬(cms-collection-setup, bulk-cms-update) 사용을 제안하세요.
  3. 문서 구조: 팀 참조용 문서를 권장하세요.
  4. 테스트 접근 방식 제안: 변경 사항을 검증하는 방법을 안내하세요.
  5. 마이그레이션 계획: 리팩토링 시 마이그레이션 전략을 제공하세요.

컬렉션 아키텍처

CMS 사용 vs 정적 사용

다음 경우 CMS를 사용하세요:

  • 콘텐츠가 자주 업데이트되는 경우(매주 또는 그 이상)
  • 유사한 항목이 여러 개 있는 경우(블로그 게시물, 제품, 팀원, 프로젝트)
  • 비기술적 사용자가 콘텐츠를 편집해야 하는 경우
  • 프론트엔드에서 콘텐츠 필터링/정렬이 필요한 경우
  • 동일한 콘텐츠가 여러 페이지에 나타나는 경우(작성자 소개, 제품 특징)
  • 콘텐츠가 항목 전체에서 일관된 구조를 따르는 경우
  • 동적으로 페이지를 생성해야 하는 경우

다음 경우 정적을 사용하세요:

  • 콘텐츠가 거의 변경되지 않는 경우(연간 업데이트 이하)
  • 고유한 일회성 섹션인 경우(소개 페이지 히어로, 홈페이지 특별 기능)
  • 패턴을 따르지 않는 항목별 복잡한 사용자 정의 레이아웃이 필요한 경우
  • 동적 필터링이나 검색이 필요하지 않은 경우
  • 콘텐츠가 고도로 사용자 지정되고 구조를 공유하지 않는 경우
  • 성능이 중요하고 콘텐츠가 변경되지 않는 경우
  • 섹션별로 완전한 디자인 유연성이 필요한 경우

하이브리드 접근 방식:

  • CMS 기반 섹션이 있는 정적 페이지(예: CMS 사용후기가 포함된 정적 홈페이지)
  • 최신 콘텐츠는 CMS, 오래된 콘텐츠는 정적 아카이브
  • 정적 랜딩 페이지, CMS 하위 페이지

필드 유형 선택

콘텐츠 유형권장 필드참고 사항문자 제한
짧은 텍스트일반 텍스트제목, 이름, 슬러그최대 256자
긴 텍스트(서식 없음)일반 텍스트(긴)설명, 발췌문무제한
서식 있는 콘텐츠리치 텍스트블로그 콘텐츠, 소개, 기사무제한
단일 이미지이미지사진, 썸네일, 헤더이미지당 최대 4MB
여러 이미지다중 이미지갤러리, 제품 사진최대 25개 이미지
파일 다운로드파일PDF, 문서, 다운로드파일당 최대 4MB
예/아니오 값스위치추천 플래그, 표시 토글부울
단일 선택옵션상태, 유형, 카테고리무제한 옵션
날짜/시간날짜/시간게시 날짜, 이벤트, 마감일ISO 8601 형식
항목 하나에 링크참조작성자 → 게시물, 카테고리 → 게시물항목 하나
여러 항목에 링크다중 참조게시물 → 태그, 게시물 → 관련 게시물여러 항목
외부 URL링크소셜 링크, 외부 리소스최대 2048자
숫자 값숫자가격, 평점, 순서, 개수정수 또는 소수
전화번호전화연락처 번호E.164 형식
이메일 주소이메일연락처 이메일유효한 이메일 형식
색상 값색상테마 색상, 강조 색상, 브랜드 색상16진수 형식
비디오 임베드비디오YouTube, Vimeo 임베드임베드 URL

필드 유형 결정 트리

저장해야 할 대상:
├── 텍스트?
│   ├── 짧음(≤256자)? → 일반 텍스트
│   ├── 긴 + 서식? → 리치 텍스트
│   └── 긴 + 서식 없음? → 일반 텍스트(긴)
├── 미디어?
│   ├── 단일 이미지? → 이미지
│   ├── 여러 이미지? → 다중 이미지
│   ├── 비디오? → 비디오
│   └── 파일 다운로드? → 파일
├── 선택/선택 사항?
│   ├── 예/아니오? → 스위치
│   ├── 하나의 옵션? → 옵션
│   └── 항목에 링크? → 참조/다중 참조
├── 구조화된 데이터?
│   ├── 숫자? → 숫자
│   ├── 날짜/시간? → 날짜/시간
│   ├── 전화? → 전화
│   ├── 이메일? → 이메일
│   └── URL? → 링크
└── 시각적?
    └── 색상? → 색상

관계 패턴

일대다(참조 필드)

예시: 게시물 → 작성자

작성자 컬렉션:
├── name (텍스트, 필수)
├── slug (텍스트, 필수)
├── bio (리치 텍스트)
├── photo (이미지)
├── title (텍스트) - 직함
├── email (이메일)
└── social-links (링크)

게시물 컬렉션:
├── title (텍스트, 필수)
├── slug (텍스트, 필수)
├── content (리치 텍스트)
└── author (참조 → 작성자)  ← 각 게시물에는 한 명의 작성자가 있습니다.

표시: 게시물 페이지에서 author.name, author.photo, author.bio에 접근합니다.

필터링: 특정 작성자별로 게시물을 필터링할 수 있습니다.

장점:

  • ✅ 중앙 집중식 작성자 데이터(한 번 업데이트하면 모든 곳에 반영됨)
  • ✅ 일관성 유지가 쉬움
  • ✅ 모든 게시물을 보여주는 작성자 프로필 페이지 생성 가능
  • ✅ 효율적(게시물당 하나의 참조)

사용 사례:

  • 블로그 게시물 → 작성자
  • 제품 → 브랜드
  • 이벤트 → 장소
  • 프로젝트 → 고객
  • 사용후기 → 고객

다대다(다중 참조)

예시: 게시물 ↔ 태그

태그 컬렉션:
├── name (텍스트, 필수)
├── slug (텍스트, 필수)
├── description (일반 텍스트)
└── color (색상) - 선택적 시각적 그룹화

게시물 컬렉션:
├── title (텍스트, 필수)
├── slug (텍스트, 필수)
├── content (리치 텍스트)
└── tags (다중 참조 → 태그)  ← 각 게시물에는 여러 개의 태그가 있습니다.

표시: 게시물 페이지에서 tags를 반복하여 모든 태그를 표시합니다.

필터링: 특정 태그별로 게시물을 필터링할 수 있습니다.

장점:

  • ✅ 유연한 콘텐츠 구성
  • ✅ 관련 콘텐츠 상호 연결
  • ✅ 더 나은 SEO(주제 클러스터링)
  • ✅ 향상된 사용자 탐색

제한 사항:

  • ⚠️ 컬렉션당 최대 5개의 다중 참조 필드
  • ⚠️ 컬렉션 목록에서 한 번에 하나의 다중 참조 값으로만 필터링 가능
  • ⚠️ 참조된 필드 값으로 정렬 불가
  • ⚠️ 각 참조는 추가 쿼리(성능에 영향)

여러 태그 필터링을 위한 해결 방법:

  1. 결합된 태그 생성(예: "비건-글루텐프리")
  2. 클라이언트 측 필터링을 위해 Finsweet CMS 필터 사용
  3. 일반적인 조합에 대한 별도의 필터링된 컬렉션 리스트 생성
  4. Webflow API와 함께 사용자 정의 코드 사용

사용 사례:

  • 블로그 게시물 ↔ 태그
  • 제품 ↔ 기능
  • 프로젝트 ↔ 기술
  • 레시피 ↔ 재료
  • 강좌 ↔ 주제

자체 참조(중첩 컬렉션)

예시: 하위 카테고리가 있는 카테고리

카테고리 컬렉션:
├── name (텍스트, 필수)
├── slug (텍스트, 필수)
├── description (일반 텍스트)
├── parent (참조 → 카테고리)  ← 계층 구조를 위한 자체 참조
└── level (숫자) - 표시 로직을 위한 1, 2, 3

사용 사례:

  • 하위 카테고리가 있는 카테고리
  • 하위 메뉴 항목이 있는 메뉴 항목
  • 조직 계층 구조
  • 제품 분류

장점:

  • ✅ 유연한 계층 구조
  • ✅ 무제한 깊이(이론상)
  • ✅ 재구성이 쉬움

제한 사항:

  • ⚠️ Webflow에서 중첩 수준 표시가 복잡함
  • ⚠️ 실제 구현을 위해 최대 2-3단계 권장
  • ⚠️ 깊은 중첩에는 사용자 정의 로직 필요

대안: 간단한 1-2단계 분류에는 옵션 필드를 사용하세요.

양방향 관계

예시: 관련 게시물

게시물 컬렉션:
├── title (텍스트, 필수)
├── slug (텍스트, 필수)
├── content (리치 텍스트)
└── related-posts (다중 참조 → 게시물)  ← 다른 게시물에 대한 자체 참조

표시: 게시물 페이지 하단에 관련 게시물을 표시합니다.

장점:

  • ✅ 사용자 참여 시간 증가
  • ✅ 더 나은 SEO(내부 링크)
  • ✅ 유연한 콘텐츠 연결

과제:

  • ⚠️ 진정한 양방향이 아님(A → B가 자동으로 B → A를 생성하지 않음)
  • ⚠️ 필요한 경우 양방향을 수동으로 유지해야 함
  • ⚠️ 콘텐츠 편집자에게 시간이 많이 소요될 수 있음

해결 방법:

  1. "태그별 관련" 자동 로직에 태그 사용
  2. 가장 중요한 연결에 대한 수동 큐레이션
  3. 하이브리드: 태그/카테고리를 기반으로 수동 + 자동화

예시

예시 1: 새 CMS 구조 계획

사용자 프롬프트:

레시피 사이트를 만들고 있어요. CMS를 어떻게 구성해야 할까요?

1단계: 요구 사항 수집

📐 CMS 계획: 레시피 사이트

최적의 구조를 설계하기 위해 몇 가지 질문을 드리겠습니다:

1. **콘텐츠 볼륨**: 레시피를 몇 개나 계획하고 있나요?
   - 소규모(≤50개): 간단한 구조
   - 중간(50-200개): 적당한 조직
   - 대규모(200개 이상): 고급 분류 필요

2. **레시피 속성**: 각 레시피에 어떤 정보가 포함되나요?
   - 기본: 이름, 재료, 조리법, 이미지
   - 고급: 준비 시간, 조리 시간, 난이도, 영양 정보, 식이 태그

3. **조직 요구 사항**: 사용자가 레시피를 어떻게 찾나요?
   - 식사 유형별(아침, 점심, 저녁)
   - 요리별(이탈리아, 멕시코, 아시아)
   - 식이 제한별(비건, 글루텐 프리, 케토)
   - 조리 방법별(베이킹, 그릴링, 슬로우 쿠커)
   - 재료별(닭고기, 파스타, 야채)

4. **작성자 설정**: 단일 또는 다중 작성자?
   - 단일: 모든 콘텐츠를 직접 관리
   - 다중: 레시피 제작자 팀

5. **사용자 참여**: 어떤 대화형 기능이 필요한가요?
   - 댓글/리뷰
   - 평점
   - 즐겨찾기 저장
   - 레시피 카드 인쇄

답변에 따라 최적의 CMS 아키텍처를 설계해 드리겠습니다.

2단계: 사용자 응답 후

📐 권장 CMS 아키텍처: 레시피 사이트

요구 사항(중간 규모, 다중 작성자, 고급 필터링)을 기반으로:

---

## 필요한 컬렉션: 4개

### 1. 레시피(메인 콘텐츠)
├── name (텍스트, 필수) - "홈메이드 파스타 카르보나라"
├── slug (텍스트, 필수) - "homemade-pasta-carbonara"
├── description (일반 텍스트, 160자) - SEO용 간단한 요약
├── featured-image (이미지) - 상세 페이지용 히어로 이미지
├── thumbnail-image (이미지) - 그리드 카드용 작은 이미지
├── prep-time (숫자, 필수) - 준비 시간(분)
├── cook-time (숫자, 필수) - 조리 시간(분)
├── total-time (숫자) - 자동 계산 또는 수동
├── servings (숫자, 필수) - 인분 수
├── difficulty (옵션: 쉬움, 보통, 어려움)
├── ingredients (리치 텍스트, 필수) - 분량이 포함된 재료 목록
├── instructions (리치 텍스트, 필수) - 단계별 지침
├── notes (리치 텍스트) - 요리사의 참고 사항, 팁, 대체 재료
├── nutrition-info (일반 텍스트) - 칼로리, 단백질 등
├── author (참조 → 작성자, 필수)
├── category (참조 → 카테고리, 필수) - 기본 식사 유형
├── cuisine (참조 → 요리) - 이탈리아, 멕시코 등
├── dietary-tags (다중 참조 → 식이 태그) - 비건, 글루텐 프리 등
├── cooking-methods (다중 참조 → 방법) - 베이킹, 그릴링 등
├── featured (스위치) - 홈페이지 강조 표시
├── published-date (날짜, 필수)
└── view-count (숫자) - 인기 추적

**총 필드:** 22개 필드
**필요한 요금제:** CMS 요금제 최소(20개 컬렉션, 2000개 항목)

### 2. 작성자
├── name (텍스트, 필수)
├── slug (텍스트, 필수)
├── title (텍스트) - "주방장", "레시피 개발자"
├── bio (리치 텍스트)
├── photo (이미지)
├── specialty (일반 텍스트) - "이탈리아 요리", "베이킹"
├── social-instagram (링크)
├── social-website (링크)
└── email (이메일)

**목적:** 모든 레시피에서 재사용 가능한 작성자 정보

### 3. 카테고리
├── name (텍스트, 필수) - "아침", "점심", "저녁", "디저트"
├── slug (텍스트, 필수)
├── description (일반 텍스트)
├── image (이미지) - 카테고리 히어로 이미지
├── color (색상)
├── icon (이미지)
├── display-order (숫자) - 사용자 정의 정렬
├── featured-category (스위치) - 탐색 하이라이트
└── parent-category (참조 → 카테고리) - 하위 카테고리용(예: "아침" > "건강식 아침")

**목적:** 식사 유형별 기본 구성

### 4. 요리
├── name (텍스트, 필수) - "이탈리아", "멕시코", "일본"
├── slug (텍스트, 필수)
├── description (일반 텍스트)
├── image (이미지)
├── region (일반 텍스트) - "유럽", "아시아", "라틴 아메리카"
└── featured (스위치)

**목적:** 지리적 및 문화적 분류

### 5. 식이 태그
├── name (텍스트, 필수) - "비건", "글루텐 프리", "케토", "저탄수화물"
├── slug (텍스트, 필수)
├── description (일반 텍스트)
├── icon (이미지)
└── color (색상) - 시각적 필터 배지용

**목적:** 식이 제한 및 선호도 태그

### 6. 조리 방법
├── name (텍스트, 필수) - "베이킹", "그릴링", "슬로우 쿠커", "에어 프라이어"
├── slug (텍스트, 필수)
├── description (일반 텍스트)
├── icon (이미지)
└── difficulty (숫자) - 기술 수준 1-5

**목적:** 조리 기술별 사용자 필터링

---

**관계 요약:**
- 각 레시피 = 1명의 작성자(일대다)
- 각 레시피 = 1개의 카테고리(일대다)
- 각 레시피 = 1개의 요리(일대다)
- 각 레시피 = 여러 개의 식이 태그(다대다, 다중 참조)
- 각 레시피 = 여러 개의 조리 방법(다대다, 다중 참조)

**한도 확인:**
- 5개 다중 참조 필드 중 2개 사용 중 ✅
- 단일 컬렉션 항목 한도 내에 있음 ✅
- 표준 관계 패턴 사용 ✅

**확장 권장 사항:**
1. 향후 200개 이상 레시피로 확장 시 태그 기반 필터링으로 전환하여 성능 유지
2. 난이도별 또는 요리별 목록 페이지에 대한 별도의 컬렉션 리스트 생성 고려
3. 인기 레시피 위젯에 리치 텍스트 대신 일반 텍스트 설명 사용하여 로딩 속도 향상

이 구조는 표준 Webflow CMS 관계 패턴을 따르며, 컬렉션당 5개의 다중 참조 필드 한도 내에 있습니다. 검증된 디자인 원칙과 사용자 피드백을 통합한 후 다음 단계인 구현을 위한 준비가 되었습니다.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

관련 스킬