개인 프로젝트를 진행하면서 프론트와 백을 둘 다 개발하기 위해 스프링부트와 리액트를 연동하기로 함

spring:
datasource:
url: jdbc:mariadb://localhost:3306/databasename
driver-class-name: org.mariadb.jdbc.Driver
hikari:
username: username
password: password
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
node -v
npm -v
cd src/main
npx create-react-app frontend
cd frontend
npm start
리액트 프로젝트는 localhost:3000으로 열리고, 서버는 localhost:8080으로 열리기 때문에 origin이 달라진다
그래서 CORS 에러가 발생하기 때문에 Proxy 설정을 해줘야한다
CORS란 무엇인가?
React 프로젝트의 package.json에서 proxy를 추가한다
이 때, URL은 본인이 만든 서버의 URL과 포트를 적는다

package com.example.movie.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
@RestController
public class TestController {
@GetMapping("/api/test")
public List<String> Test() {
return Arrays.asList("테스트합니다.", "테스트테스트");
}
}
import React, {useState, useEffect} from "react";
import logo from './logo.svg';
import './App.css';
function App() {
const [msg, setMsg] = useState([]);
useEffect(() => {
fetch('api/test')
.then((res) => {return res.json();})
.then((data) => {setMsg(data);})
}, []);
return (
<div className="App">
<header className="App-header">
<ul>
{msg.map((content, idx) => <li key={`${idx} - ${content}`}>{content}</li>)}
</ul>
</header>
</div>
);
}
export default App;


리액트에서 3000포트가 이미 실행중인 경우, 다른 포트로 실행하겠냐는 물음에 y라고 답하면 3001포트로 실행되나 3000포트로 실행하고 싶다면 사용중인 포트를 종료하고 다시 실행하면 된다.
npx kill-port 포트번호
[React + Spring] 프로젝트 연동
SpringBoot + React 프로젝트 생성 방법 - 깃허브 연동까지