본문 바로가기
개발/스프링 프레임웍

JSON-LD란 무엇인가요? 스프링에 적용 방법 쉽게 설명해 드릴게요.

by 꿈트리꿈트리 2024. 11. 7.

만약 여러분이 웹사이트를 운영하고 있다면, 구글 검색 결과에서 내 콘텐츠를 더 잘 보여주고 싶다는 생각을 해본 적 있을 거예요. 이때 유용한 것이 '구조화 데이터 마크업'입니다. 그 중에서도 JSON-LD는 구조화 데이터를 추가하는 인기 있는 방법이에요. 자, 이제 JSON-LD가 무엇인지, 그리고 이를 Java Spring 프로젝트에 어떻게 적용할 수 있는지 차근차근 알아볼까요?

 

JSON-LD

JSON-LD란?

JSON-LD(JavaScript Object Notation for Linked Data)는 웹페이지의 데이터를 보다 이해하기 쉽도록 구조화하는 방법이에요. 주로 검색 엔진에 정보를 제공하기 위해 사용하죠. 쉽게 말해, 웹페이지에 있는 정보를 검색 엔진이 좀 더 잘 이해할 수 있게 '안내판'을 붙여주는 겁니다. 예를 들어, 여러분의 사이트가 레스토랑 정보를 담고 있다면, JSON-LD를 통해 "이건 레스토랑의 이름이고, 위치는 어디이고, 영업시간은 이렇습니다"라고 검색 엔진에 알려주는 식이죠.

구글이나 네이버 같은 검색 엔진은 이런 구조화 데이터를 읽어서 검색 결과에 좀 더 눈에 띄게 정보를 표시할 수 있어요. 예를 들어 별점 리뷰나 이벤트 정보가 검색 결과에 직접 나타나는 것을 본 적 있죠? 그게 바로 JSON-LD 같은 구조화 데이터 덕분이에요.

 

 

JSON-LD의 장점

  • 쉽게 읽고 쓸 수 있다: JSON-LD는 일반적인 JSON 형식을 따르기 때문에, JavaScript나 JSON에 익숙하다면 쉽게 작성할 수 있어요.
  • HTML과 분리 가능: HTML 코드 내에 넣지 않고도 JSON 형식으로 구조화 데이터를 별도로 작성할 수 있어서 코드 관리가 훨씬 편해요.

Java Spring에 JSON-LD 적용하기

이제 Java Spring 프로젝트에서 JSON-LD를 어떻게 적용할 수 있을지 알아볼게요.

 

JSON-LD 스크립트 작성하기 JSON-LD는 간단히 JSON 형식으로 작성할 수 있어요. 예를 들어, 여러분이 레스토랑 웹사이트를 운영한다고 가정하고, 아래와 같은 JSON-LD를 작성할 수 있어요:

{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "맛있는 집",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "서울특별시 강남구 테헤란로 123",
    "addressLocality": "서울",
    "postalCode": "12345",
    "addressCountry": "KR"
  },
  "telephone": "+82-2-1234-5678",
  "servesCuisine": "Korean",
  "openingHours": "Mo-Sa 11:00-22:00"
}

 

이 JSON-LD는 여러분의 레스토랑에 대한 기본 정보를 담고 있어요.

 

 

 

HTML에 JSON-LD 삽입하기 JSON-LD는 HTML에 <script> 태그를 사용해서 쉽게 삽입할 수 있어요. Java Spring의 Thymeleaf 템플릿을 사용한다고 가정해 보겠습니다. 다음과 같이 JSON-LD를 추가하면 됩니다:

<html>
<head>
  <title>맛있는 집 - 레스토랑 정보</title>
  <script type="application/ld+json">
    [[${jsonLdScript}]]
  </script>
</head>
<body>
  <!-- 나머지 HTML 내용 -->
</body>
</html>

여기서 jsonLdScript는 Java Spring의 컨트롤러에서 전달해주는 JSON-LD 데이터입니다.

 

 

