빠르고 간편한 개발을 위해 Flask와 Frontend 프레임워크를 함께 사용하는 것은 매우 일반적입니다. Flask는 강력한 백엔드 프레임워크이며, Frontend 프레임워크는 사용자 인터페이스를 만들기 위한 훌륭한 도구입니다. 이 글에서는 Flask와 Frontend 프레임워크를 연동하는 간단한 예제를 살펴보겠습니다.
Flask 백엔드 설정
우선, Flask를 사용하기 위해 프로젝트를 설정해야 합니다. Flask를 설치하고 가상 환경을 만든 후, 다음과 같은 기본적인 Flask 앱을 작성할 수 있습니다.
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, world!'
if __name__ == '__main__':
app.run()
이 코드는 최소한의 Flask 앱을 생성하는 예제입니다. ‘/’ 경로에 요청이 들어오면 ‘Hello, world!’라는 메시지를 반환합니다.
Frontend 프레임워크 설정
이제 Flask와 연동할 Frontend 프레임워크를 설정해보겠습니다. 아래 예제에서는 React를 사용하여 프론트엔드를 작성하였습니다.
- React 프로젝트 설정하기 위해 터미널에서 다음 명령을 실행합니다.
npx create-react-app frontend
- 생성된
frontend
폴더로 이동한 후,src/App.js
파일을 열고 다음과 같이 코드를 수정합니다. ```javascript import React, { useState, useEffect } from ‘react’; import axios from ‘axios’;
const App = () => { const [message, setMessage] = useState(‘’);
useEffect(() => { axios.get(‘http://localhost:5000/’) .then(response => { setMessage(response.data); }); }, []);
return ( <div> <h1>{message}</h1> </div> ); }
export default App;
위 코드는 `App` 컴포넌트를 정의하고, Flask 백엔드로부터 받은 메시지를 화면에 표시합니다. 해당 컴포넌트에서는 `useEffect` 훅을 사용하여 컴포넌트가 마운트될 때 한 번만 Flask 서버로 요청을 보내고, `useState` 훅을 사용하여 요청에 대한 응답을 상태로 관리합니다.
## Flask와 Frontend 프레임워크 연동
이제 Flask 백엔드와 React 프론트엔드를 연동시킬 차례입니다. Flask 앱의 `index` 뷰 함수를 수정하여 React 앱의 루트 페이지를 렌더링하도록 변경합니다.
```python
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run()
그리고 Flask 앱과 React 앱을 함께 실행하려면, 다음 명령어를 각각의 터미널에서 실행합니다.
- Flask 앱 실행:
python main.py
- React 앱 실행:
cd frontend npm start
이제 http://localhost:3000/
로 이동하면 Flask 백엔드에서 반환하는 메시지가 표시되는 것을 확인할 수 있습니다.
결론
Flask와 Frontend 프레임워크를 함께 사용하는 것은 강력한 백엔드와 사용자 인터페이스를 구축하는 데 큰 도움이 됩니다. 이 글에서는 Flask와 React의 간단한 연동 예제를 살펴보았습니다. 이를 통해 프로젝트를 더욱 효율적으로 개발할 수 있을 것입니다. Flask와 다른 Frontend 프레임워크도 함께 사용해보세요!