Python과 React.js의 잠재력을 발휘하여 고성능 웹 애플리케이션을 구축해 보자.
웹 개발은 일반적으로 프론트엔드와 백엔드 언어 간의 괴리감을 겪게된다. Python과 React.js는 종종 먼 세상에 머물고 있다. 오늘은 이 둘을 하나로 결합하여 웹 앱 성능을 더욱 향상시키는 코드를 만들어 본다.
시작하기 위해 우리는 Node.js와 Python이 필요하다. 설치되어 있지 않다면 여기에서 Node.js를 다운로드하고 여기에서 Python을 다운로드할 수 있다. 설정이 완료되면 새로운 Node.js 프로젝트를 초기화하고 npm을 사용하여 React.js를 설치해보자.
mkdir python-react
cd python-react
npm init -y
npm install --save react react-dom
백엔드 기능을 수행하는 Python 파일인 my_script.py
를 만들어 보자.
# my_script.py
def main():
print("Python and React.js in harmony!")
if __name__ == "__main__":
main()
이 Python 스크립트는 호출될 때 한 줄을 출력하는 간단한 기능이다. 이 기능을 React.js 앱에 통합하겠다.
JavaScript 기반의 React 앱에서 Python 스크립트를 실행할 방법이 필요하다. Node.js는 자식 프로세스를 생성하기 위한 child_process
모듈을 제공한다. 우리는 runPython.js
에서 runPython
함수를 만들기 위해 이를 사용할 것이다.
const { spawn } = require('child_process');
const runPython = () => {
const process = spawn('python', ['./my_script.py']);
process.stdout.on('data', (data) => {
console.log(`Python: ${data}`);
});
};
module.exports = runPython;
React 프론트엔드와 Python 백엔드를 연결하기 위해 Express.js를 사용한다. server.js
에 Express.js 라우트를 정의하여 runPython
함수를 실행하고 결과를 반환한다.
const express = require('express');
const runPython = require('./runPython');
const app = express();
const port = 3000;
app.get('/run-python', (req, res) => {
runPython();
res.send('Python Script Executed');
});
app.listen(port, () => {
console.log(`Server listening at http://localhost:${port}`);
});
React 앱에서는 Express.js 라우트에 GET 요청을 보내 Python 스크립트를 실행한다. HTTP 요청을 처리하기 위해 axios
패키지를 사용할 것이다.
import React, { useEffect } from 'react';
import axios from 'axios';
function App() {
useEffect(() => {
axios.get('http://localhost:3000/run-python')
.then((res) => console.log(res.data))
.catch((error) => console.log(error));
}, []);
return (
<div className="App">
Check the console!
</div>
);
}
export default App;
우리는 React.js 애플리케이션에서 Python 스크립트를 성공적으로 실행했다. Python과 React.js를 조화롭게 사용하면 우수한 성능을 가진 웹 애플리케이션을 만들 수 있을 것이다.
runPython
함수에서 console.log
대신 Python에서 받은 데이터를 반환할 수 있다. 그런 다음 Express 라우트를 수정하여 이 데이터를 React.js 앱으로 반환할 수 있다.child_process
의 stderr
이벤트를 활용하여 오류를 처리할 수 있다. runPython
함수 내부에 stderr
에 대한 이벤트 리스너를 추가하여 오류를 로그로 기록하거나 프론트엔드로 전송하여 처리할 수 있다.[Reactjs] useImperativeHandle를 사용하여 자식 컴포넌트 함수를 호출하는 방법 |
---|
React.js에서 Python 스크립트를 실행하는 방법 |
Jotai는 React 상태 관리를 다음 단계로 발전시킬 것이다 |
CloneCoding
한 줄의 코드에서 시작되는 혁신!