GEO, JSON-LD

niche·2025년 6월 10일

https://www.w3.org/TR/json-ld/

위 내용을 LLM에게 참고시켜서 이것저것 질문해서 답을 얻은 내용을 아래와 같이 정리합니다.

JSON-LD의 Type 시스템 완전 가이드

📚 JSON-LD Type의 두 가지 종류

JSON-LD에서 @type두 가지 다른 용도로 사용됩니다:

1. Node Type (노드 타입) - 객체의 종류

2. Value Type (값 타입) - 데이터의 형식


🎯 1. Node Type (노드 타입)

정의

  • "이것이 무엇인가?"를 나타냄
  • 사람, 장소, 이벤트, 웹페이지 등의 객체 종류를 지정

예제

{
  "@id": "http://example.com/john",
  "@type": "http://schema.org/Person",  // ← 이것은 Node Type
  "name": "John Doe"
}

일반적인 Node Type들

{
  "@type": "http://schema.org/Person",        // 사람
  "@type": "http://schema.org/Organization",  // 조직
  "@type": "http://schema.org/Event",         // 이벤트
  "@type": "http://schema.org/Product",       // 상품
  "@type": "http://schema.org/BlogPosting",   // 블로그 포스트
  "@type": "http://schema.org/WebPage"        // 웹페이지
}

🔢 2. Value Type (값 타입)

정의

  • "이 값의 데이터 형식이 무엇인가?"를 나타냄
  • 정수, 실수, 날짜, 시간 등의 데이터 형식을 지정

예제

{
  "@value": "2010-05-29T14:17:39+02:00",
  "@type": "http://www.w3.org/2001/XMLSchema#dateTime"  // ← 이것은 Value Type
}

일반적인 Value Type들

// 문자열
{
  "@value": "Hello World",
  "@type": "http://www.w3.org/2001/XMLSchema#string"
}

// 정수
{
  "@value": 42,
  "@type": "http://www.w3.org/2001/XMLSchema#integer"
}

// 실수
{
  "@value": 3.14,
  "@type": "http://www.w3.org/2001/XMLSchema#decimal"
}

// 날짜
{
  "@value": "2024-01-15",
  "@type": "http://www.w3.org/2001/XMLSchema#date"
}

// 불린
{
  "@value": true,
  "@type": "http://www.w3.org/2001/XMLSchema#boolean"
}

🏗️ Type이 정해져 있는가?

표준 Vocabulary가 존재

  1. Schema.org - 가장 널리 사용

    "@type": "http://schema.org/Person"
    "@type": "http://schema.org/Product"
    "@type": "http://schema.org/Event"
  2. XML Schema Datatypes - Value Type용

    "@type": "http://www.w3.org/2001/XMLSchema#string"
    "@type": "http://www.w3.org/2001/XMLSchema#integer"
    "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
  3. 기타 표준들

    "@type": "http://xmlns.com/foaf/0.1/Person"     // FOAF
    "@type": "http://purl.org/dc/terms/Document"    // Dublin Core

🆓 하지만 자유롭게 정의 가능

{
  "@type": "http://mycompany.com/types/Employee",
  "@type": "http://example.org/CustomProduct"
}

💡 실제 사용 예제

복합 예제 - 블로그 포스트

{
  "@context": {
    "schema": "http://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#"
  },
  "@id": "http://example.com/posts/1",
  "@type": "schema:BlogPosting",  // ← Node Type (블로그 포스트)
  "schema:headline": "JSON-LD 가이드",
  "schema:datePublished": {
    "@value": "2024-01-15T10:00:00Z",
    "@type": "xsd:dateTime"       // ← Value Type (날짜시간)
  },
  "schema:wordCount": {
    "@value": 1500,
    "@type": "xsd:integer"        // ← Value Type (정수)
  },
  "schema:author": {
    "@type": "schema:Person",     // ← Node Type (사람)
    "schema:name": "김개발자"
  }
}

전자상거래 예제

{
  "@context": "http://schema.org/",
  "@type": "Product",             // ← Node Type
  "name": "스마트폰",
  "price": {
    "@value": "999000",
    "@type": "xsd:decimal"        // ← Value Type
  },
  "availability": "InStock",
  "manufacturer": {
    "@type": "Organization",      // ← Node Type
    "name": "테크컴퍼니"
  }
}

