1. React ( port : 3000 )
[ npm은 설치되어있다고 전제 ]
1) npm install react
: 리액트 설치를 위함
2) npm install http-proxy-middleware
: CORS 정책 우회를 위함
3) src/setupProxy.js 생성 후 아래 내용 추가
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/test', // 우회가 필요한 부분을 라우팅
createProxyMiddleware({
target: 'http://localhost:8080', //타겟이 되는 API의 URL 입력. 필자는 백엔드에 8080 포트사용
changeOrigin: true, // 서버 구성에 따라 호스트 헤더가 변경되도록 설정
})
);
};
4) src/App.js를 아래와 같이 설정
import React, {useEffect, useState} from "react";
import axios from 'axios';
function App(){
let [data, setData] = useState(""); // useState 정의
// useEffect에서 응답된 데이터를 /test로부터 받아온다.
useEffect(()=>{
axios.get(`/test`)
.then(response => setData(response.data)
.catch(error => console.log(error)))
}, []);
// useEffect의 axios로부터 받아온 정보는 setData를 통해 data에 저장됨.
// 해당 내용을 return문의 { }로 둘러쌓인 부분에 넣어 출력
return(
<div>
<p>axios Result : </p>
<p>{data}</p>
</div>
)
}
export default App;
2. Spring Boot ( port : 8080 )
1) spring initializer를 통해 다음과 같이 설정
필자의 경우는 gradle을 이용하여 세팅
: 결론적으로 다음과 같은 구조를 가지게 된다
2) src/main/java/com.example.demo/DemoApplication 코드를 아래와 같이 작성
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.sql.Date;
import java.sql.Time;
import java.time.LocalDate;
import java.time.LocalDateTime;
@RestController
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping(value = "/test")
public String test() {
System.out.println(LocalDateTime.now());
return "\n현재시간은? : " + LocalDateTime.now();
}
}
3. 결과 화면
1) 리액트
2) 스프링
'개발' 카테고리의 다른 글
[React] github 프로젝트 로컬상에서 실행하기 (0) | 2024.04.21 |
---|---|
[API] REST vs SOAP (0) | 2024.03.13 |
[nginx] 이미지 올리기 (0) | 2024.03.02 |
IoT 사진 (2) | 2023.11.20 |