![Contentful CMS 가이드: 기능, 가격, GraphQL API 및 코드 예제 [2026]](/_next/image?url=https%3A%2F%2Fmedia.techsy.io%2Ftechsy-io%2Fhero-106-1200x630.webp&w=3840&q=75)
Contentful CMS 가이드: 기능, 가격, GraphQL API 및 코드 예제 [2026]
Contentful은 API 우선 헤드리스 CMS로, 콘텐츠를 중앙 허브에 저장하고 REST 및 GraphQL API를 통해 웹, 모바일, IoT, 디지털 사이니지 등 여러분이 만들고 있는 어떤 프론트엔드로든 전달합니다. 이 가이드는 경쟁사들이 건너뛰는 모든 것을 다룹니다: 실제 코드 예제, 진짜 가격, 그리고 솔직한 한계점까지.
저희는 프로덕션 환경에서 4개 웹사이트, 10개 언어에 걸쳐 Sanity(Contentful의 직접적인 경쟁사)를 사용하고 있으므로, 벤더의 영업 토크가 아닌 실무자의 관점에서 이 글을 작성합니다.
빠른 요약
| 항목 | 정보 |
|---|---|
| 유형 | 헤드리스 CMS (API 우선) |
| 설립 | 2013년, 베를린 |
| 적합한 대상 | 엔터프라이즈 팀, 멀티채널 콘텐츠, 현지화 중심 프로젝트 |
| 적합하지 않은 대상 | 예산이 빠듯한 1인 개발자, 단순 블로그, 즉시 사용 가능한 비주얼 편집이 필요한 팀 |
| 무료 등급 | 예 -- 사용자 10명, 월 10만 API 호출, 스페이스 1개 |
| 유료 플랜 | 월 $300(Lite)부터 커스텀 Enterprise까지 |
| API | REST (CDA, CMA, CPA) + GraphQL |
| 콘텐츠 모델링 | 구조화: 콘텐츠 타입, 필드, 참조, 유효성 검사 |
| AI 기능 | AI Actions, Contentful Studio, Ninetailed 개인화 |
| 현지화 | 네이티브 로케일 지원, 내장 번역 관리 없음 |
| 오픈 소스 | 아니오 |
| 주요 경쟁사 | Sanity, Strapi, Storyblok, Payload, Hygraph |
Contentful이란?
Contentful은 클라우드 네이티브 API 우선 헤드리스 CMS입니다. 회사 측에서는 이제 "컴포저블 콘텐츠 플랫폼(composable content platform)"이라고 부르죠. 콘텐츠 관리와 프론트엔드를 하나로 묶는 WordPress 같은 기존 시스템과 달리, Contentful은 구조화된 콘텐츠를 중앙에 저장하고 필요한 모든 채널에 API를 통해 전달합니다.
핵심 개념은 분리된 아키텍처(decoupled architecture)입니다. 콘텐츠는 Contentful의 클라우드에 존재합니다. 프론트엔드는 Next.js 사이트든, React Native 앱이든, 스마트 디스플레이든, 빌드 시점이나 런타임에 Contentful의 API를 통해 콘텐츠를 가져옵니다. 콘텐츠는 자신이 어디에 표시될지 알지도, 신경 쓰지도 않습니다.
2013년 베를린에서 설립된 Contentful은 가장 규모가 큰 헤드리스 CMS 벤더 중 하나로 성장했습니다. Spotify, Vodafone, Chanel, Atlassian 같은 브랜드들이 Contentful로 콘텐츠 운영을 하고 있습니다. 오픈 소스가 아니며 셀프 호스팅 옵션도 없고, SaaS 전용입니다. 데이터 거주지(data residency) 관련 컴플라이언스 제약이 있다면 중요한 부분입니다.
Contentful 공식 문서에 따르면, 이 플랫폼은 콘텐츠용 인프라, 즉 편집팀과 디지털 경험 사이에 위치하는 콘텐츠 허브로 포지셔닝하고 있습니다.
Contentful은 어떻게 작동하나?
Contentful은 3계층 아키텍처를 따릅니다: 콘텐츠 모델(스키마)을 정의하고, 콘텐츠(엔트리)를 생성하고, API를 통해 전달합니다. 콘텐츠는 채널에 구애받지 않습니다. 같은 블로그 게시물 하나로 웹사이트, 모바일 앱, 이메일 뉴스레터를 중복 없이 운영할 수 있습니다.
모든 것은 API를 통해 흐릅니다. 서버 사이드 렌더링이 내장되어 있지 않고, 템플릿도, 테마 레이어도 없습니다. 프론트엔드는 원하는 방식으로 직접 구축하고, Contentful은 콘텐츠 저장과 전달을 처리합니다.
세 가지 API
Contentful은 각각 고유한 목적과 인증 방식을 가진 세 가지 API를 제공합니다:
- Content Delivery API (CDA): 게시된 콘텐츠에 대한 읽기 전용 액세스. Fastly의 CDN으로 지원되므로 캐시된 요청은 빠르고 무제한입니다. 캐시되지 않은 요청은 초당 55회로 제한됩니다.
- Content Management API (CMA): 콘텐츠를 프로그래밍 방식으로 생성하고 업데이트하기 위한 읽기-쓰기 액세스. 초당 10회 요청으로 제한됩니다. 마이그레이션, 대량 가져오기, CI/CD 파이프라인에 사용합니다.
- Content Preview API (CPA): CDA와 동일하지만 초안 콘텐츠를 제공합니다. 프론트엔드에 미리보기 모드를 구축하는 데 완벽합니다. 편집자가 게시 버튼을 누르기 전에 게시되지 않은 변경 사항을 확인할 수 있습니다.
세 가지 모두 REST와 GraphQL을 지원합니다. 인증은 Bearer 토큰을 사용하며, delivery용과 management용 토큰이 분리되어 있습니다.
환경(Environment)과 스페이스(Space)
스페이스는 프로젝트, 환경은 콘텐츠용 git 브랜치라고 생각하면 됩니다. 프로덕션용 master 환경과, 편집자가 라이브 콘텐츠에 영향을 주지 않고 작업할 수 있는 staging 환경을 둘 수 있습니다.
환경은 앨리어싱(aliasing)을 지원합니다. 무중단 콘텐츠 승격을 위해 master 앨리어스를 새 환경으로 지정할 수 있습니다. Contentful과 함께 사용할 프론트엔드 프레임워크를 선택 중이라면, 이 환경 모델은 Vercel이나 Netlify 같은 플랫폼의 미리보기 배포와 잘 맞습니다.
웹훅을 사용하면 콘텐츠가 변경될 때마다 빌드를 트리거하거나, 외부 시스템과 동기화하거나, 워크플로를 시작할 수 있습니다. 대부분의 팀은 이를 CI/CD 파이프라인에 연결해 게시 이벤트마다 정적 사이트를 다시 빌드합니다.
Contentful의 콘텐츠 모델링
콘텐츠 모델링은 콘텐츠의 구조, 즉 어떤 필드가 존재하고, 어떤 타입의 데이터를 담으며, 콘텐츠 타입 간에 어떻게 연관되는지를 결정하는 "스키마"를 정의하는 곳입니다. 저희 경험상, 이 부분은 단순한 CMS 옵션들과 비교했을 때 Contentful이 진정으로 빛나는 부분입니다.
본질적으로 데이터베이스 테이블과 비슷하지만 더 유연한 콘텐츠 스키마를 설계하는 것입니다. "Blog Post" 콘텐츠 타입에는 제목(짧은 텍스트), 본문(리치 텍스트), 작성자(Author 콘텐츠 타입에 대한 참조), 태그(문자열 배열)가 있을 수 있습니다. 생성하는 모든 엔트리는 이 구조를 따릅니다.
필드 타입과 유효성 검사
Contentful은 탄탄한 범위의 필드 타입을 제공합니다:
- 짧은 텍스트 (Symbol): 제목, 슬러그, 라벨, 최대 256자
- 긴 텍스트 (Text): Markdown 또는 일반 텍스트, 글자 수 제한 없음
- 리치 텍스트: JSON 기반(HTML 아님), 완전한 렌더링 제어 가능
- 숫자: 정수 또는 소수
- 날짜/시간: ISO 8601 형식
- 불리언: 참/거짓 토글
- 미디어 (Asset): 이미지, 동영상, 문서, Contentful의 에셋 파이프라인에 저장
- 참조 (Link): 엔트리를 다른 엔트리나 에셋에 연결
- JSON Object: 자유 형식의 구조화된 데이터
- 위치: 위도/경도 쌍
각 필드는 유효성 검사를 지원합니다: 필수, 고유값, 정규식 패턴, 크기 제한, 커스텀 유효성 검사 메시지. 또한 필드가 편집기 UI에서 어떻게 렌더링되는지 제어하는 표시 옵션도 설정할 수 있습니다.
참조와 연결된 엔트리
참조는 콘텐츠 타입을 연결하는 방법입니다. Blog Post의 "Author" 참조는 Author 엔트리에 연결됩니다. "Related Posts" 필드는 여러 Blog Post 엔트리를 참조할 수 있습니다. 이렇게 하면 콘텐츠 그래프가 만들어집니다. 엔트리가 엔트리에 연결되고, 단일 API 호출로 쿼리할 수 있습니다.
Content Management API를 통해 생성할 때 Blog Post 콘텐츠 타입 정의가 실제로 어떻게 생겼는지 보여드리겠습니다:
{
"name": "Blog Post",
"fields": [
{ "id": "title", "type": "Symbol", "required": true },
{ "id": "slug", "type": "Symbol", "validations": [{ "unique": true }] },
{ "id": "body", "type": "RichText" },
{ "id": "author", "type": "Link", "linkType": "Entry" },
{ "id": "publishDate", "type": "Date" },
{ "id": "tags", "type": "Array", "items": { "type": "Symbol" } }
]
}이런 것은 버전 관리에 저장하고 마이그레이션 스크립트를 통해 적용할 종류입니다. 경쟁사 가이드 중 어느 곳도 Contentful 가이드에서 이런 것을 보여주지 않습니다. 콘텐츠 모델링을 추상적으로만 이야기할 뿐, 코드로 실제로 어떻게 생겼는지 보여주지 않습니다.
콘텐츠 쿼리: REST 및 GraphQL API
Contentful은 콘텐츠 가져오기를 위해 REST와 GraphQL API를 모두 제공합니다. REST는 단순한 쿼리에 직관적입니다. GraphQL은 중첩된 데이터가 필요하거나, 한 요청에 여러 콘텐츠 타입이 필요하거나, 과도한 데이터 가져오기(over-fetching)를 피하고 싶을 때 더 좋습니다. 둘 다 같은 인증 토큰을 사용합니다.
GraphQL 엔드포인트는 콘텐츠 모델에서 자동 생성됩니다. 생성하는 모든 콘텐츠 타입은 스키마에서 쿼리 가능한 타입이 되며, 필터링, 정렬, 페이지네이션이 내장되어 있습니다. 엔드포인트는 다음 위치에 있습니다:
https://graphql.contentful.com/content/v1/spaces/{SPACE_ID}Contentful의 GraphQL 문서에 따르면, 콘텐츠 타입을 수정할 때마다 스키마가 자동으로 업데이트됩니다. 수동 스키마 관리가 필요 없습니다.
GraphQL 쿼리 예제
다음은 작성자와 함께 최근 블로그 게시물 10개를 가져오는 기본 쿼리입니다:
query {
blogPostCollection(limit: 10, order: publishDate_DESC) {
items {
title
slug
publishDate
author {
name
}
}
}
}태그로 필터링하고 독일어 콘텐츠를 가져와야 하나요? where 절과 locale 매개변수를 추가하면 됩니다:
query {
blogPostCollection(
where: { tags_contains_some: ["javascript"] }
locale: "de"
) {
items {
title
body {
json
}
}
}
}주의할 점 하나: GraphQL 쿼리에는 복잡도 제한이 있습니다. 여러 연결된 참조가 있는 깊이 중첩된 쿼리는 상한선에 도달할 수 있습니다. Contentful은 쿼리의 노드 수와 깊이를 기반으로 복잡도를 계산합니다. 작성자, 카테고리, 관련 게시물이 있는 블로그 게시물을 가져오고, 각 관련 게시물의 작성자까지 가져온다면, 복잡도는 빠르게 누적됩니다.
REST API 기초
REST API는 더 단순하지만 중첩된 데이터에는 더 많은 요청이 필요합니다. 블로그 게시물에 대한 기본 가져오기는 https://cdn.contentful.com/spaces/{SPACE_ID}/entries?content_type=blogPost를 호출합니다. 평면적인 items 배열과, 클라이언트 사이드에서 해결해야 하는 연결된 엔트리용 별도 includes 객체가 포함된 JSON을 받게 됩니다.
TypeScript로 작업 중이라면, Contentful의 contentful.js SDK가 링크 해결과 타입 생성을 자동으로 처리합니다. raw fetch 호출의 경우, GraphQL API를 쿼리하는 최소한의 JavaScript는 다음과 같습니다:
const response = await fetch(
`https://graphql.contentful.com/content/v1/spaces/${SPACE_ID}`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${CDA_TOKEN}`,
},
body: JSON.stringify({ query }),
}
);
const { data } = await response.json();끝입니다. SDK 불필요, 빌드 단계 불필요, 의존성 불필요. Node.js, Deno, Cloudflare Workers, 브라우저 등 HTTP 요청을 보낼 수 있는 어디에서나 작동합니다.
알아두면 좋은 주요 기능
Contentful은 광범위한 기능 세트를 제공하지만, 모든 기능이 똑같이 중요한 것은 아닙니다. 다음은 일상적인 경험과 아키텍처 결정에 실제로 영향을 미치는 기능들입니다.
현지화 (강점과 공백)
Contentful의 현지화 모델은 인프라 수준에서 탄탄합니다. 스페이스에 로케일을 정의하고(Enterprise 플랜에서는 최대 100개 이상), 모든 필드가 로케일별 값을 저장할 수 있습니다. 필드 수준 로케일 재정의(field-level locale overrides) 덕분에 독일어 제목을 영어 제목과 다르게 설정하면서도 같은 히어로 이미지를 공유할 수 있습니다.
공백은 번역 관리입니다. Contentful은 번역을 저장할 필드를 제공하지만, 번역을 만들어내는 워크플로는 없습니다. 번역 메모리도, 용어집도, 할당 시스템도, 진행 상황 추적도 없습니다. 실제 번역 프로세스를 처리하려면 Phrase, Smartcat, Lokalise 같은 서드파티 통합이 필요합니다. 10개 이상의 언어를 관리하는 팀(저희는 사이트 전반에 걸쳐 10개 언어를 관리합니다)에게는 이 공백이 빠르게 비용으로 이어집니다.
환경과 브랜칭
환경은 콘텐츠 모델과 엔트리를 위한 git 브랜치처럼 작동합니다. staging 환경을 만들고, 스키마를 변경하고, 콘텐츠로 테스트한 다음, 준비가 되면 master로 승격합니다. 앨리어스를 사용하면 API URL을 변경하지 않고도 master가 가리키는 환경을 교체할 수 있습니다.
이것은 스키마 마이그레이션에 진정으로 유용합니다. 분리된 환경에서 새 콘텐츠 타입을 테스트하고, 프론트엔드가 올바르게 처리하는지 확인한 다음 승격할 수 있으며, 이 모든 것이 프로덕션 콘텐츠를 건드리지 않고 이루어집니다. 저희가 본 대부분의 팀은 2~3개의 환경을 사용합니다: 프로덕션, 스테이징, 그리고 가끔 대규모 마이그레이션용 기능 브랜치.
언급할 가치가 있는 기타 기능:
- 역할 및 권한: 세분화된 액세스 제어, 편집자를 특정 콘텐츠 타입으로 제한, 주니어 역할의 게시 액세스 차단, Enterprise 플랜의 커스텀 역할, SSO
- 웹훅: 모든 콘텐츠 이벤트에서 빌드, Slack 알림 또는 외부 워크플로 트리거
- 리치 텍스트: JSON 기반으로 완전한 렌더링 제어를 제공하지만, 모든 프론트엔드 프레임워크에 커스텀 렌더러가 필요
- App Framework: 커스텀 필드 편집기, 사이드바 위젯, 통합을 위한 확장 기능이 있는 마켓플레이스
- Image API: 즉석 리사이징, 크롭, 형식 변환(WebP, AVIF), 초점 크롭, 별도의 이미지 CDN 불필요
2026년 Contentful의 새로운 기능
Contentful은 2025년부터 2026년까지 중요한 업데이트를 제공했으며, 경쟁사 가이드 중 어느 곳도 이를 다루지 않습니다. 2023년이나 2024년 정보를 바탕으로 Contentful을 평가하고 있다면, 불완전한 그림을 가지고 있는 것입니다.
AI Actions와 콘텐츠 자동화
Contentful은 AI Actions를 출시했습니다. 대규모 언어 모델로 구동되는 자동화된 콘텐츠 워크플로로, 편집기 내에서 직접 사용할 수 있습니다. 번역 초안, SEO 메타데이터 생성, 대체 텍스트(alt-text) 작성, 톤 조정, 콘텐츠 요약을 처리합니다. 편집기 사이드바에서 액세스하며, 현재 편집 중인 엔트리에 대해 작동합니다.
Diginomica의 보도에 따르면, AI Actions는 단순한 헤드리스 CMS가 아닌 완전한 디지털 경험 플랫폼(DXP)으로 포지셔닝하려는 Contentful의 더 광범위한 움직임의 일부입니다. 이 기능은 반복적인 편집 작업을 자동화하는 데 진정으로 유용하지만, 번역 결과물은 여전히 사람의 검토가 필요합니다. 완성품이 아닌 초안입니다.
Contentful Studio (비주얼 빌더)
Contentful Studio는 2024년 봄에 GA(일반 제공)가 되었고 2025년 내내 상당히 성숙해졌습니다. 개발자가 아닌 사람도 드래그 앤 드롭 컴포넌트와 라이브 미리보기로 페이지를 구성할 수 있는 비주얼 페이지 빌더입니다. "Contentful에는 비주얼 편집이 없다"는 비판을 들어봤다면, Studio가 그 해답입니다. 다만 몇 가지 단서가 있습니다.
Studio는 프론트엔드 통합이 필요하고(컴포넌트를 Studio의 SDK에 등록해야 함), 기본 플랜에 포함되지 않은 유료 애드온입니다. Contentful의 구조화된 콘텐츠 모델 위에 WordPress 같은 페이지 빌딩을 원해온 팀에게는 이제 현실적인 옵션입니다. 비주얼 우선 워크플로에서는 여전히 Storyblok이 우위에 있지만, 그 격차는 좁혀지고 있습니다.
Ninetailed을 활용한 개인화
Contentful은 2024년에 Ninetailed을 인수하여 Contentful Personalization으로 리브랜딩했습니다. CMS Critic이 보도한 대로, 네이티브 A/B 테스트, 오디언스 세분화, AI 기반 변형 추천을 제공하며, 이 모든 것을 편집기의 Optimization 탭에서 액세스할 수 있습니다.
이것은 주목할 만합니다. 개인화는 역사적으로 별도의 벤더(Optimizely, Dynamic Yield 등)가 필요했기 때문입니다. CMS에 내장되어 있으면 통합 복잡성이 줄어듭니다. 단점: Ninetailed은 자체 가격 정책이 있는 별도 제품입니다. "Contentful에 무료 포함"이 아닙니다.
Contentful 가격: 실제 비용
Contentful은 4개의 등급을 제공하지만, 대부분의 경쟁사 가이드는 실제 숫자 없이 이름만 나열합니다. Contentful의 가격 페이지를 기준으로 2026년 4월 현재 상황은 다음과 같습니다:
| 플랜 | 가격 | 사용자 | 월 API 호출 | CDN 대역폭 | 스페이스 |
|---|---|---|---|---|---|
| Free (Community) | $0 | 10 | 10만 | 50 GB | Starter 1개 |
| Lite | 월 $300 | 20 | 100만 | 100 GB | 여러 개 |
| Premium | 커스텀 (약 월 $2K 이상) | 무제한 | 무제한 | 커스텀 | 커스텀 |
| Enterprise | 커스텀 (연간 5자리 중반~6자리) | 무제한 | 무제한 | 커스텀 | 커스텀 |
"Contentful Monthly Cost by Tier"
데이터 테이블
| "Plan" | "Monthly Cost" |
|---|---|
| "Free" | 0 |
| "Lite" | 300 |
| "Premium" | 2000 |
| "Enterprise" | 5000 |
무료 등급은 프로토타이핑과 학습에 넉넉합니다. 사용자 10명, 10만 API 호출, 실제 프로젝트를 구축할 수 있을 만큼의 대역폭을 제공합니다. 하지만 이를 넘어서면 비용이 빠르게 증가합니다.
예산에 반영할 숨은 비용:
- Lite의 API 초과 요금: 월 100만 호출을 초과하면 청구서에 초과 항목이 표시됩니다
- 로케일 비용: 추가 로케일마다 스페이스 한도에 계산됩니다 -- 필드 수준에서 50개 로케일은 누적됩니다
- Contentful Studio: 비주얼 빌더는 유료 애드온이며, Lite나 일부 Premium 플랜에도 포함되지 않습니다
- Ninetailed 개인화: 별도 제품, 별도 계약, 별도 가격
- 전문 서비스: 마이그레이션 지원, 온보딩, 교육은 별도로 청구됩니다
- 리치 텍스트 렌더러: 직접적인 비용은 아니지만, 프레임워크에 맞는 커스텀 렌더러를 구축하는 개발 시간은 실제 비용입니다
저희의 솔직한 의견: Contentful의 무료 등급은 평가와 소규모 프로젝트에 탄탄합니다. 하지만 예산이 주요 관심사라면, Strapi나 Payload 같은 오픈 소스 CMS 대안은 라이선스 비용을 완전히 없애줍니다. 호스팅 비용만 내면 됩니다.
Contentful vs Sanity vs Strapi: 비교
이 세 가지는 거의 모든 평가에서 거론되는 헤드리스 CMS 옵션들입니다. 저희는 Sanity로 프로덕션 시스템을 구축했으므로, 그 강점과 약점을 직접 알고 있습니다. 다음은 솔직한 비교입니다:
| 기능 | Contentful | Sanity | Strapi |
|---|---|---|---|
| 유형 | SaaS (클로즈드 소스) | SaaS + 셀프 호스트 | 오픈 소스 (셀프 호스트 또는 Cloud) |
| 무료 등급 | 사용자 10명, 10만 호출 | 10만 API 호출, 사용자 3명 | 무제한 (셀프 호스트) |
| GraphQL | 네이티브 | 플러그인 (GROQ가 기본) | 네이티브 |
| 콘텐츠 모델링 | GUI + API | 코드 (schema-as-code) | GUI + 코드 |
| 실시간 협업 | 예 | 예 (Presence API) | 제한적 |
| 비주얼 편집 | Studio 애드온 | Visual Editing (네이티브) | 아니오 |
| 현지화 | 네이티브 로케일 | 플러그인/커스텀 | 플러그인 (i18n) |
| 가격 | 월 $300부터 | $0부터 (넉넉한 무료) | 무료 (셀프 호스트) |
| 적합한 대상 | 엔터프라이즈, 멀티채널 | 개발자 우선, 유연한 스키마 | 예산 중시, 셀프 호스팅 |
Contentful이 이기는 경우: 대규모 콘텐츠 운영과 엄격한 거버넌스 요구사항이 있는 엔터프라이즈 팀. 성숙한 역할 시스템, SSO, 감사 로그, Enterprise 플랜의 99.99% SLA는 따라잡기 어렵습니다.
Sanity가 이기는 경우: 개발자 경험과 스키마 유연성. schema-as-code를 선호하고, GROQ의 쿼리 성능을 원하며, 실시간 협업 기능을 중시한다면 Sanity가 더 적합합니다. 자세한 내용은 저희의 완전한 Sanity CMS 가이드를 읽어보세요.
Strapi가 이기는 경우: 비용. API 호출 제한 없이 셀프 호스팅이 무료입니다. 자체 인프라를 관리할 DevOps 역량이 있고 엔터프라이즈 지원이 필요하지 않다면, Strapi는 달러당 가장 많은 CMS를 제공합니다.
Storyblok, Payload, Hygraph를 포함한 더 넓은 비교는 저희의 완전한 헤드리스 CMS 비교를 참조하세요.
Contentful을 선택하기 전에 알아야 할 한계
모든 CMS에는 트레이드오프가 있습니다. 다음은 Contentful의 한계로, 모호한 얼버무림이 아닌 구체적인 숫자를 제시합니다. 저희도 자체 콘텐츠 파이프라인용 Contentful을 평가할 때 이 중 여러 가지에 부딪혔습니다.
속도 제한은 실재합니다. CDA는 초당 55회의 캐시되지 않은 요청을 허용합니다. CDN 캐시된 응답은 무제한이지만, 앱이 캐시를 우회하면(예: 모든 요청에 대한 서버 사이드 렌더링) 제한에 빠르게 도달합니다. CMA는 초당 10회 요청으로 더 빡빡하며, 마이그레이션 스크립트와 대량 가져오기에 관련됩니다.
내장 비주얼 편집 없음(추가 비용 없이). Contentful Studio가 존재하지만, 프론트엔드 통합이 필요한 유료 애드온입니다. 팀이 기본 제품에서 WordPress 스타일의 페이지 빌딩을 기대한다면, 그 대화에 대비하세요. Storyblok은 모든 등급에서 비주얼 편집을 포함합니다.
번역 관리 없음. 로케일 필드를 제공하는 게 전부입니다. 번역 워크플로, 할당 시스템, 번역 메모리, 진행 상황 추적이 없습니다. 현지화를 핵심 기능으로 판매하는 플랫폼치고, 실제 번역 경험은 전적으로 Phrase, Smartcat, Lokalise 같은 서드파티 도구에 의존합니다.
프론트엔드 관련 모든 것에 개발자 의존. 콘텐츠 편집자는 엔트리를 생성하고 관리할 수 있습니다. 하지만 페이지 레이아웃 변경, 새 섹션 추가, 내비게이션 수정, 또는 어떤 식으로든 프론트엔드 업데이트는 개발자 없이는 불가능합니다. 이것은 헤드리스 아키텍처에 본질적인 것이지만, 기본 제품에 페이지 빌더가 포함되지 않은 Contentful에서는 더 증폭됩니다.
규모가 커지면 가격을 예측하기 어렵습니다. API 호출 초과, 로케일 기반 제한, Studio와 Personalization 애드온 비용, 전문 서비스가 예측하기 어려운 가격 모델을 만듭니다. 저희가 이야기한 여러 팀이 무료 등급 이후 첫 청구서에 놀랐습니다.
리치 텍스트 복잡성. Contentful의 리치 텍스트는 HTML이 아닌 JSON 기반입니다. 모든 프론트엔드 프레임워크에 커스텀 렌더러가 필요합니다. React용 @contentful/rich-text-react-renderer, vanilla JS용 rich-text-html-renderer 등. 렌더링에 대한 완전한 제어를 제공하지만, HTML 기반 경쟁사보다 개발 작업이 상당히 많습니다.
벤더 종속. 클로즈드 소스, SaaS 전용, 셀프 호스팅 옵션 없음. 콘텐츠는 API를 통해 내보낼 수 있지만, 콘텐츠 모델, 워크플로, 통합은 Contentful 전용입니다. 가격이 변경되거나 기능이 중단되면 선택지가 제한적입니다.
누가 Contentful을 사용해야 (그리고 사용하지 말아야) 하나
Contentful은 강력한 플랫폼이지만, 모든 프로젝트에 적합한 선택은 아닙니다. 다음은 스스로 판단하는 데 도움이 되는 결정 프레임워크입니다.
다음 경우 Contentful을 사용하세요:
- 여러 채널(웹, 모바일, IoT, 디지털 사이니지)에 걸쳐 콘텐츠를 관리하는 엔터프라이즈 팀
- 50개 이상의 로케일과 필드 수준 재정의가 있는 네이티브 현지화가 필요한 경우
- 전담 지원과 99.99% SLA가 있는 성숙하고 검증된 플랫폼을 원하는 경우
- 팀에 API 우선 아키텍처에 익숙한 개발자가 있는 경우
- 세분화된 역할, 권한, 감사 로그, SSO가 필요한 경우
다음 경우 Contentful을 건너뛰세요:
- 예산 제약이 있는 1인 개발자나 소규모 팀이라면, Strapi나 Payload를 보세요
- 기본 제품에 비주얼 페이지 빌더가 포함되길 원한다면, Storyblok을 보세요
- 코드 우선 스키마 정의와 최대 유연성을 선호한다면, Sanity를 보세요
- 단순한 블로그 CMS가 필요하다면, WordPress나 Ghost가 더 저렴하고 빠르게 설정할 수 있습니다
- 컴플라이언스 이유로 셀프 호스팅을 원한다면, Strapi나 Payload를 보세요
| 필요한 것이... | 선택 | 이유 |
|---|---|---|
| 엔터프라이즈급 거버넌스 | Contentful | 성숙한 역할, SSO, 감사 로그, 99.99% SLA |
| 최대 개발자 유연성 | Sanity | Schema-as-code, GROQ, 포터블 텍스트 |
| 제로 라이선스 비용 | Strapi 또는 Payload | 오픈 소스, 셀프 호스팅 가능 |
| 즉시 사용 가능한 비주얼 편집 | Storyblok | 비주얼 편집기가 핵심 제품 |
| 단순 블로그 | WordPress 또는 Ghost | 가장 빠른 게시까지의 시간 |
이 모든 대안에 대한 더 자세한 내용은 저희의 완전한 헤드리스 CMS 비교를 확인하세요.
시작하기: Contentful과 함께하는 첫 15분
다음은 이론이 아닌 실용적인 따라하기 가이드입니다. 약 15분 만에 제로에서 GraphQL로 콘텐츠를 쿼리하는 단계까지의 정확한 단계입니다.
1단계: 가입. contentful.com으로 가서 무료 계정을 만드세요. 신용카드가 필요 없습니다.
2단계: 스페이스 생성. 스페이스는 프로젝트 컨테이너입니다. 무료 등급은 Starter 스페이스 하나를 제공합니다. 설명이 잘 되는 이름을 지어주세요.
3단계: 콘텐츠 타입 정의. Content Model로 가서 "Add content type"을 클릭하고 "Article" 타입을 만드세요. 필드를 추가합니다: Title(짧은 텍스트, 필수), Slug(짧은 텍스트, 고유값 유효성 검사), Body(리치 텍스트), Cover Image(미디어), Published Date(날짜 및 시간).
4단계: 엔트리 생성. Content로 이동하여 "Add Article"을 클릭하고 필드를 채웁니다. Publish를 누릅니다.
5단계: API 키 가져오기. Settings -> API Keys로 갑니다. 새 API 키를 생성합니다. Space ID, Content Delivery API 토큰, Content Preview API 토큰을 받게 됩니다. 이것들을 저장하세요.
6단계: GraphQL Playground로 쿼리. 브라우저에서 이 URL을 여세요(자격 증명으로 교체):
https://graphql.contentful.com/content/v1/spaces/{SPACE_ID}/explore?access_token={CDA_TOKEN}7단계: 앱에서 가져오기. 위 API 섹션의 JavaScript fetch 예제를 사용하고, Space ID와 CDA 토큰을 교체하면 라이브 콘텐츠를 가져오고 있습니다.
프로 팁: GraphQL Playground URL은 Contentful UI에서 눈에 잘 띄지 않습니다. Settings -> API Keys -> GraphQL Playground URL에서 찾을 수 있거나, 위 템플릿을 사용하여 수동으로 구성할 수 있습니다. 즐겨찾기에 추가하세요. 개발하는 동안 계속 사용하게 됩니다.
FAQ
Contentful CMS란 무엇이며 어떻게 작동하나요?
Contentful은 구조화된 콘텐츠를 클라우드 허브에 저장하고 REST 및 GraphQL API를 통해 전달하는 API 우선 헤드리스 CMS입니다. WordPress와 달리 프론트엔드가 없으며, 원하는 프레임워크로 직접 구축합니다. 콘텐츠 편집자는 Contentful의 웹 앱을 통해 엔트리를 관리하고, 개발자는 API를 통해 해당 콘텐츠를 가져옵니다.
Contentful은 무료로 사용할 수 있나요?
예, Contentful은 사용자 10명, 월 10만 API 호출, 50 GB CDN 대역폭, Starter 스페이스 1개를 포함하는 무료 Community 등급을 제공합니다. 프로토타이핑과 소규모 프로젝트에 충분합니다. 유료 플랜은 Lite 등급이 월 $300부터 시작하며, Premium과 Enterprise 등급은 커스텀 견적으로 가격이 책정됩니다.
Contentful의 콘텐츠 모델링이란 무엇인가요?
콘텐츠 모델링은 필드, 유효성 검사, 참조가 있는 구조화된 콘텐츠 타입을 정의하는 것으로, 데이터베이스 스키마를 설계하는 것과 비슷하지만 콘텐츠용입니다. "Blog Post"나 "Product" 같은 타입을 특정 필드(제목, 본문, 이미지, 카테고리)와 함께 생성하며, 모든 엔트리는 그 구조를 따릅니다. 이것은 Contentful의 기반입니다.
Contentful은 WordPress와 어떻게 비교되나요?
Contentful은 헤드리스(API 전용, 내장 프론트엔드 없음)인 반면, WordPress는 콘텐츠 관리와 테마 기반 렌더링을 묶습니다. Contentful은 멀티채널 전달에 뛰어나며, 같은 콘텐츠로 웹, 모바일, IoT를 서비스할 수 있습니다. WordPress는 단순함에 뛰어나며, 개발자 없이 몇 분 안에 작동하는 사이트를 얻을 수 있습니다.
Contentful은 엔터프라이즈 사용에 적합한가요?
예, Contentful은 엔터프라이즈에서 가장 많이 채택된 헤드리스 CMS 플랫폼 중 하나입니다. Enterprise 플랜에는 SSO, 세분화된 역할 기반 액세스, 감사 로그, 전담 지원, 99.99% SLA, 무제한 API 호출이 포함됩니다. Spotify, Vodafone, Chanel, Atlassian 같은 기업들이 대규모 콘텐츠 운영에 사용합니다.
Contentful의 단점은 무엇인가요?
주요 한계는 다음과 같습니다: 기본 제품에 내장 비주얼 편집 없음(Studio는 유료 애드온), API 초과 및 애드온 비용으로 인한 규모에서의 가격 예측 불가능성, 번역 관리 워크플로 없음, 모든 프론트엔드 변경에 개발자 의존, 커스텀 렌더러가 필요한 리치 텍스트 JSON, 셀프 호스팅 옵션 없는 벤더 종속.
Contentful은 GraphQL을 지원하나요?
예, 네이티브로 지원합니다. 모든 Contentful 스페이스는 콘텐츠 타입을 기반으로 자동 생성된 GraphQL 스키마를 받습니다. 필터링, 페이지네이션, 정렬, 로케일별 요청으로 쿼리할 수 있습니다. 엔드포인트는 graphql.contentful.com/content/v1/spaces/{SPACE_ID}에 있으며, Content Delivery API 토큰으로 인증합니다.
Contentful의 월 비용은 얼마인가요?
무료 등급은 $0입니다. Lite는 사용자 20명과 100만 API 호출이 포함된 월 $300입니다. Premium은 커스텀 가격으로 월 약 $2,000 이상부터 시작합니다. Enterprise는 연간 5자리 중반에서 6자리까지입니다. 숨은 비용을 주의하세요: API 초과 요금, Contentful Studio 애드온 비용, Ninetailed 개인화 가격, 전문 서비스.
Contentful은 여러 언어를 처리할 수 있나요?
예, Contentful은 필드 수준 재정의가 있는 네이티브 로케일 지원을 제공합니다. 각 필드는 로케일별로 다른 값을 저장할 수 있습니다. 하지만 내장 번역 워크플로, 메모리, 용어집은 없습니다. 대규모로 실제 번역 프로세스를 관리하려면 Phrase, Smartcat, Lokalise 같은 서드파티 통합이 필요합니다.
Contentful Studio란 무엇인가요?
Contentful Studio는 2024년 봄에 GA가 된 비주얼 페이지 빌더 애드온입니다. 개발자가 아닌 사람도 라이브 미리보기가 있는 드래그 앤 드롭 컴포넌트로 페이지를 구성할 수 있습니다. 프론트엔드 통합이 필요하고(컴포넌트를 Studio의 SDK에 등록해야 함) 기본 Contentful 플랜에 포함되지 않은 유료 애드온입니다.