DS-Volare / front-end

Plotter, 자연어 처리 기반 소설 IP 확장 솔루션
0 stars 0 forks source link

[init] 여러 개의 서버 연결을 위한 프록시 설정, components 하위 파일 정리 #34

Closed otcroz closed 1 month ago

otcroz commented 1 month ago

⚙️ 기능 설명

Flask 서버, Spring boot 서버의 경로를 연결하여 리액트 서버에서 여러 개의 서버와 통신할 수 있도록 설정한다.

✅ To-do

📑 참고 자료

otcroz commented 1 month ago

패키지 설치

npm i http-proxy-middleware@^2.0.1

1. react + typescript 환경에서 http-proxy-middleware 적용하기

우선 결론만 말하자면, react+javascript 환경과 달라진 내용은 없다. typescript를 사용하기 때문에 다르게 작성해야 하는 코드가 있나 싶어 공식 문서를 찾아봤지만 typescript에 대한 업데이트를 중지했다고 한다.

// setProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function (app) {
  app.use(
    createProxyMiddleware('/spring', { // 리액트 서버에서 사용할 경로
      target: 'http://localhost:8080', // 서버 경로 1
      changeOrigin: true,
      pathRewrite: { '^/spring': '/' },
    })
  );
  app.use(
    createProxyMiddleware('/flask', { // 리액트 서버에서 사용할 경로
      target: 'http://localhost:5000', // 서버 경로 2
      changeOrigin: true,
      pathRewrite: { '^/flask': '/' },
    })
  );
};

API 통신 코드 작성 방법

  1. /flask/convert_script를 작성하면 원래는 http://localhost:5000/flask/convert_script를 호출하게 된다.
  2. pathRewrite 속성에 의해 flask/로 rewrite된다.
  3. 즉, http://localhost:5000/convert_script를 호출한다.
otcroz commented 1 month ago

‼️ http-proxy-middleware 최신 버전 적용 문제

몇 달 전에 http-proxy-middleware의 업데이트가 있었다. 그래서 npm install http-proxy-middleware 명령어로 설치하면 3.0.0 버전으로 설치된다. 하지만 err_connection_refused 오류가 발생하였다. https://github.com/chimurai/http-proxy-middleware/blob/master/MIGRATION.md 코드를 참고하여 버전에 맞게 재작성했지만 오류가 해결되지 않아 버전을 낮추는 방법(v3.0.0 -> v2.0.1)을 택했다.