🔍 구분하는 방법

Node Type 판별법

  • @value와 함께 사용되지 않음
  • 객체나 엔티티의 종류를 나타냄
  • 보통 schema.org나 다른 vocabulary 사용

Value Type 판별법

  • @value와 함께 사용됨
  • 데이터의 형식을 나타냄
  • 보통 XML Schema datatypes 사용

📋 요약

구분Node TypeValue Type
목적객체가 무엇인지값의 형식이 무엇인지
사용처@value 없이@value와 함께
예시Person, Product, Eventstring, integer, dateTime
표준Schema.org, FOAF 등XML Schema
자유도완전 자유완전 자유

핵심 포인트

  1. 표준 vocabulary 존재하지만 강제는 아님
  2. Schema.org가 가장 널리 사용되는 표준
  3. 상황에 맞게 선택하거나 직접 정의 가능
  4. 상호 운용성을 위해 표준 사용 권장

JSON-LD의 Type 시스템은 유연성과 표준화의 균형을 제공합니다!

GEO(Generative Engine Optimization)를 위한 Schema.org JSON-LD 필수 요소

🎯 GEO란?

GEO(Generative Engine Optimization)는 ChatGPT, Bard, Bing Chat 등 생성형 AI 엔진에서 콘텐츠가 잘 인용되고 참조되도록 최적화하는 새로운 SEO 전략입니다.

📋 핵심 Schema.org 타입별 필수 요소

1. Article/BlogPosting (블로그/기사)

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "명확하고 구체적인 제목",
  "author": {
    "@type": "Person",
    "name": "저자명",
    "url": "저자 프로필 URL"
  },
  "datePublished": "2024-01-15T10:00:00Z",
  "dateModified": "2024-01-15T15:30:00Z",
  "publisher": {
    "@type": "Organization",
    "name": "사이트명",
    "logo": {
      "@type": "ImageObject",
      "url": "로고 URL"
    }
  },
  "mainEntityOfPage": "페이지 URL",
  "articleBody": "전체 본문 내용",
  "keywords": ["키워드1", "키워드2", "키워드3"],
  "about": [
    {
      "@type": "Thing",
      "name": "주제1"
    }
  ],
  "mentions": [
    {
      "@type": "Thing", 
      "name": "언급된 개체"
    }
  ]
}

2. Organization (조직/회사)

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "회사명",
  "url": "공식 웹사이트",
  "logo": "로고 이미지 URL",
  "description": "회사 설명",
  "foundingDate": "설립일",
  "founder": {
    "@type": "Person",
    "name": "창립자명"
  },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "주소",
    "addressLocality": "도시",
    "addressCountry": "국가"
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "전화번호",
    "contactType": "customer service"
  },
  "sameAs": [
    "소셜미디어 URL들"
  ]
}

3. Product (상품)

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "상품명",
  "description": "상세 설명",
  "brand": {
    "@type": "Brand",
    "name": "브랜드명"
  },
  "manufacturer": {
    "@type": "Organization",
    "name": "제조사"
  },
  "offers": {
    "@type": "Offer",
    "price": "가격",
    "priceCurrency": "KRW",
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "판매자"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "100"
  },
  "category": "상품 카테고리"
}

4. FAQ (자주 묻는 질문)

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "질문 내용",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "상세하고 정확한 답변"
      }
    }
  ]
}

🚀 GEO 최적화를 위한 핵심 전략

1. 필수 메타데이터

{
  "author": "신뢰할 수 있는 저자 정보",
  "datePublished": "발행일",
  "dateModified": "최종 수정일",
  "publisher": "권위 있는 발행처",
  "expertise": "전문성 표시",
  "trustworthiness": "신뢰성 지표"
}

2. 구조화된 콘텐츠

{
  "mainEntity": "핵심 주제",
  "about": ["관련 주제들"],
  "mentions": ["언급된 개체들"],
  "keywords": ["핵심 키워드들"],
  "articleSection": "카테고리/섹션"
}

3. 관계성 정보

{
  "isPartOf": "상위 콘텐츠",
  "hasPart": ["하위 콘텐츠들"],
  "relatedLink": ["관련 링크들"],
  "citation": ["인용 출처들"]
}

