[내배캠] 서비스 기획 심화 | ③ CMS와 동적 콘텐츠 구성

notes
2026.07.02

 

CMS 개념 이해하기

 

01. CMS란?

 

  • 콘텐츠 관리 시스템, Content Management System
  • 한 번 등록한 콘텐츠는 CMS 리스트, 카드, 상세 페이지 등 다양한 곳에서 반복해서 사용 가능
  • 어디서든 수정하면 모든 연결된 콘텐츠에 자동 반영
  • 디지털 파일 캐비닛: 컬렉션 = 폴더, 아이템 = 폴더 안의 서류, 필드 = 서류 안의 항목들

 

02. 반복 콘텐츠를 자동화하는 구조

 

  • Collection (컬렉션): 콘텐츠를 유형별로 묶는 폴더 (예: 블로그, 팀원, 제품 등)
  • Field (필드): 각 콘텐츠가 가진 속성 (예: 제목, 이미지, 날짜 등)
  • Item (아이템): 실제 콘텐츠 단위 (예: 블로그 글 1개)
  • List / Detail Pages: 여러 아이템을 목록으로 보여주거나, 하나의 아이템을 상세하게 보여주는 페이지

 

03. CMS의 장점

 

전통적 방식 CMS 방식
각 페이지를 직접 수정해야 함 한 번 입력하면 자동 반영됨
콘텐츠 위치마다 반복 입력 필요 콘텐츠는 한 곳에서 관리
변경 사항 반영에 실수 발생 가능 항상 일관된 콘텐츠 유지
협업/업데이트 시 충돌 가능성 있음 구조화된 데이터로 작업 간소화

 

 

 

CMS 컬렉션 생성하기 

 

01. CMS 컬렉션 생성 흐름

 

Collection 생성

 

  • 컬렉션 생성
  • 컬렉션 이름은 명확하고 일관성 있게 짓기 (예시: articles, team, products)
  • 컬렉션 생성 시 기본 필드가 자동 포함됨 (title, slug 등)

 

02. 필드 추가 및 구성

 

Field 추가

 

  • 필드: 콘텐츠 구조를 정의하는 핵심 요소
  • 각 필드는 입력 가능한 데이터의 형태를 결정
  • 알맞은 타입을 선택해야 디자인과 기능이 유연해짐

 

필드 타입 설명 예시
Plain Text 한 줄짜리 텍스트 입력 제목, 이름, 직함
Formatted Text 스타일이 적용 가능한 여러 줄 텍스트 본문, 설명, 소개 글
Date 날짜 선택 필드 작성일, 이벤트 날짜
Link URL 입력 필드 외부 링크, 참고 자료
Image 1장의 이미지 업로드 썸네일, 대표 이미지
Gallery 여러 이미지 업로드 제품 갤러리, 포트폴리오
Color 컬러 선택기 배경색, 태그 색상
Toggle On/Off 스위치 공개 여부, 추천 항목
Number 숫자 입력 가격, 순서, 점수
Option 미리 정의한 선택지 중 하나 선택 카테고리 선택 (단일)
File PDF, ZIP 등 첨부 파일 다운로드 자료, 첨부 파일
Reference 다른 CMS 컬렉션에서 1개 항목 참조 작성자, 카테고리 (단일 연결)
Multi-Reference 다른 CMS 컬렉션에서 여러 항목 참조 태그, 관련포스트

 

 

03. 아이템 추가

 

Item 추가

 

  • New Item → 각 필드 데이터 입력 → Save
  • 입력 값 예시:
    • 제목: "프레이머 CMS 시작하기"
    • 이미지: 배너 업로드
    • 날짜: 오늘 날짜 선택
    • 본문: 에디터로 텍스트 입력
    • 링크: 외부 블로그 주소 입력

 

 

 

CMS 연결하기

 

01. Collection List란?

 

  • CMS 콘텐츠를 반복적으로 출력할 수 있는 기능
  • 게시글 리스트, 제품 카드, 포트폴리오 갤러리 등에 사용

 

02. Collection List 삽입

 

 

원하는 페이지 선택 → Insert → CMS → Collection List 선택 → 캔버스에 드래그

 

03. 텍스트 & 이미지 연결

 

  • Collection List 안의 각 요소는 CMS의 필드와 자동 연결
  • 예시: 카드의 배너 이미지 → CMS의 image 필드

 

04. 기존 디자인에 CMS 데이터 연결 (수동 연결)

 

  • 기존 디자인을 Collection List 안으로 드래그
  • 카드의 텍스트 또는 이미지 요소 선택
  • 오른쪽 패널에서 연결 가능한 속성에 마우스 오버 → "+" 버튼 클릭
  • Set Variable → 연결할 CMS 필드 선택

 

