Content 모델링
옷가게 쇼핑몰을 운영한다고 생각해 보세요. 상품을 하나 등록할 때마다 들어가는 정보는 늘 같습니다: 상품명, 가격, 사진, 설명. 이렇게 "상품 하나에는 어떤 항목이 들어가야 한다"를 미리 정해 둔 양식이 Content Type입니다. 종이로 치면, 빈칸이 인쇄된 신청서 서식과 같습니다.
Content Type을 한 번 만들어 두면, 그다음부터는 그 양식에 맞춰 상품을 계속 채워 넣기만 하면 됩니다. 채워 넣은 상품 하나하나는 Content라고 부릅니다. 즉 Content Type은 빈 서식이고, Content는 그 서식을 채운 종이 한 장입니다. 상품을 100개 등록해도 Content Type은 "상품" 하나뿐이고, Content가 100개 생기는 것입니다.
이 페이지에서는 Content Type이 무엇인지 먼저 살펴본 뒤, 옷가게의 "상품" Content Type을 직접 만들어 봅니다.
양식을 먼저 정하면 좋은 이유
상품을 정해진 양식 없이 자유롭게 적는다면, 어떤 상품에는 가격이 빠지고 어떤 상품에는 사진이 없는 일이 생깁니다. 나중에 "가격이 5만 원 이하인 상품만 보여줘" 같은 일을 하려고 해도, 가격이 어디 적혀 있는지 제각각이라 찾을 수가 없습니다.
Content Type은 이 문제를 미리 막아 줍니다. "상품에는 반드시 상품명이 있어야 한다", "가격은 숫자로만 적는다" 같은 규칙을 양식 자체에 넣어 두기 때문입니다. 그래서 누가 상품을 등록하든 같은 모양으로 쌓이고, 나중에 검색하거나 사이트에 내보낼 때도 한 번에 다룰 수 있습니다.
Field: 양식 안의 빈칸 하나
Content Type 안에 만드는 각각의 빈칸을 Field라고 부릅니다. "상품" Content Type이라면 상품명, 가격, 상품 사진, 상세 설명이 각각 하나의 Field입니다.
Field를 만들 때는 그 칸에 어떤 종류의 값이 들어갈지를 함께 정합니다. 상품명은 글자, 가격은 숫자, 사진은 이미지 파일처럼 종류가 다르기 때문입니다. 종류를 정해 두면 가격 칸에 실수로 글자를 적는 일을 막을 수 있고, 화면에도 종류에 맞는 입력칸(달력, 체크박스 등)이 나타납니다.
고를 수 있는 Field 종류는 다음과 같습니다.
| Field 종류 | 어떤 값을 담나 | 옷가게 예시 |
|---|---|---|
| Short Text | 짧은 글자 한 줄. 상품명, 코드, 이름표처럼 정확히 일치하는지 찾거나 앞글자로 찾을 때 알맞습니다 | 상품명 "스테인리스 텀블러 500ml" |
| Long Text | 여러 줄로 된 긴 글. 상세 설명이나 안내문에 알맞습니다 | 상품 상세 설명 |
| Integer | 소수점이 없는 정수 | 재고 수량 120 |
| Number | 소수점이 있는 숫자 | 무게 0.5 (kg) |
| Content Reference | 다른 Content를 연결합니다. 상품에 "브랜드"를 연결하는 식입니다 | 상품 → 브랜드 "데일리웨어" |
| Media | 이미지·영상 같은 업로드 파일을 연결합니다 | 상품 대표 사진 |
| Boolean | 참 / 거짓 둘 중 하나 | "신상품 여부" |
| Date & Time | 날짜와 시간 | 출시일 |
| Location | 위도·경도로 표시하는 위치 | 매장 위치 |
| JSON | 위 종류로 담기 어려운 자유로운 형태의 데이터 | 사이즈별 옵션표 |
한 칸에 값을 여러 개 담고 싶을 때도 있습니다. 예를 들어 상품 사진을 한 장이 아니라 여러 장 넣고 싶다면, 그 Field를 목록 타입으로 사용으로 설정하면 됩니다. 그러면 같은 종류의 값을 여러 개 모아 담을 수 있습니다.
Field 종류는 그 값을 나중에 어떻게 찾을 수 있는지도 정합니다. 예를 들어 Short Text(상품명·코드)는 정확히 같은 값이나 앞글자로 찾기에 알맞습니다. 긴 글인 Long Text(상세 설명)는 기본적으로는 검색되지 않고 보여주기만 하지만, 만들 때 전문검색을 켜 두면 글 속에 든 단어로도 그 상품을 찾을 수 있습니다.
Field 종류마다 담을 수 있는 값의 크기에도 정해진 한도가 있습니다. 짧은 글을 담는 종류일수록 한도가 작습니다. 한도를 넘는 값은 저장되지 않고 거부되므로, 긴 본문을 담을 칸이라면 Short Text 대신 긴 글 종류를 고르세요.
각 Field 종류의 저장 형식과 값 크기의 한도, 검색·필터를 거는 구체적인 방법(위치로 찾기 같은 특수 검색과 고급 검색 포함)은 공통 쿼리 파라미터와 API 레퍼런스에서 다룹니다. 콘텐츠 스튜디오에서 만들 때는 위 표의 종류만 알아도 충분합니다.
값에 규칙 걸기: 유효성 검사
Field에는 "이 칸에 들어올 수 있는 값"에 조건을 걸 수 있습니다. 이것을 유효성 검사라고 합니다. 조건에 맞지 않는 값은 저장되지 않으므로, 잘못된 Content가 쌓이는 것을 막아 줍니다.
Short Text Field를 예로 들면, 콘텐츠 스튜디오에서 다음 조건을 걸 수 있습니다.
- 필수 Field: 이 칸을 비워 두면 저장할 수 없게 합니다. 상품명처럼 꼭 있어야 하는 값에 켭니다.
- Field 중복 허용 안 함: 같은 값을 가진 Content가 이미 있으면 발행할 수 없게 합니다. 상품 코드처럼 겹치면 안 되는 값에 켭니다.
- 문자 수 제한: 글자 수의 최솟값·최댓값을 정합니다.
- 정규식 일치: 정해진 형식에 맞는 값만 받습니다.
- 정규식 금지: 정해진 형식에 맞는 값은 거부합니다.
- 허용 값 목록: 미리 정해 둔 값 중에서만 고르게 합니다.
걸 수 있는 조건은 Field 종류마다 다릅니다. 숫자 Field에는 값의 범위를 정하는 조건이, Media Field에는 파일 크기나 이미지 크기를 정하는 조건이 있습니다. 콘텐츠 스튜디오에서 Field 종류를 고르면 그 종류에 걸 수 있는 조건만 화면에 나타나므로, 전체 목록을 미리 외울 필요 없이 그때 골라서 켜면 됩니다.
발행할 때 작성자 정보를 함께 담을지
Content Type을 만들 때 "Publish할 때 Author 정보 포함"이라는 설정을 켜고 끌 수 있습니다.
이 설정을 켜면, 이 Content Type으로 만든 Content를 Publish(발행)할 때 "누가 만들었고 누가 마지막으로 고쳤는지"가 함께 저장됩니다. 그리고 이 정보는 외부에 공개되는 발행본에도 함께 담겨 전달됩니다. 작성자 이름을 사이트에 함께 보여주고 싶을 때 켭니다. 기본값은 꺼짐입니다.
Publish가 무엇인지는 상태와 발행에서 자세히 다룹니다. 여기서는 "Content를 외부에 공개하는 단계"라고만 알아 두면 됩니다.
"상품" Content Type 만들기
이제 옷가게의 "상품" Content Type을 직접 만들어 봅니다. 첫 Field로 상품명을 넣겠습니다.
- 왼쪽 메뉴에서 Content Type을 누르세요.
- 목록 오른쪽 위의 생성 버튼을 누르세요.
- 이름 칸에
상품을 입력하세요. - 설명 칸에 이 Content Type이 무엇인지 적으세요. (선택 사항입니다.)
- 작성자 정보를 함께 발행하려면 "Publish할 때 Author 정보 포함"을 켜세요. 지금은 꺼 둔 채로 진행해도 됩니다.
- 계속 버튼을 누르세요.

