본문 바로가기
카테고리 없음

비전공자를 위한 Flask 웹 개발, 쉽게 시작하는 방법

by 가치정보인 2025. 3. 25.
반응형

프로그래밍을 전공하지 않은 사람들도 웹 개발을 배우고 싶다면 Python 기반의 Flask 프레임워크가 좋은 선택이 될 수 있습니다. Flask는 간결하고 직관적인 문법을 제공하여 초보자도 쉽게 웹 애플리케이션을 만들 수 있습니다. 이 글에서는 비전공자를 위한 Flask 웹 개발의 기초부터 실전 프로젝트까지 쉽게 따라 할 수 있도록 단계별로 설명합니다.

1. Flask란 무엇인가?

Flask는 Python으로 개발된 마이크로 웹 프레임워크로, 웹 애플리케이션을 빠르고 간편하게 만들 수 있습니다. Django와 같은 풀스택 프레임워크보다 가볍고 자유도가 높아, 필요한 기능만 추가하여 사용할 수 있습니다.

✔ Flask의 주요 특징

  • 간결한 코드: 짧고 직관적인 코드로 웹 서비스를 개발할 수 있습니다.
  • 유연성: 필요한 라이브러리만 선택하여 사용할 수 있어, 자유롭게 확장할 수 있습니다.
  • 빠른 학습: 문법이 쉬워 비전공자도 빠르게 배울 수 있습니다.
  • REST API 개발 용이: 데이터를 주고받는 API 서버 구축이 간단합니다.

2. Flask 설치 및 기본 프로젝트 시작

✔ Flask 설치하기

Python이 설치되어 있다면 아래 명령어를 입력하여 Flask를 설치할 수 있습니다.

pip install flask

✔ 첫 번째 Flask 웹 애플리케이션

아래 코드를 작성한 후 실행하면 간단한 웹 서버가 동작합니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "안녕하세요! Flask 웹 서버입니다."

if __name__ == '__main__':
    app.run(debug=True)

이제 터미널에서 python app.py를 실행한 후, 브라우저에서 http://127.0.0.1:5000에 접속하면 "안녕하세요! Flask 웹 서버입니다." 라는 문구가 출력됩니다.

3. Flask 웹 페이지 만들기 (HTML & 템플릿 엔진)

Flask는 Jinja2 템플릿 엔진을 사용하여 HTML 페이지를 동적으로 생성할 수 있습니다.

✔ Flask에서 HTML 파일 사용하기

먼저, 프로젝트 폴더 안에 templates 폴더를 만들고, index.html 파일을 생성합니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Flask 웹 페이지</title>
</head>
<body>
    <h1>안녕하세요! Flask로 만든 웹 페이지입니다.</h1>
</body>
</html>

✔ Flask에서 HTML 페이지 표시

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

이제 브라우저에서 http://127.0.0.1:5000에 접속하면 HTML 페이지가 출력됩니다.

4. 사용자 입력 받기 (Flask에서 폼 처리)

Flask는 사용자의 입력을 받아 처리하는 기능도 제공합니다. 간단한 로그인 폼을 만들어 보겠습니다.

✔ HTML 폼 만들기

<form method="POST">
    <label>사용자 이름:</label>
    <input type="text" name="username">
    <button type="submit">로그인</button>
</form>

✔ Flask에서 입력값 처리

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        return f"안녕하세요, {username}님!"
    return render_template('login.html')

if __name__ == '__main__':
    app.run(debug=True)

이제 /login 페이지에서 사용자의 입력을 받을 수 있습니다.

5. Flask로 간단한 게시판 만들기

마지막으로, Flask와 SQLite를 사용하여 간단한 게시판 기능을 추가해 보겠습니다.

✔ 데이터베이스 설정

import sqlite3

conn = sqlite3.connect('database.db')
cursor = conn.cursor()

cursor.execute('''
CREATE TABLE IF NOT EXISTS posts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    content TEXT NOT NULL
)
''')

conn.commit()
conn.close()

✔ 글 작성 및 조회 기능 추가

from flask import Flask, render_template, request, g
import sqlite3

app = Flask(__name__)

DATABASE = 'database.db'

def get_db():
    db = getattr(g, '_database', None)
    if db is None:
        db = g._database = sqlite3.connect(DATABASE)
    return db

@app.route('/')
def index():
    db = get_db()
    cursor = db.cursor()
    cursor.execute("SELECT * FROM posts")
    posts = cursor.fetchall()
    return render_template('index.html', posts=posts)

@app.route('/add', methods=['POST'])
def add_post():
    title = request.form['title']
    content = request.form['content']
    
    db = get_db()
    cursor = db.cursor()
    cursor.execute("INSERT INTO posts (title, content) VALUES (?, ?)", (title, content))
    db.commit()
    
    return "게시글이 추가되었습니다!"

if __name__ == '__main__':
    app.run(debug=True)

이제 브라우저에서 데이터를 입력하고 저장할 수 있는 간단한 웹 애플리케이션이 완성되었습니다.

6. 결론 (비전공자를 위한 Flask 웹 개발의 가능성)

Flask는 배우기 쉽고 가벼운 프레임워크로, 비전공자도 쉽게 웹 개발을 시작할 수 있습니다. 특히 간단한 웹 애플리케이션을 빠르게 개발할 수 있으며, REST API 구축, 데이터베이스 연동, 사용자 입력 처리 등의 기능도 손쉽게 구현할 수 있습니다.

Python을 조금만 익히면 Flask로 실전 프로젝트를 만들 수 있으며, 이를 통해 웹 개발의 기본 원리를 배우고 실무에서도 활용할 수 있습니다. Flask를 통해 여러분만의 웹 애플리케이션을 만들어 보세요!

반응형