📊 GEO 성과 측정을 위한 추가 요소

HowTo Schema (방법 설명)

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "작업 제목",
  "description": "작업 설명",
  "step": [
    {
      "@type": "HowToStep",
      "name": "단계 제목",
      "text": "단계별 설명"
    }
  ],
  "totalTime": "PT30M",
  "tool": ["필요한 도구들"],
  "supply": ["필요한 재료들"]
}

🎯 GEO 최적화 체크리스트

필수 요소

  • 명확한 @type 정의
  • 구체적이고 정확한 name/headline
  • 상세한 description
  • 신뢰할 수 있는 author 정보
  • 정확한 날짜 정보 (datePublished, dateModified)
  • 권위 있는 publisher 정보

권장 요소

  • keywords 배열
  • about 주제 정보
  • mentions 관련 개체
  • sameAs 소셜 링크
  • aggregateRating 평점 정보
  • contactPoint 연락처 정보

고급 요소

  • expertise 전문성 표시
  • citation 인용 출처
  • isBasedOn 기반 자료
  • workExample 작업 예시

🔍 구현 예시 - 종합

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "GEO 최적화 완벽 가이드",
  "description": "생성형 AI 엔진 최적화를 위한 실무 가이드",
  "author": {
    "@type": "Person",
    "name": "김전문가",
    "jobTitle": "SEO 전문가",
    "worksFor": {
      "@type": "Organization",
      "name": "디지털마케팅회사"
    }
  },
  "publisher": {
    "@type": "Organization",
    "name": "마케팅인사이트",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "datePublished": "2024-01-15T10:00:00Z",
  "dateModified": "2024-01-15T15:30:00Z",
  "mainEntityOfPage": "https://example.com/geo-guide",
  "keywords": ["GEO", "생성형AI", "SEO", "최적화"],
  "about": [
    {
      "@type": "Thing",
      "name": "Generative Engine Optimization"
    },
    {
      "@type": "Thing", 
      "name": "AI Search Optimization"
    }
  ],
  "mentions": [
    {
      "@type": "SoftwareApplication",
      "name": "ChatGPT"
    },
    {
      "@type": "SoftwareApplication",
      "name": "Google Bard"
    }
  ],
  "isPartOf": {
    "@type": "WebSite",
    "name": "마케팅인사이트 블로그"
  }
}

이러한 구조화된 데이터를 통해 생성형 AI가 콘텐츠의 맥락, 신뢰성, 전문성을 정확히 이해하고 적절한 상황에서 인용할 수 있도록 도울 수 있습니다.

참고: Google의 구조화 데이터 가이드라인에 따르면, JSON-LD 형식이 가장 권장되며, 정확하고 완전한 정보 제공이 핵심입니다.

BreadcrumbList와 sameAs의 GEO 최적화 활용법

🍞 BreadcrumbList Schema

정의와 목적

BreadcrumbList는 웹사이트의 네비게이션 경로를 구조화하여 표현하는 Schema.org 타입입니다. 사용자와 검색엔진이 현재 페이지의 위치를 명확히 파악할 수 있도록 도와줍니다.

기본 구조

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "홈",
      "item": "https://example.com/"
    },
    {
      "@type": "ListItem", 
      "position": 2,
      "name": "카테고리",
      "item": "https://example.com/category"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "현재 페이지",
      "item": "https://example.com/category/current-page"
    }
  ]
}

GEO 최적화 효과

  1. 컨텍스트 제공: AI가 콘텐츠의 위치와 맥락을 이해
  2. 사이트 구조 파악: 전체 사이트의 정보 아키텍처 전달
  3. 관련성 강화: 상위 카테고리와의 연관성 명시

🔗 sameAs Property

정의와 목적

sameAs동일한 개체를 나타내는 다른 URL들을 연결하는 Schema.org 속성입니다. 주로 소셜미디어 프로필, 공식 웹사이트, 위키피디아 등을 연결합니다.

기본 구조

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "테크컴퍼니",
  "url": "https://techcompany.com",
  "sameAs": [
    "https://www.facebook.com/techcompany",
    "https://twitter.com/techcompany", 
    "https://www.linkedin.com/company/techcompany",
    "https://www.instagram.com/techcompany",
    "https://www.youtube.com/c/techcompany",
    "https://ko.wikipedia.org/wiki/테크컴퍼니"
  ]
}

