| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- Passkey
- jQuery 4.0
- GTM
- Gemini
- 프론트엔드
- ChatGPT
- AI
- ASP.NET
- jira
- SEO
- 패스키
- #IT트렌드
- 프롬프트 엔지니어링
- 가상시나리오
- GA4
- swagger
- YouTrack
- 생산성
- 미래
- github
- 리포지토리 인텔리전스
- The Singularity is Here
- Visual Studio 2026
- Github Copilot
- 보안
- 벡터 인덱싱
- geo
- Dooray
- GPT
- Today
- Total
Beyond Frontend
GEO 최적화를 위한 상품 페이지 JSON-LD 개선 본문

디지털 정보 탐색의 패러다임이 기존의 키워드 기반 SEO(Search Engine Optimization)에서 생성형 AI 엔진을 대상으로 하는 GEO(Generative Engine Optimization)로 전환되고 있습니다. 이 변화는 단순히 검색 순위를 올리는 것을 넘어, AI가 콘텐츠의 의미를 정확히 이해하고 신뢰할 수 있는 정보원으로 인용하게 만드는 것을 목표로 합니다. 이러한 환경에서 상품 상세 페이지의 가시성을 극대화하기 위해서는 AI가 선호하는 방식으로 데이터를 구조화하는 아키텍처 재설계가 필수적입니다.
본 기술 가이드는 개발팀이 YES24의 『소년이 온다』 상품 페이지를 기준으로, 차세대 AI 검색 엔진이 선호하는 의미론적(Semantic) 데이터 구조를 명확히 이해하고, 실제 코드 레벨에서 이를 구현 및 검증할 수 있도록 지원하는 것을 목표로 합니다.
1. AS-IS: 기존 구조화된 데이터의 기술적 한계 분석
현재 상품 페이지에 구현된 JSON-LD 데이터는 Google 리치 결과(Rich Results) 노출과 같은 기본적인 검색 요건은 충족하고 있습니다. 하지만 생성형 AI가 지식 그래프를 구축하고, 사용자의 질문에 대한 답변의 근거로 해당 페이지를 인용하게 만들기에는 명백한 기술적 한계점을 내포하고 있습니다.
엔티티 식별의 모호성 (String vs. Thing)
현재 author 속성은 저자 '한강'을 단순한 텍스트 문자열(String)로 정의하고 있습니다. AI의 관점에서 이 "한강"은 동명이인일 수도, 대한민국의 강(River Han)일 수도 있습니다. 고유 식별자가 없기 때문에 AI는 이 엔티티가 누구인지 확률적으로 추론해야 하는 추가적인 연산 부담을 갖게 됩니다. 이는 AI가 해당 저자를 2016년 맨부커 인터내셔널상 및 2024년 노벨 문학상을 수상한 특정 인물(Thing)로 확신하지 못하게 만드는 결정적인 원인입니다.
문맥 정보의 결여 (Contextual Void)
책의 핵심 주제인 '광주 민주화 운동'은 현재 구조에서 description 필드 내에 비구조화된 텍스트의 일부로 포함되어 있습니다. AI는 이 텍스트를 자연어 처리(NLP)를 통해 분석해야만 책의 주제를 어렴풋이 파악할 수 있습니다. 이로 인해 "광주 민주화 운동을 다룬 소설 추천해줘"와 같은 구체적이고 의미론적인 사용자 질의에 대해, 우리 상품 페이지가 최적의 답변 후보로 인출(Retrieval)될 가능성이 현저히 낮아집니다.
권위 신호(Authority Signal)의 비구조화
'만해문학상', '말라파르테 문학상'과 같은 중요한 수상 내역은 페이지의 권위와 신뢰도를 입증하는 핵심적인 정보(Authority Signal)입니다. 그러나 현재 데이터에서는 이러한 정보가 description이나 genre 같은 일반 속성에 텍스트로 포함되어 있습니다. AI는 이를 명시적인 '팩트(Fact)'로 즉시 파싱(Parsing)하기 어렵고, 단순 설명의 일부로 간주할 수 있습니다. 이는 Google의 E-E-A-T(경험, 전문성, 권위, 신뢰) 평가 기준에서 중요한 신호를 약화시키는 구조적 문제입니다.
단순한 위상 구조(Topology)
현재의 JSON-LD는 모든 정보가 단일 Book 객체 안에 종속적으로 중첩(Nested)된 단순한 트리 구조(tree structure)를 가집니다. 이는 책, 저자, 출판사, 웹페이지 등의 개별 엔티티들이 독립적인 노드(Node)로서 서로 관계를 맺는 지식 그래프(knowledge graph) 형태가 아니므로, 각 엔티티 간의 복잡하고 다층적인 관계를 표현하는 데 명백한 한계가 있습니다.
이러한 한계점들은 차세대 AI 검색 환경에서 페이지의 정보적 가치와 가시성을 저해하는 근본적인 원인입니다. 이를 해결하기 위해 각 엔티티를 독립적으로 정의하고 상호 연결하는 새로운 아키텍처가 필요합니다.
2. TO-BE: 제안된 @graph 기반 아키텍처 해설
제안하는 TO-BE 아키텍처의 핵심 철학은 '연결(Linking)'과 '구체화(Disambiguation)'입니다. 이는 단일 객체 구조에서 벗어나, 웹페이지를 구성하는 여러 정보 단위를 독립적인 엔티티로 정의하고 이들을 상호 연결하는 @graph 구조를 통해 달성됩니다. @graph는 분산된 정보를 하나의 의미론적 네트워크로 묶어 AI가 마치 잘 정리된 지식 그래프를 읽는 것처럼 정보를 섭취(ingest)하게 만드는 GEO의 핵심 전략입니다.

