| Date | User_Id | Sex | Age | Weight | Height | BMI | Fat | Muscle | Consumed_Cal | Intake_Cal |
|---|---|---|---|---|---|---|---|---|---|---|
| 2022-01-31 | 12 | 1 | 23 | 77 | 175 | |||||
| 2022-02-22 | 22 | 2 | 33 | 56 | 160 | |||||
| 2023-07-14 | 22 | 2 | 34 | 54 | 159 | |||||
IF. 테이블이 만들어졌다고 가정하고, 간단한 스켈레톤 코드 (TS, JAVA는 확인이 필요함…)
import React, { useState } from 'react';
import axios from 'axios';
interface CalculationResponse {
result: number;
}
const App: React.FC = () => {
const [result, setResult] = useState<number | null>(null);
const handleClick = async () => {
try {
// 1. FastAPI로 POST 요청을 보내고 결과를 받음
const response = await axios.post<CalculationResponse>('<http://localhost:8000/calculate>', { some_data: "example" });
setResult(response.data.result);
} catch (error) {
console.error(error);
}
};
return (
<div>
<button onClick={handleClick}>Calculate</button>
{result !== null && <div>Result: {result}</div>}
</div>
);
};
export default App;
from fastapi import FastAPI
import requests
from pydantic import BaseModel
# Batch Training Model Load
from machine_learning_model import model
app = FastAPI()
# 요청할 데이터 구조 정의 -> 하루 단위 Table
class DataRequest(BaseModel):
some_data: str
# FastAPI 엔드포인트
@app.post("/calculate")
def calculate_data(data_request: DataRequest):
# 2-1. Spring Boot로 DB 데이터를 요청
spring_boot_url = "<http://localhost:8080/get-data>"
spring_boot_response = requests.get(spring_boot_url)
# 2-3. 요청 받아온 것 -> 변수에 저장
data = spring_boot_response.json()
# 3. 받은 데이터를 머신러닝 모델로 처리 (간단히 예시)
result = model.predict(data) # 머신러닝 처리 부분
# 4. result -> json 형태든, 형태를 맞춰서 Spring Boot로 보내기 (model predict를 값만 X, 보내주는 형태에 맞게)
# 5. 결과를 다시 Spring Boot로 저장 요청
store_url = "<http://localhost:8080/store-result>"
requests.post(store_url, json={"result": result})
# react로 result 전송
return {"result": result}
# 예시로 사용할 머신러닝 모델 함수 (단순한 연산으로 대체 가능)
# def machine_learning_model(data):
# 예를 들어, 단순히 수치에 10을 더한다고 가정
# return data['value'] + 10
@RestController
public class DataController {
@Autowired
private DataService dataService;
// 2-2. FastAPI에서 데이터 조회 요청을 할 때
@GetMapping("/get-data")
public ResponseEntity<Data> getData() {
Data data = dataService.fetchDataFromDB();
return ResponseEntity.ok(data);
}
// 6. FastAPI에서 계산된 결과를 저장 요청할 때
@PostMapping("/store-result")
public ResponseEntity<Void> storeResult(@RequestBody Result result) {
dataService.saveResultToDB(result);
return ResponseEntity.ok().build();
}
}