이어서 첫 Field인 상품명을 만듭니다.

- Field 편집기에서 새 Field 생성을 누르세요.
- Field 종류 선택 화면에서 Short Text 카드를 고르세요. 상품명은 짧은 글자 한 줄이기 때문입니다.
- 다음 버튼을 누르세요.

- Field 이름 칸에
상품명을 입력하세요. 이 이름은 콘텐츠 스튜디오 화면에 표시됩니다. - Field ID 칸에
productName을 입력하세요. 이름에 들어간 영문과 숫자로 Field ID가 자동으로 만들어집니다. 다만상품명처럼 영문·숫자가 없는 이름은 자동으로 만들어지지 않습니다. 이때는productName같이 영문·숫자로 직접 입력하세요. Field ID는 API에서 이 칸을 가리킬 때 쓰는 식별자입니다.

상품명은 반드시 있어야 하는 값이므로, 비어 있으면 저장되지 않도록 규칙을 겁니다.
- 상세 설정을 누르세요.
- 유효성 검사 탭으로 이동하세요.
- 필수 Field를 켜세요.
- 저장 버튼을 누르세요.

- 오른쪽 위의 생성 버튼을 누르세요.
- "제목으로 사용할 필드를 설정하시겠습니까?" 창이 뜨면 제목으로 설정하고 저장을 누르세요. 그러면 상품명이 Content 목록에서 각 상품의 제목으로 표시됩니다.

목록에 "상품"이 나타나면 Content Type이 만들어진 것입니다.

만든 다음에 알아 둘 것
Field ID는 만든 뒤에는 바꿀 수 없습니다. Content Type을 나중에 수정해 Field의 화면 이름(예: 상품명 → 제품명)은 바꿀 수 있지만, 이미 만든 Field의 Field ID(productName)는 변경되지 않습니다. 그래서 Field ID는 처음에 신중하게 정하는 것이 좋습니다.
만들면 바로 사용할 수 있습니다. 콘텐츠 스튜디오에서 생성으로 Content Type을 만들면 곧바로 발행되어 목록에 Published로 표시됩니다. 따로 발행 단계를 거치지 않고, 만들자마자 "상품"(Content)을 추가할 수 있습니다.
사용 중인 Content Type은 함부로 내릴 수 없습니다. "상품" Content Type으로 만든 상품(Content)이 하나라도 남아 있으면, 그 Content Type은 Unpublish(발행 취소)하거나 삭제할 수 없습니다. 먼저 그 Content Type으로 만든 Content를 모두 삭제한 뒤에 다시 시도해야 합니다.
다음으로 할 일
- Content 작성하기: 방금 만든 "상품" Content Type에 실제 상품을 채워 넣습니다.
- 상태와 발행: Publish, Draft, Changed 같은 상태가 무엇인지 알아봅니다.
- 다국어 관리: 상품 정보를 여러 언어로 관리하는 방법을 다룹니다.
