티스토리 뷰

728x90

YTS API 프록시를 통한 안정적인 데이터 요청 예제

프록시 서버는 클라이언트와 원본 서버 사이에서 중개 역할을 수행하며, 클라이언트가 원본 서버에 직접 접근하는 대신 프록시를 통해 요청을 전달하도록 합니다. 이를 통해 데이터 보안, API 관리, 트래픽 분산, 원본 서버 주소의 유연한 변경 등 여러 장점이 있습니다.

예를 들어 YTS API는 영화 정보를 제공하는 서비스이지만, 사이트 주소가 자주 변경됩니다. 프록시 서버를 사용하면, 원본 주소 변경에 대응하여 앱의 코드를 수정할 필요 없이 프록시 서버의 주소만 변경하면 됩니다.

이제 프록시 서버를 만드는 방법과 이를 Vercel에 배포하는 과정을 단계별로 설명하겠습니다.

1. 로컬 환경에서 간단한 프록시 서버 구축하기

1-1. 프로젝트 초기화 및 환경 설정

1. 프로젝트 폴더 생성 및 이동

mkdir yts-proxy-server
cd yts-proxy-server

2. Node.js 초기화 및 필수 라이브러리 설치

npm init -y
npm install express axios
  • express: 웹 서버를 손쉽게 구축할 수 있는 라이브러리입니다.
  • axios: YTS API와 통신하여 데이터를 요청하기 위한 라이브러리입니다.

1-2. 프록시 서버 코드 작성

1. index.js 파일 생성 후, 아래와 같이 코드를 작성합니다.

const express = require("express");
const axios = require("axios");

const app = express();
const PORT = process.env.PORT || 3000;

// YTS API의 기본 URL
const YTS_API_URL = "https://yts.mx/api/v2/list_movies.json";

app.get("/list_movies.json", async (req, res) => {
  try {
    // YTS API에 요청을 보낸 후 응답을 클라이언트에 전달
    const response = await axios.get(YTS_API_URL);
    res.json(response.data);
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: "YTS API 데이터 가져오기에 실패했습니다." });
  }
});

app.listen(PORT, () => {
  console.log(`프록시 서버가 http://localhost:${PORT}에서 실행 중입니다.`);
});

2. 로컬 테스트

node index.js

그런 다음 브라우저에서 http://localhost:3000/list_movies.json로 이동하여 API 응답이 잘 표시되는지 확인합니다.

2. Vercel을 이용해 프록시 서버 배포하기

Vercel을 사용하면 로컬 서버를 클라우드에 배포하여 누구나 접근할 수 있는 서버로 전환할 수 있습니다.

2-1. Vercel 설치 및 초기 설정

1. Vercel CLI 설치 및 로그인

npm install -g vercel
vercel login

2-2. Vercel 배포 설정

1. vercel.json 파일 생성하여 다음 설정을 추가합니다.

{
  "version": 2,
  "builds": [
    { "src": "index.js", "use": "@vercel/node" }
  ],
  "routes": [
    { "src": "/(.*)", "dest": "index.js" }
  ]
}

이 파일은 Vercel이 해당 프로젝트를 Node.js 서버로 인식하여 배포하도록 설정하는 역할을 합니다.

2-3. Vercel로 배포하기

프로젝트 폴더에서 다음 명령어를 입력하여 Vercel에 배포합니다.

vercel

명령어 실행 후 URL이 제공되면, 해당 URL에서 API 요청이 잘 되는지 확인할 수 있습니다. 예를 들어, https://<your-vercel-app>.vercel.app/list_movies.json과 같은 주소로 요청하여 데이터가 반환되는지 확인합니다.

프록시 서버의 활용 및 장점

프록시 서버는 다음과 같은 용도로 활용할 수 있습니다.

  • API 주소 변경: 원본 API 주소가 바뀌더라도 프록시 서버에서만 수정하면 됩니다.
  • 보안 강화: 민감한 정보를 숨기거나 IP 보호가 가능합니다.
  • 트래픽 관리: 여러 클라이언트의 요청을 프록시 서버가 대신 처리하여 원본 서버에 부하를 줄일 수 있습니다.

이렇게 프록시 서버를 구축하고 Vercel에 배포하면, 언제든 어디서든 YTS API와 같은 서비스에 안정적으로 접근할 수 있습니다.

728x90