TO-BE JSON-LD 전체 코드
아래는 제안된 아키텍처가 모두 반영된 최종 JSON-LD 코드입니다.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://www.yes24.com/product/goods/13137546",
"url": "https://www.yes24.com/product/goods/13137546",
"name": "소년이 온다 - YES24",
"isPartOf": {
"@id": "https://www.yes24.com/#organization"
},
"primaryImageOfPage": {
"@id": "https://www.yes24.com/product/goods/13137546#bookImage"
},
"mainEntity": {
"@id": "https://www.yes24.com/product/goods/13137546#book"
}
},
{
"@type": "Organization",
"@id": "https://www.yes24.com/#organization",
"name": "YES24",
"url": "https://www.yes24.com",
"logo": "https://image.yes24.com/sys/common/logo_yes24.gif",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+82-1544-3800",
"contactType": "customer service",
"email": "yes24help@yes24.com"
}
},
{
"@type": "Book",
"@id": "https://www.yes24.com/product/goods/13137546#book",
"name": "소년이 온다",
"image": {
"@type": "ImageObject",
"@id": "https://www.yes24.com/product/goods/13137546#bookImage",
"url": "https://image.yes24.com/goods/13137546/xl"
},
"description": "1980년 5월 광주의 비극을 다룬 한강의 장편소설. 중학생 동호의 죽음을 중심으로 역사적 트라우마와 남겨진 사람들의 고통을 시적인 문체로 그려낸 작품. 만해문학상과 이탈리아 말라파르테 문학상을 수상하며 작품성을 세계적으로 인정받았다.",
"inLanguage": "ko-KR",
"bookFormat": "https://schema.org/Paperback",
"numberOfPages": 216,
"datePublished": "2014-05-19",
"isbn": "9788936434120",
"gtin13": "9788936434120",
"about": [
{
"@type": "Event",
"@id": "https://www.wikidata.org/wiki/Q174990",
"name": "5·18 광주 민주화 운동",
"alternateName": "Gwangju Uprising"
}
],
"author": {
"@id": "https://www.yes24.com/product/author/341#author"
},
"publisher": {
"@type": "Organization",
"name": "창비",
"sameAs": [
"https://www.wikidata.org/wiki/Q12618635",
"http://www.changbi.com"
]
},
"award": [
"2014 만해문학상 수상",
"2017 말라파르테 문학상(Premio Malaparte) 수상"
],
"sameAs": [
"https://www.wikidata.org/wiki/Q19657306",
"https://ko.wikipedia.org/wiki/소년이_온다"
],
"offers": {
"@type": "Offer",
"price": 13500,
"priceCurrency": "KRW",
"availability": "https://schema.org/InStock",
"url": "https://www.yes24.com/product/goods/13137546",
"seller": {
"@id": "https://www.yes24.com/#organization"
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": 0,
"currency": "KRW"
}
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 9.7,
"reviewCount": 4561
}
},
{
"@type": "Person",
"@id": "https://www.yes24.com/product/author/341#author",
"name": "한강",
"alternateName": ["Han Kang", "Han Gang"],
"url": "https://www.yes24.com/product/author/341",
"image": "https://image.yes24.com/momo/TopCate0001/kimg/A000005.jpg",
"sameAs": [
"https://www.wikidata.org/wiki/Q5646626",
"https://ko.wikipedia.org/wiki/한강_(작가)"
],
"jobTitle": "Novelist",
"alumniOf": {
"@type": "CollegeOrUniversity",
"name": "연세대학교",
"sameAs": "https://www.wikidata.org/wiki/Q39601"
}
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "한강의 소설 '소년이 온다'는 실화를 바탕으로 했나요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "네, '소년이 온다'는 1980년 5월 18일 광주 민주화 운동 당시의 실제 사건을 배경으로 합니다. 주인공 '동호'는 당시 계엄군의 폭력에 희생된 실존 인물 문재학 열사를 모티브로 창조되었습니다."
}
},
{
"@type": "Question",
"name": "'소년이 온다'는 어떤 문학상을 수상했나요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "이 작품은 2014년 제29회 만해문학상을 수상하였으며, 2017년에는 이탈리아의 권위 있는 문학상인 말라파르테 문학상(Premio Malaparte)을 수상하며 국제적인 문학성을 인정받았습니다."
}
},
{
"@type": "Question",
"name": "노벨문학상 작가 한강의 다른 대표작은 무엇인가요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "한강 작가의 다른 대표작으로는 2016년 맨부커 인터내셔널상을 수상한 '채식주의자', '작별하지 않는다', '흰', '희랍어 시간' 등이 있습니다. 특히 '채식주의자'와 '소년이 온다'는 전 세계적으로 가장 널리 읽히는 작품입니다."
}
}
]
}
]
}
핵심 구성 요소별 기술적 의미 분석
@graph 구조와 @id를 통한 엔티티 연결
- What: @graph 속성은 JSON-LD 문서 내에 WebPage, Book, Person, Organization, FAQPage 등 여러 최상위 타입(Top-level Types)을 배열 형태로 포함할 수 있는 컨테이너 역할을 합니다. 각 엔티티는 https://...#book, https://...#author와 같이 URL 기반의 고유한 @id를 부여받아 식별됩니다. 다른 엔티티에서 이 엔티티를 참조할 때는 전체 정보를 다시 기술하는 대신 @id 값만 사용하여 간결하게 연결합니다. (예: Book 엔티티의 author 속성이 {"@id": "https://...#author"}로 Person 엔티티를 참조)
- Why: 이 구조는 AI의 지식 그래프가 정보를 처리하는 방식과 동일하게 '노드(Node, 각 엔티티)'와 '엣지(Edge, 엔티티 간의 관계)' 형태로 데이터를 모델링합니다. 이를 통해 AI는 각 정보 조각의 관계를 명확하게 파악할 수 있어 정보 처리 효율이 극대화되며, 동일한 정보(예: 저자 정보)의 중복을 방지하여 데이터의 무결성을 보장합니다.
sameAs를 통한 위키데이터(Wikidata) 엔티티 연결
- What: sameAs 속성은 페이지 내에서 정의한 로컬 엔티티가 웹상의 다른 데이터 소스에 있는 동일한 개념과 같다는 것을 명시적으로 선언하는 역할을 합니다. 본 아키텍처에서는 저자 '한강'의 Person 엔티티를 위키데이터의 고유 식별자인 https://www.wikidata.org/wiki/Q5646626과 연결합니다.
- Why: 이 연결은 GEO에서 가장 강력한 신호 중 하나입니다. AI에게 이 페이지의 "한강"이 단순 텍스트가 아니라, 전 세계적으로 검증되고 합의된 지식 베이스(위키데이터)에 등재된 바로 그 인물(Thing)임을 확증해줍니다. AI의 모호성을 원천적으로 제거함으로써, 페이지 전체의 정보 신뢰도를 비약적으로 상승시키고 '검증된 지식'의 일부로 편입시킵니다.
about을 통한 주제(Subject)의 명시적 정의
- What: about 속성은 해당 창작물(책)이 '무엇에 관한 것인지' 그 주제를 명시적으로 정의하는 데 사용됩니다. description에 텍스트로 서술하는 대신, 책의 핵심 주제인 '5·18 광주 민주화 운동'을 별도의 Event 타입 엔티티로 정의하고, 이 역시 위키데이터 ID(Q174990)와 연결하여 책 엔티티의 about 속성으로 지정합니다.
- Why: 이는 책과 특정 역사적 사건 간의 관계를 기계가 완벽하게 해석 가능한 데이터로 변환하는 작업입니다. 사용자가 "5.18 관련 도서 추천"과 같이 주제 기반의 심층적인 검색을 할 때, AI는 더 이상 텍스트를 추론할 필요 없이 명시적으로 연결된 about 관계를 통해 이 책을 가장 정확한 결과로 제시할 수 있게 됩니다.
FAQPage를 통한 대화형 검색 질의 대응
- What: FAQPage 스키마는 페이지 내의 콘텐츠 중 예상 질문과 답변의 쌍을 구조화하여 검색 엔진에 제공하는 역할을 합니다. "소년이 온다는 실화인가요?"와 같은 질문과 그에 대한 명확한 답변을 "@type": "Question"과 "@type": "Answer" 속성을 가진 객체로 각각 마크업합니다.
- Why: 사용자가 생성형 AI에게 직접 질문하는 대화형 검색이 증가함에 따라, 이 구조는 AI가 생성하는 답변의 직접적인 출처(Source)로 인용될 가능성을 극대화합니다. 이는 '제로 클릭 검색' 환경에서 사용자가 우리 페이지를 방문하지 않더라도 YES24가 제공한 정보가 답변으로 노출되어 브랜드의 권위를 확보하는 핵심적인 전략입니다.
제안된 아키텍처는 단순한 스키마 태그 추가가 아닙니다. 이는 웹페이지를 AI를 위한 정교하고 신뢰도 높은 지식 데이터베이스로 변환하는 근본적인 패러다임 전환 작업입니다.
3. AS-IS vs. TO-BE 상세 비교 분석
본 섹션에서는 기존 구조와 개선된 구조의 차이점을 항목별로 명확하게 비교하여, TO-BE 아키텍처가 실질적으로 어떤 GEO 효과를 가져오는지 개발자가 직관적으로 이해할 수 있도록 돕습니다.
| 구분 | AS-IS (기존) | TO-BE (개선안) | GEO/AI 최적화 효능 및 원리 |
| 구조 | 단일 Book 객체 내 중첩 구조 | @graph를 활용한 다중 엔티티 연결 구조 | 지식 그래프 복제: AI는 데이터를 노드(Node)와 엣지(Edge)의 관계로 이해합니다. @graph는 WebPage, Book, Person 등을 독립 노드로 정의하고 상호 연결하여, AI가 내부 데이터베이스와 동일한 구조로 정보를 섭취(ingest)하게 돕습니다. |
| 저자 식별 | 텍스트 문자열 ("한강") | 위키데이터 ID (Q5646626) 연결 및 상세 프로필 | 동명이인 구분 및 권위 확장: AI에게 "이 페이지의 저자는 당신이 알고 있는 그 노벨상 수상 작가다"라고 확증해주는 역할을 합니다. AI의 추론 비용을 없애고 정보의 신뢰도를 높입니다. |
| 주제 설정 | description 내 텍스트 암시 | about 속성으로 Event 엔티티(광주 민주화 운동) 연결 | 검색 의도 매칭: 사용자가 "광주 민주화 운동 관련 소설 추천해줘"라고 물을 때, 텍스트 분석에 의존하지 않고 명시적인 about 관계를 통해 정확도 높은 추천이 가능해집니다. |
| 장르 정의 | 단순 문자열 배열 (예: "한국소설") | DefinedTerm 객체 활용 (권장) | 분류 체계의 이해: 단순 텍스트가 아닌, YES24 내부 분류 체계(DefinedTermSet) 내의 고유 용어로 정의함으로써, AI에게 YES24의 전문적인 도서 분류 위계를 학습시킬 수 있습니다. |
| 수상 내역 | description에 텍스트로 포함 | award 속성에 명시적 리스트업 | E-E-A-T 신호: award 속성은 기계가 즉시 해석 가능한 팩트 데이터입니다. 텍스트 속에 묻힌 정보와 달리, 페이지의 권위 점수(Authority Score)를 직접적으로 높이는 강력한 신호가 됩니다. |
| 출판사 | 이름만 명시 ("창비") | 위키데이터 및 공식 웹사이트 연결 | 브랜드 신뢰도: 출판사를 위키데이터(Q12618635)와 연결하여, 이 책이 유령 출판사가 아닌 역사 깊은 출판사에서 나왔음을 데이터 레벨에서 증명합니다. |
| 리뷰 데이터 | 기본적인 AggregateRating | 상세 Review 객체 활용 (권장) | 사회적 증거: 리뷰 수와 평점뿐만 아니라, 실제 리뷰 텍스트를 구조화하면 AI가 "독자들의 반응이 좋은 책"으로 인식하고 추천 근거로 활용할 가능성이 높아집니다. |
| FAQ | 없음 | FAQPage 스키마 추가 | 제로 클릭 검색 및 음성 검색 대응: "소년이 온다 실화인가요?"와 같은 질문에 대해 AI가 생성하는 답변의 직접적인 출처(Source)로 인용될 확률을 극대화합니다. |
핵심 개선 사항 요약
가장 중요한 개선점은 다음과 같이 요약할 수 있습니다. 첫째, 엔티티 식별의 명확화를 통해 단순 텍스트를 전 세계적으로 검증된 개념으로 격상시켰습니다. 둘째, 주제 연결을 명시화하여 콘텐츠의 핵심 문맥을 AI가 오해 없이 파악하도록 했습니다. 셋째, 수상 내역과 같은 권위 신호를 구조화하여 페이지의 신뢰도를 데이터 레벨에서 증명했습니다.
이 비교를 통해 TO-BE 아키텍처의 기술적 우위와 필요성이 명확해졌습니다. 이제 실제 구현과 검증을 위한 구체적인 로드맵을 제시합니다.
'Frontend Essentials' 카테고리의 다른 글
| 프론트엔드 체감 속도 최적화 전략 (0) | 2025.12.21 |
|---|---|
| 웹 접근성, 그거 왜 해야 돼요? 개발자라면 꼭 알아야 할 A11y 가이드! (0) | 2025.12.21 |
| GitHub Copilot 활용방안: 레거시 시스템 현대화 (0) | 2025.12.17 |
| Asynchronous Log Aggregation (1) | 2025.12.16 |
| Kestrel: ASP.NET Core (0) | 2025.12.16 |