Java Spring에서 JSON-LD 데이터 준비하기 Spring의 컨트롤러에서 JSON-LD 데이터를 준비하고, 뷰에 전달할 수 있어요. 예를 들어, 다음과 같이 컨트롤러를 작성할 수 있습니다:

@Controller
public class RestaurantController {
    @GetMapping("/restaurant")
    public String getRestaurantPage(Model model) {
        String jsonLdScript = "{\n" +
            "  \"@context\": \"https://schema.org\",\n" +
            "  \"@type\": \"Restaurant\",\n" +
            "  \"name\": \"맛있는 집\",\n" +
            "  \"address\": {\n" +
            "    \"@type\": \"PostalAddress\",\n" +
            "    \"streetAddress\": \"서울특별시 강남구 테헤란로 123\",\n" +
            "    \"addressLocality\": \"서울\",\n" +
            "    \"postalCode\": \"12345\",\n" +
            "    \"addressCountry\": \"KR\"\n" +
            "  },\n" +
            "  \"telephone\": \"+82-2-1234-5678\",\n" +
            "  \"servesCuisine\": \"Korean\",\n" +
            "  \"openingHours\": \"Mo-Sa 11:00-22:00\"\n" +
            "}";
        model.addAttribute("jsonLdScript", jsonLdScript);
        return "restaurant";
    }
}

 

이 코드에서는 JSON-LD 데이터를 문자열로 준비하고, 이를 Model에 추가해서 뷰로 전달합니다. 뷰에서는 이 데이터를 <script> 태그로 삽입하게 되죠.

 

json-ld , spring

정리

JSON-LD는 여러분의 웹사이트 정보를 검색 엔진이 더 잘 이해하도록 도와주는 도구입니다. Java Spring 프로젝트에서는 JSON-LD를 문자열로 준비하고, 이를 Thymeleaf 템플릿에 <script> 태그로 삽입하는 방식으로 쉽게 사용할 수 있어요. 이렇게 하면 검색 엔진에서 여러분의 웹사이트가 더 눈에 잘 띌 수 있게 되고, 사용자들에게도 더 나은 경험을 제공할 수 있답니다.

 

이 콘텐츠는 Google SEO에 큰 도움이 될 수 있습니다. 그 이유는 다음과 같습니다:

  1. 구조화 데이터 마크업: JSON-LD를 사용해 구조화 데이터를 추가하면, 검색 엔진이 웹사이트의 정보를 더 명확히 이해할 수 있어 검색 결과에서 더 매력적으로 보이게 됩니다. 이는 리치 스니펫과 같은 형태로 검색 결과에 반영될 수 있어 클릭률(CTR)을 높이는 데 도움을 줍니다.
  2. 검색 엔진의 이해도 향상: JSON-LD는 구글의 권장 방식 중 하나로, 검색 엔진이 웹페이지의 맥락을 잘 이해할 수 있게 도와줍니다. 이를 통해 페이지의 적절한 노출을 도울 수 있습니다.
  3. 구체적인 예제 제공: 이 글은 Java Spring 프로젝트에서 JSON-LD를 구체적으로 어떻게 사용할 수 있는지에 대한 예제를 포함하고 있어, 개발자가 쉽게 이해하고 따라 할 수 있게 합니다. 이는 콘텐츠의 실용성을 높이며, 방문자들이 더 오래 머물거나 콘텐츠를 공유할 가능성을 높입니다.
  4. 키워드 최적화: 콘텐츠 내에 "JSON-LD", "Java Spring", "구조화 데이터", "검색 엔진 최적화" 등의 키워드가 적절히 배치되어 있어서, 개발자나 SEO에 관심이 있는 사용자가 검색할 때 높은 순위에 노출될 가능성이 있습니다.

이러한 이유로, 해당 콘텐츠는 Google SEO에 긍정적인 영향을 줄 수 있으며, 웹사이트의 가시성을 높이는 데 도움이 됩니다. 추가적인 최적화를 위해 페이지 제목과 메타 설명도 잘 작성하면 더 큰 효과를 볼 수 있습니다.