Person의 경우

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "김개발자",
  "jobTitle": "CTO",
  "sameAs": [
    "https://www.linkedin.com/in/kimdev",
    "https://github.com/kimdev",
    "https://twitter.com/kimdev",
    "https://medium.com/@kimdev"
  ]
}

🎯 실제 사이트 활용 사례

전자상거래 사이트

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "홈",
      "item": "https://shop.example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2, 
      "name": "전자제품",
      "item": "https://shop.example.com/electronics"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "스마트폰",
      "item": "https://shop.example.com/electronics/smartphones"
    },
    {
      "@type": "ListItem",
      "position": 4,
      "name": "아이폰 15 Pro",
      "item": "https://shop.example.com/electronics/smartphones/iphone-15-pro"
    }
  ]
}

뉴스/블로그 사이트

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList", 
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "뉴스",
      "item": "https://news.example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "기술",
      "item": "https://news.example.com/tech"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "AI",
      "item": "https://news.example.com/tech/ai"
    }
  ]
}

🚀 GEO 최적화를 위한 고급 활용법

1. 조합 활용 - Article + BreadcrumbList + sameAs

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "블로그",
          "item": "https://example.com/blog"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "마케팅",
          "item": "https://example.com/blog/marketing"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "GEO 가이드"
        }
      ]
    },
    {
      "@type": "Article",
      "headline": "GEO 최적화 완벽 가이드",
      "author": {
        "@type": "Person",
        "name": "김마케터",
        "sameAs": [
          "https://www.linkedin.com/in/kimmarketer",
          "https://twitter.com/kimmarketer"
        ]
      },
      "publisher": {
        "@type": "Organization", 
        "name": "마케팅인사이트",
        "sameAs": [
          "https://www.facebook.com/marketinginsight",
          "https://twitter.com/marketinginsight",
          "https://www.youtube.com/c/marketinginsight"
        ]
      }
    }
  ]
}

2. LocalBusiness + sameAs

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "카페 모던",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "강남대로 123",
    "addressLocality": "서울",
    "addressCountry": "KR"
  },
  "sameAs": [
    "https://www.instagram.com/cafe_modern",
    "https://www.facebook.com/cafemodern",
    "https://place.map.kakao.com/12345",
    "https://map.naver.com/v5/entry/place/12345"
  ]
}

📊 GEO 최적화 효과

  1. 계층 구조 이해: AI가 콘텐츠의 위치와 중요도 파악
  2. 관련 콘텐츠 발견: 같은 카테고리의 다른 콘텐츠 연결
  3. 사이트 권위성: 체계적인 정보 구조로 신뢰도 향상

sameAs의 장점

  1. 신뢰성 검증: 여러 플랫폼에서의 일관된 정보 확인
  2. 권위성 강화: 공식 소셜미디어, 위키피디아 등과의 연결
  3. 엔티티 통합: 분산된 정보를 하나의 개체로 통합

🔍 구현 시 주의사항

{
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,  // 반드시 1부터 시작
      "name": "명확한 이름",  // 사용자가 이해하기 쉬운 이름
      "item": "완전한 URL"  // 상대경로 X, 절대경로 O
    }
  ]
}

sameAs

{
  "sameAs": [
    "https://www.facebook.com/page",  // 정확한 공식 URL
    "https://twitter.com/account",    // 활성화된 계정만
    "https://ko.wikipedia.org/wiki/정확한_페이지"  // 검증된 정보만
  ]
}

📋 체크리스트

BreadcrumbList 필수 요소

  • @type: "BreadcrumbList"
  • itemListElement 배열
  • 각 항목의 position (1부터 순차적)
  • 각 항목의 name (명확하고 간결)
  • 각 항목의 item (완전한 URL)

sameAs 필수 요소

  • 공식 소셜미디어 계정
  • 활성화된 프로필만 포함
  • 정확한 URL 사용
  • 관련성 있는 플랫폼만 선택

이러한 구조화된 데이터를 통해 생성형 AI가 콘텐츠의 맥락과 신뢰성을 더 정확히 파악하고, 적절한 상황에서 인용할 가능성을 높일 수 있습니다.

profile
개발이 곧 나를 만든다.

0개의 댓글