← 블로그

JSON-LD를 백엔드 내부 계약에까지 끌어오는 이유

많은 사람이 JSON-LD를 웹페이지의 구조화 데이터나 SEO용 스크립트 태그 정도로만 생각한다. 물론 그것도 맞다. 하지만 내 관심은 거기서 멈추지 않는다.

나는 JSON-LD의 핵심을 데이터에 의미적 맥락을 붙이는 방식으로 본다. 그리고 그 생각은 백엔드 내부 계약에도 꽤 잘 맞는다.

왜 plain JSON만으로는 부족하다고 느끼나

plain JSON은 단순하다. 빠르고 유연하다. 하지만 의미는 결국 사람이 문서나 관습으로 보충해야 한다.

예를 들어 이런 구조가 있다고 하자.

{ "name": "Protein Bar", "price": 4500 }

이 데이터가 상품인지, 메뉴인지, 장바구니 항목인지, 세금 포함 가격인지 구조만 보고는 충분히 알기 어렵다.

JSON-LD 관점이 주는 것

JSON-LD는 데이터를 더 장황하게 만들 수 있지만, 대신 무엇을 표현하는지를 더 분명하게 만든다.

  • 데이터 타입이 드러난다
  • 필드 의미가 문맥과 연결된다
  • AI가 구조를 더 안정적으로 해석할 수 있다
  • 시스템 간 상호운용성을 높이기 쉽다

내가 모든 내부 로직에 JSON-LD를 강제하는 것은 아니다. 다만 도메인 간 계약이나 외부 노출 데이터처럼 의미가 중요한 경계에서는 이 관점이 꽤 유용하다.

결국 의도는 같다

내가 Pydantic, interface.py, JSON-LD를 함께 좋아하는 이유는 모두 같다. 데이터가 단순히 “통과”하는 것이 아니라, 무슨 의미로 통과하는지를 더 분명하게 만들기 위해서다.

요약하면 이렇다.

  • plain JSON은 구조를 준다
  • Pydantic은 제약을 준다
  • JSON-LD는 의미적 맥락을 더한다

이 세 가지가 합쳐지면 경계가 훨씬 덜 애매해진다. 그래서 나는 JSON-LD를 프론트 SEO 영역에만 두지 않고, 백엔드 계약 사고에도 끌어온다.