[자동화 프로젝트 #4] Flask로 내 파이썬 스크립트에 웹 UI 입히기

안녕하세요! 블로그 자동 포스팅 봇 만들기, 네 번째 시간입니다.
지난 3편 (바로가기)까지 우리는 AI로 글을 쓰고 Selenium으로 포스팅하는 핵심 기능을 모두 완성했습니다.
하지만 매번 터미널을 열어 명령어를 치는 건... 솔직히 좀 없어 보이죠?😅

 

이번 시간에는 Flask라는 마법 같은 도구를 사용해서, 우리가 만든 복잡한 파이썬 코드를 클릭 한 번으로 실행할 수 있는 멋진 웹 UI로 변신시키는 과정을 보여드리겠습니다.

1. Flask, 왜 필요한가?

Flask는 Python으로 웹사이트(정확히는 웹 애플리케이션)를 만들 수 있게 해주는 '웹 프레임워크'입니다.
우리가 Flask를 사용하려는 이유는 단 하나입니다.

"복잡한 터미널 명령어 대신, 누구나 알기 쉬운 버튼을 만들고 싶어서!"

 

사용자는 그저 웹 브라우저를 열고, 우리가 만든 페이지에 접속해서 '포스팅 시작' 버튼만 누르면 됩니다.
나머지 복잡한 과정은 서버 뒤편에서 Flask가 알아서 처리해 줄 거예요.

 

2. Flask 환경 설정

Flask를 시작하기 위한 준비물은 딱 하나입니다.

터미널에 아래 명령어를 입력해서 Flask를 설치해주세요.

pip install Flask

 

그리고 우리 프로젝트 폴더를 아래와 같은 구조로 정리해야 합니다. Flask는 templates라는 이름의 폴더 안에서 HTML 파일을 찾아오기로 약속되어 있거든요.

  blog_automation/
  ├── app.py        # Flask 웹 서버 실행 파일 (새로 만들기)
  ├── main.py       # 기존의 AI 및 Selenium 로직 파일
  ├── prompt.md
  ├── .env
  └── templates/      # HTML 파일을 보관할 폴더 (새로 만들기)
      └── index.html  # 우리가 만들 웹 페이지 (새로 만들기)
  

3. 최소 기능의 웹 앱 만들기

이제 가장 간단한 형태의 Flask 웹 앱을 만들어 보겠습니다. app.py와 templates/index.html 두 개의 파일만 있으면 됩니다.

 

templates/index.html (사용자가 보게 될 화면)

1 <!DOCTYPE html>
2 <html lang="ko">
3 <head>
4     <meta charset="UTF-8">
5     <title>블로그 자동 포스팅</title>
6 </head>
7 <body>
8     <h1>📝 티스토리 자동 포스팅</h1>
9     <form action="/run" method="post">
10         <button type="submit">🚀 포스팅 시작하기</button>
11   </form>
12 </body>
13 </html>

 

 

app.py (웹 서버 로직)

1 from flask import Flask, render_template, redirect
2 import main # 우리가 만든 main.py를 불러옵니다.
3 import threading
4
5 app = Flask(__name__)
6
7 # 1. 사용자가 웹사이트 주소로 접속했을 때
8 @app.route('/')
9 def index():
10 # index.html 파일을 화면에 보여줍니다.
11 return render_template('index.html')
12
13 # 2. 사용자가 '포스팅 시작하기' 버튼을 눌렀을 때
14 @app.route('/run', method=['POST'])
15 def run_automation():
16 # Selenium 작업이 웹페이지를 멈추게 하지 않도록
17 # 별도의 스레드(백그라운드)에서 실행합니다.
18 thread = threading.Thread(target=main.start_blog_automation)
19 thread.start()
20
21 # 작업 시작을 알리고, 다시 메인 페이지로 돌아갑니다.
22 return redirect('/')
23
24 if name == 'main':
25 # 웹 서버를 실행합니다.
26 app.run(host='0.0.0.0', port=5001)

 

4. 실행하고 확인하기

이제 터미널에서 python app.py 명령어를 실행하고, 웹 브라우저에서 http://127.0.0.1:5001 주소로 접속해보세요.

우리가 만든 멋진 "포스팅 시작하기" 버튼이 나타날 겁니다!

이 버튼을 누르면, 터미널에서는 이전에 만들었던 자동화 코드가 실행되는 것을 볼 수 있습니다.

[핵심 기술 요약]

개념 설명
Flask Python으로 웹 서버를 만드는 도구
Routing (@app.route) 사용자가 특정 주소로 접속했을 때 어떤 함수를 실행할지 연결해주는 역할
Templating templates 폴더의 HTML 파일을 사용자에게 보여주는 기능
Threading 시간이 오래 걸리는 Selenium 작업을 웹사이트와 분리하여 백그라운드에서 실행하는 기술

 

다음 이야기

이제 우리는 터미널을 벗어나 그럴듯한 웹 애플리케이션을 갖게 되었습니다. 하지만 아직 부족한 점이 많죠.
AI 모델을 선택하거나, 포스팅 주제를 직접 정하고 싶을 수도 있으니까요.

 

다음 포스팅에서는 이 웹 UI에 다양한 옵션(AI 모델, 주제 선택 등)을 추가하여 훨씬 더 유용한 프로그램으로
발전시키는 과정을 보여드리겠습니다.

 

 

반응형
쿠팡 광고 배너

※ 위 배너는 쿠팡 파트너스 활동의 일환으로 이에 따른 일정액의 수수료를 제공받습니다