AI

AI 의 도움으로 Python 웹페이지 만들기

카카루 2026. 5. 6. 19:12

php 만 사용하고 python 은 해 보지 않아서 이번 기회에 python 을 좀 배워 보려고 AI에게 웹페이지를 부탁해 보았습니다.

지난 번 n8n으로 수집하여 mysql db에 저장한 뉴스 기사를 웹에 띄워 보기로 합니다.

 

python 을 사용하면 보통 python 이 자체 서버를 띄우는 방식이라서 저는 이것이 싫어서 보통 서버에 있는 아파치 서버를 이용해 보고자 AI에게 물어 보았더니 3개 방안이 있다고 합니다.

 

방법 1️⃣ CGI 방식 (가장 간단, PHP와 유사)
Apache 설정에서 CGI를 활성화하고 Python 스크립트를 직접 실행하는 방식입니다.

 

이 방법은 아파치에 CGI 모듈을 활성화하고, 스크립트가 있는 폴더를 CGI가 실행되게 하는 것이 필요합니다.

http.conf 파일에 다음과 같이 추가합니다.

LoadModule cgi_module modules/mod_cgi.so

<Directory "d:/www/news">
    Options +ExecCGI
    AddHandler cgi-script .py
</Directory>

 

다음으로 파이썬 스크립트가 cgi 로 실행되게 합니다.

news.py 앞에 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print("Content-Type: text/html; charset=utf-8\n")
print("<h1>뉴스 기사</h1>")

 

추가합니다.

이 방식의 단점으로는 매 요청마다 Python 인터프리터가 실행되어 느리다는 것입니다.

그렇지만 간단하게 테스트하기에 간편하기 때문에 이방식으로 선택하였습니다.

 

방법 2️⃣ PHP에서 Python 호출

php 파일 안에서 Python 스크립트를 실행하는 방법입니다. 이것은 php 웹페이지를 유지하면서 python 기능을 추가할 수 있는 장점이 있습니다.

<?php
// PHP에서 Python 스크립트 실행
$result = shell_exec('python news_crawler.py 2>&1');
echo json_decode($result);

 

방법 3️⃣ Flask + mod_wsgi (권장, 실무용)

Flask 로 앱을 만들고 Apache의 mod_wsgi 로 연동하는 방법입니다.

 

이 방법은 1번 방법처럼 apache 설정을 바꾸어 주어야 합니다.

Apache 설정:
WSGIScriptAlias /news d:/www/news/app.wsgi

app.py 

# app.py
from flask import Flask, jsonify
import mysql.connector

app = Flask(__name__)

@app.route('/api/news')
def get_news():
    # MySQL 연결
    return jsonify({'articles': [...]})

 

3번의 방법이 가장 정석적인 방법이지만 간편한 방법인 1번으로 하였습니다.

 

#!D:/www/news/.venv/Scripts/pythonw.exe
# -*- coding: utf-8 -*-

import sys
import io
import mysql.connector

# 한글 출력을 위한 설정
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

# CGI 헤더 출력 (HTML)
print("Content-Type: text/html; charset=utf-8\n")

# HTML 시작
print("""
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>뉴스 기사</title>

 

처음에 #!D:/www/news/.venv/Scripts/pythonw.exe

이부분을 python.exe 로 하였더니 웹페이지를 열 때마다  cmd 창이 뜨는 현상이 발생하였습니다. 

 

python.exe가 콘솔 응용프로그램이라서 Apache가 Python CGI를 실행할 때 콘솔 창이 함께 뜨는 문제였습니다. 그래서 pythonw.exe 는 윈도우 프로그램이기 때문에 이것으로 수정하면 콘솔 창(cmd 창)이 뜨지 않게 됩니다.

로컬 서버에 설치한 뉴스 기사 웹페이지