※ 이 부분이 현재 버전이랑 좀 차이가 있는 듯해서 추가 학습 자료 실습(AI Agent 사용)으로 넘어감

 

05. 모든 카드에 자동 적용

 

  • 카드 하나에만 디자인해도 나머지 CMS 항목들은 동일한 구조로 자동 적용
  • 스타일 수정 시 모든 카드가 동시에 변경

 

06. 컴포넌트 연결

 

  • 미리 만든 컴포넌트를 Collection List 안에 넣으면 CMS와 연결 가능
  • 단, 컴포넌트 내부 텍스트에도 Variable 속성 설정 필요

 

07. 추가 학습 자료 실습 (AI Agent 사용)

 

Airbnb 메인 페이지처럼,
상단에 큰 Hero 영역,
검색 UI,
숙소 카드들이 그리드로 보이는
반응형 홈 레이아웃을 만들어줘.

 

Properties라는 이름의 컬렉션 만들어 줘.
필드는 아래 그대로야.

Name → Plain Text
Image → Image
Location → Plain Text
Price → Number
Summary → Plain Text
Description - > Formatted Text
region → Option (서울, 부산, 제주)
isHot → Toggle (true/false)

그리고 최소 12개의 숙소 데이터 Item을 만들어 줘.

 

CMS Collection List와 컴포넌트 연결

 

 

 

 

CMS 필터링/정렬 기능 추가하기

 

01. 필터링과 정렬이 필요한 이유

 

  • 홈페이지에는 대표 콘텐츠 3개만 보여주고 싶은 경우
  • ‘추천’ 항목만 별도로 뽑아 슬라이더에 보여주고 싶은 경우
  • 특정 조건에 따라 콘텐츠를 나누어 보여주고 싶은 경우

 

02. 필터 옵션 구성

 

Filter 설정

 

  • Source: 어떤 CMS 컬렉션에서 데이터를 가져올지 선택
  • Sort: 특정 필드 기준으로 항목 정렬 (예: Date, Title)
  • Filter: 조건에 맞는 항목만 표시
  • Limit To: 표시할 최대 항목 수 설정
  • Start Offset: 앞에서부터 일정 개수의 항목을 건너뛰고 표시

 

03. 추천 콘텐츠만 필터링

 

  • CMS Toggle 필드 생성 (featured로 이름 지정)
  • 기본값은 "off(비추천)" 상태
  • 대표 콘텐츠에만 featured = on 설정
  • Collection List → Filter → featured = true 로 설정

 

04. 최신순 정렬 + 3개만 필터링

 

  • Sort: date 필드 → 내림차순
  • Limit To: 3

 

05. 특정 카테고리만 필터링

 

  • CMS에 category 필드 추가 (예: News, Tips, Update 등)
  • 원하는 카테고리로 필터 적용 (예: category = "News")

 

06. Offset으로 건너뛰기

 

  • 슬라이더에는 최신 3개 보여주고, 그 아래엔 다음 3개만 보여주고 싶을 때
    • 첫 번째 리스트: Limit = 3, Start Offset = 0
    • 두 번째 리스트: Limit = 3, Start Offset = 3

 

07. 커스텀 정렬용 숫자 필드 만들기

 

  • CMS에 order 필드 (숫자형) 추가
  • 원하는 순서대로 번호 부여 (1, 2, 3...)
  • Sort 기준을 order 필드로 설정 → 직접 순서 제어 가능

 

 

 

CMS 상세 페이지 연결하기 (Dynamic Routing)

 

01. CMS 상세 페이지란?

 

  • CMS 컬렉션에 있는 각각의 항목(Item)을 위한 개별 페이지를 자동 생성하는 기능
  • 예시: 블로그 포스트 하나당 하나의 URL을 만들고 싶은 경우

 

02. 상세 페이지 생성 (Dynamic Page 생성)

 

CMS 상세 페이지 생성

 

  • Pages 탭 → [+] 버튼 → New CMS Page → 컬렉션 선택 → Detail Page
  • 해당 페이지는 컬렉션의 각 항목을 하나씩 받아서 렌더링하는 동적 페이지 템플릿이 됨

 

03. 콘텐츠 연결 및 디자인

 

CMS 상세 페이지와 링크 연결

 

  • CMS 필드 데이터는 페이지에 자동 배치
  • 스타일은 자유롭게 변경 가능하며, 텍스트 색, 폰트, 배경 등을 일반 페이지처럼 수정 가능

 

