가계부 + 다이어리/환경 설정

React - 스프링 부트와 연동하기

ssoyul 2024. 6. 3. 10:56

 

 

사이드 프로젝트를 시작했는데, 프론트 엔드는 리액트로 만들고 백엔드는 인텔리 제이를 이용한 스프링 부트로 설정했다.

따라서 프론트와 백이 완전히 분리되어 두 개의 프로젝트가 되었다.

이제 둘을 연동하는 작업을 해보자.

 

 

Window

서버: Spring Boot v3.2.4

언어: Java 17

빌드: Gradle

IDE: IntelliJ Community

프론트: React, VS Code


 

 

 

1. 리액트 폴더 내의 package.json 파일 안에 아래 한 줄을 추가한다.

내 포트 번호는 따로 바꾸지 않아 8080 그대로이다. 만약 다른 번호라면 바꾸도록 하자.

 

"proxy": "http://localhost:8080",

 

 

 

2. Spring Boot 안에 테스트 컨트롤러 생성하기.

 

@RestController
public class TestController {
        @GetMapping("/test/hello")
        @ResponseBody
        public String hello() {
            return "hello. 안녕하세요.";
        }
}

 

 

 

3. 리액트 안에 axios(npm 또는 yarn으로) 설치 및 해당 백엔드 주소를 요청하는 axios 생성하기.

 

yarn add axios

 

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

function App() {
    const [message, setMessage] = useState("");

    useEffect(() => {
        axios.get("/test/hello")
            .then(response => {
                setMessage(response.data);
            })
            .catch(error => {
                console.error("error", error);
            });
    }, []);
    return (
      <div className="App">
          <header className="App-header">
              <img src={logo} className="App-logo" alt="logo"/>
              <h1 className="App-title">{message}</h1>
          </header>
      </div>
    )
}

export default App;

 

 

 

4. 연동이 잘 되었다면 아래와 같은 화면이 나온다.