안녕하세요! 블로그 자동 포스팅 봇 만들기, 네 번째 시간입니다.
지난 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 모델, 주제 선택 등)을 추가하여 훨씬 더 유용한 프로그램으로
발전시키는 과정을 보여드리겠습니다.
'코딩 > 블로그 자동화' 카테고리의 다른 글
[자동화 프로젝트 #6] DALL-E 3 연동: AI가 대표 이미지까지! (2) | 2025.07.23 |
---|---|
[자동화 프로젝트 #5] ChatGPT, Claude 등 다양한 AI 모델 연동하기 (0) | 2025.07.23 |
[자동화 프로젝트 #3] Selenium으로 티스토리 완전 정복 (1) | 2025.07.23 |
[자동화 프로젝트 #2] Python과 Gemini AI 연동하기 (4) | 2025.07.22 |
[자동화 프로젝트 #1] 나만의 블로그 자동 포스팅 봇 만들기- 아이디어구상부터 기술 스택 선정까지 (1) | 2025.07.22 |
※ 위 배너는 쿠팡 파트너스 활동의 일환으로 이에 따른 일정액의 수수료를 제공받습니다