네이버 지식쇼핑 API로 간단한 React 쇼핑몰 만들기

0

이 글에서는 네이버 지식쇼핑 API를 사용하여 특정 쇼핑몰의 상품 목록을 React 애플리케이션에서 가져오는 방법을 단계별로 알아봅니다. 네이버 쇼핑 API를 활용하면 다양한 쇼핑 관련 데이터를 손쉽게 조회할 수 있으며, 이를 통해 효율적인 쇼핑몰 데이터 관리가 가능합니다.

API 사용을 위해서는 네이버 개발자 센터에서 API 키를 발급받아야 합니다. 각 API의 자세한 사용법과 예시는 네이버 개발자 센터의 공식 문서를 참고하시기 바랍니다.

네이버 개발자 센터

네이버 지식쇼핑 API 개요

네이버 지식쇼핑 API는 상품 정보를 검색하고 조회할 수 있도록 다양한 기능을 제공합니다. 주요 API는 다음과 같습니다:

  • 상품 검색 API: 특정 키워드로 상품을 검색하고, 상품의 이름, 이미지, 가격, 판매처 등의 정보를 조회할 수 있습니다.
  • 상품 상세 정보 API: 특정 상품의 상세 정보를 조회할 수 있습니다.
  • 카테고리 정보 API: 네이버 쇼핑의 카테고리 구조를 조회할 수 있습니다.
  • 쇼핑몰별 상품 검색 API: 특정 쇼핑몰에서 판매하는 상품을 검색할 수 있습니다.
  • 가격비교 API: 동일한 상품을 판매하는 여러 쇼핑몰의 가격을 비교할 수 있습니다.

React 프로젝트 설정 및 API 연동하기

1. React 프로젝트 설정

먼저, Create React App을 사용하여 새로운 React 프로젝트를 설정합니다. 터미널에서 다음 명령어를 실행하세요:

npx create-react-app naver-shopping
cd naver-shopping
npm install axios

2. .env 파일에 API 키 저장하기

프로젝트 루트 디렉토리에 `.env` 파일을 만들어 네이버 API 키를 저장합니다:

REACT_APP_NAVER_CLIENT_ID=YOUR_CLIENT_ID
REACT_APP_NAVER_CLIENT_SECRET=YOUR_CLIENT_SECRET

3. React 컴포넌트 작성하기

`App.js` 파일을 열고 다음과 같이 코드를 작성합니다. 이 코드에서는 axios를 사용하여 네이버 API를 호출하고, 특정 쇼핑몰의 상품 목록을 가져와 화면에 렌더링합니다.

import React, { useEffect, useState } from 'react';
import axios from 'axios';
import './App.css';

function App() {
  const [products, setProducts] = useState([]);
  const [error, setError] = useState(null);

  useEffect(() => {
    const fetchProducts = async () => {
      try {
        const response = await axios.get('https://openapi.naver.com/v1/search/shop.json', {
          params: {
            query: 'specific shop name', // 특정 쇼핑몰의 이름을 여기에 입력합니다.
            display: 10,
            start: 1,
            sort: 'sim'
          },
          headers: {
            'X-Naver-Client-Id': process.env.REACT_APP_NAVER_CLIENT_ID,
            'X-Naver-Client-Secret': process.env.REACT_APP_NAVER_CLIENT_SECRET
          }
        });

        setProducts(response.data.items);
      } catch (err) {
        setError(err);
      }
    };

    fetchProducts();
  }, []);

  return (
    <div className="App">
      <h1>Product List</h1>
      {error && <p>Error fetching products: {error.message}</p>}
      <ul>
        {products.map(product => (
          <li key={product.link}>
            <a href={product.link} target="_blank" rel="noopener noreferrer">
              <img src={product.image} alt={product.title} />
              <p>{product.title}</p>
              <p>{product.lprice} 원</p>
            </a>
          </li>
        ))}
      </ul>
    </div>
  );
}

export default App;

4. 스타일 추가하기

`App.css` 파일에 간단한 스타일을 추가하여 UI를 개선할 수 있습니다:

.App {
  font-family: Arial, sans-serif;
  text-align: center;
}

ul {
  list-style: none;
  padding: 0;
}

li {
  margin: 10px 0;
}

img {
  width: 100px;
  height: 100px;
}

a {
  text-decoration: none;
  color: black;
}

5. 애플리케이션 실행하기

프로젝트 루트 디렉토리에서 다음 명령을 실행하여 애플리케이션을 시작합니다:

npm start

브라우저에서 `http://localhost:3000`에 접속하면 네이버 쇼핑 API에서 가져온 특정 쇼핑몰의 상품 목록을 확인할 수 있습니다.

결론

이 글에서는 네이버 지식쇼핑 API를 활용하여 React 애플리케이션에서 특정 쇼핑몰의 상품 목록을 가져오는 방법을 살펴보았습니다. API를 사용하면 다양한 상품 정보를 손쉽게 조회하고 활용할 수 있어, 쇼핑몰 운영이나 상품 관리에 큰 도움이 될 수 있습니다. 이번 예제를 통해 API 사용과 React 연동의 기본 개념을 이해하고, 이를 바탕으로 더 복잡한 기능을 구현할 수 있을 것입니다.

Leave a Reply