7.3 KiB
7.3 KiB
Schema.org는 구조화된 데이터를 웹에 추가하기 위한 개방형 표준으로, 검색 엔진(Google, Bing, Yahoo 등)이 웹 페이지의 콘텐츠를 더 잘 이해하고 활용할 수 있도록 설계되었습니다. 2011년에 Google, Microsoft, Yahoo, Yandex가 공동으로 시작했으며, 현재는 커뮤니티 주도로 유지됩니다. Schema.org는 주로 마크업 형식(Microdata, RDFa, JSON-LD)을 통해 HTML에 의미론적 데이터를 삽입하며, 이를 통해 검색 결과의 풍부한 표시(Rich Snippets), 음성 검색 최적화, 기계 학습 등 다양한 용도로 활용됩니다.
1. Schema.org의 정의와 목적
- 정의: 웹 콘텐츠에 의미를 부여하는 어휘(Vocabulary)와 이를 적용하는 가이드라인 집합.
- 목적:
- 검색 엔진 최적화(SEO): 콘텐츠의 의미를 명확히 해 검색 결과 개선.
- 풍부한 검색 결과: 리뷰 별점, 이벤트 날짜, 제품 가격 등이 검색 결과에 표시.
- 기계 이해도 향상: AI, 크롤러가 데이터를 구조적으로 파싱 가능.
- 상호운용성: 다양한 플랫폼 간 데이터 공유 용이.
2. Schema.org의 주요 특징
- 어휘 기반: 계층적 타입(Type)과 속성(Property)으로 구성.
- 예:
Person타입은name,email,birthDate속성을 가짐.
- 예:
- 확장성: 커뮤니티 제안으로 새로운 타입과 속성 추가 가능.
- 형식 지원:
- Microdata: HTML 속성 사용.
- RDFa: HTML 속성으로 시맨틱 웹 연결.
- JSON-LD: 별도 스크립트로 삽입 (가장 널리 사용).
- 오픈 소스: 누구나 무료로 사용 가능, schema.org에서 문서 제공.
3. Schema.org의 주요 타입과 속성
Schema.org는 수백 개의 타입과 속성을 제공하며, 몇 가지 대표적인 예는 다음과 같습니다:
(1) Person (사람)
- 속성:
name,email,telephone,address,jobTitle. - 예: 개인 프로필.
(2) Event (이벤트)
- 속성:
name,startDate,endDate,location. - 예: 컨퍼런스, 공연.
(3) Product (제품)
- 속성:
name,description,price,brand,review. - 예: 전자상거래 상품.
(4) Article (기사)
- 속성:
headline,author,datePublished,image. - 예: 블로그 포스트, 뉴스.
(5) Organization (조직)
- 속성:
name,logo,contactPoint,url. - 예: 회사 정보.
4. Schema.org 마크업 형식
Schema.org는 세 가지 주요 형식으로 구현됩니다.
(1) Microdata
- HTML 태그에
itemscope,itemtype,itemprop속성 추가. - 예제:
<div itemscope itemtype="http://schema.org/Person"> <span itemprop="name">홍길동</span> <a href="mailto:hong@example.com" itemprop="email">hong@example.com</a> </div>
(2) RDFa
- HTML 속성(
typeof,property)으로 데이터 연결. - 예제:
<div typeof="Person"> <span property="name">홍길동</span> <a href="mailto:hong@example.com" property="email">hong@example.com</a> </div>
(3) JSON-LD (권장)
<script>태그에 JSON 형식으로 삽입.- 예제:
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Person", "name": "홍길동", "email": "hong@example.com" } </script> - 왜 권장?: HTML 구조와 분리, 유지보수 용이, 검색 엔진 선호.
5. Schema.org의 작동 방식
- 마크업 추가: 웹 페이지에 적절한 타입과 속성 삽입.
- 크롤링: 검색 엔진이 마크업을 파싱.
- 활용:
- Rich Snippets: 별점, 가격 등이 검색 결과에 표시.
- Knowledge Graph: Google의 지식 패널에 정보 제공.
- 음성 검색: "가까운 이벤트는?" 같은 질문에 답변.
6. 자바로 Schema.org JSON-LD 생성 예제
Jackson 라이브러리를 사용해 Schema.org 데이터를 JSON-LD로 생성할 수 있습니다.
(1) 의존성 (Maven)
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
(2) 모델링 및 생성
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
@Data
public class PersonSchema {
@JsonProperty("@context")
private String context = "http://schema.org";
@JsonProperty("@type")
private String type = "Person";
private String name;
private String email;
}
public class SchemaOrgExample {
public static void main(String[] args) throws Exception {
PersonSchema person = new PersonSchema();
person.setName("홍길동");
person.setEmail("hong@example.com");
ObjectMapper mapper = new ObjectMapper();
String jsonLd = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(person);
System.out.println("<script type=\"application/ld+json\">");
System.out.println(jsonLd);
System.out.println("</script>");
}
}
출력 결과:
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Person",
"name" : "홍길동",
"email" : "hong@example.com"
}
</script>
7. Schema.org의 장점과 단점
- 장점:
- 검색 엔진의 강력한 지원 (Rich Snippets, SEO 향상).
- 다양한 타입과 속성으로 유연성 제공.
- JSON-LD로 쉬운 구현.
- 단점:
- 초기 학습 곡선 존재.
- 잘못된 마크업 시 검색 엔진 패널티 가능.
- 모든 데이터가 풍부한 결과로 반영되지 않을 수 있음.
8. Schema.org와 Microformats 비교
| 특성 | Schema.org | Microformats |
|---|---|---|
| 형식 | JSON-LD, Microdata 등 | HTML 클래스 |
| 복잡도 | 중간 | 낮음 |
| SEO 지원 | 강력 | 제한적 |
| 어휘 범위 | 광범위 | 제한적 |
| 현재 사용 | 주류 | 소규모/레거시 |
- Schema.org: 현대 웹에서 SEO와 데이터 활용에 최적화.
- Microformats: 간단한 구조화 데이터에 유용.
9. 현대적 맥락
- 사용 사례: 전자상거래, 블로그, 이벤트 사이트, 지역 비즈니스 등.
- 도구:
- Google Structured Data Testing Tool: 마크업 검증.
- Rich Results Test: 풍부한 결과 확인.
- 확장:
pending.schema.org로 새로운 타입 제안 가능.
10. 결론
Schema.org는 웹 콘텐츠에 구조화된 데이터를 추가하는 강력한 도구로, SEO와 사용자 경험을 동시에 개선합니다. JSON-LD 형식이 가장 널리 사용되며, 자바로 쉽게 생성 가능합니다. 검색 엔진의 풍부한 결과를 노리거나 데이터를 기계 친화적으로 만들고 싶다면 필수적인 선택입니다.
추가로 특정 타입(예: Event, Product)에 대한 예제나 질문이 있다면 말씀해주세요!