04. 새로운 필드를 추가하고 연결

 

  • CMS → 컬렉션에서 새 필드 추가 (예: link)
  • 해당 아이템에 값 입력 (예: https://example.com)
  • 상세 페이지로 돌아와 버튼 만들기
  • 버튼의 link 속성에 → Set Variable → 새 필드 선택

 

05. 변수(Variable)를 이용한 동적 연결

 

  • 텍스트, 이미지, 버튼 등 거의 모든 요소에 Variable 연결 가능
  • 예시: 텍스트 → content 속성, 버튼 → 링크 속성, 이미지 → fill 속성에 연결
  • Insert → CMS → Fields 메뉴에서 직접 드래그하면 자동 연결 가능

 

06. 조건부 렌더링 (Conditional Visibility)

 

  • 특정 필드가 비어있을 경우 해당 요소를 숨기고 싶을 때 사용 가능
  • 요소 선택 → Visible 속성 선택
  • + Set Variable → 해당 필드 선택 → Is Set 체크 → 값이 없을 때 자동으로 숨겨짐

 

 

 

항목별 스타일 & 조건부 렌더링

 

01. 조건부 렌더링이란?

 

인기글만 HOT 뱃지 보여 주기

 

CMS 데이터 유무에 따라 요소의 표시 여부를 제어하는 기능

 

02. 링크 있는 경우만 버튼 보여주기

 

  • CMS에서 link 필드 추가 및 일부 항목만 링크 입력
  • 상세 페이지에서 버튼 만들기
  • 버튼 선택 → Visible 속성 클릭
  • + Set Variable → link 필드 → Is set 선택 → 링크가 없을 때 자동으로 숨겨짐

 

03. 카테고리에 따라 배경 색 다르게 하기

 

  • CMS category 필드  "news", "event", "update" 등 값 추가
  • 카드 컴포넌트를 Variant로 설정 (예: 기본 / news / event)
  • 컴포넌트 선택 → Variant → + Set Variable → category 필드 연결

 

04. 추천 글에는 뱃지 표시

 

  • CMS에 featured 라는 Toggle 필드 추가 (Yes/No)
  • 카드에 뱃지를 추가
  • 뱃지 요소 선택 → Visible → + Set Variable → featured → featured가 Yes일 때만 뱃지가 보임

 

05. 기타 활용 아이디어

 

  • price 필드가 없으면 “문의하기” 버튼만 보이도록 구성
  • thumbnail 이미지가 없으면 텍스트만 가운데 정렬
  • isNew 필드가 True면 “New” 라벨 노출

 

 

 

컬렉션 관계 & 필터 UI 만들기

 

01. 컬렉션 관계란?

 

  • 한 컬렉션에서 다른 컬렉션을 참조(Reference)할 수 있음
  • 컬렉션 간의 관계를 통해 중복 없이 정돈된 데이터 구조를 유지

 

02. 글 → 작성자 연결

 

  • Authors라는 새 컬렉션 생성: 이름, 프로필 이미지, 소개 텍스트 등 입력
  • Articles 컬렉션으로 이동 → + Add Field → Relation 선택
  • 이름: author → 연결 대상: Authors 컬렉션 선택
  • 각 글 항목에 작성자 선택 필드 생성  리스트에서 연결 가능

 

03. 상세 페이지에 관계 콘텐츠 표시

 

  • 글 상세 페이지에 작성자 정보 표시
    • 글 상세 페이지에서 author.name, author.image 등 필드 사용 가능
    • 텍스트/이미지 레이어 선택 → + Set Variable → author.name 등으로 연결

 

04. 카테고리별 콘텐츠 필터링 UI 만들기

 

  • Categories 컬렉션 생성
  • Articles 컬렉션에 category라는 Relation 필드 추가
  • 사용자가 카테고리를 선택하면, 그 카테고리에 해당하는 콘텐츠만 리스트에 표시되도록 구성

 

05. 필터 UI 만드는 방법

 

  • 프레임 버튼 또는 텍스트를 만들어 필터 토글로 사용
  • 버튼 클릭 시 컬렉션 리스트의 Filter 속성 변경

 

06. 컴포넌트와 연결된 필터

 

필터 버튼과 Variant 연결

 

  • 여러 버튼을 Variant로 만든 후 선택 시마다 필터 값 변경 가능
  • 필터 UI도 컴포넌트로 만들어 재사용성 향상
    • 카테고리 Pill 버튼 → Variant (Selected / Not Selected)
    • 선택 시 Set Variable → 리스트 필터 갱신