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

2024년 Flask 웹 개발, 쉽고 빠르게 배우기

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

Flask는 Python 기반의 경량 웹 프레임워크로, 빠르고 간편하게 웹 애플리케이션을 개발할 수 있습니다. 2024년 현재, Flask는 스타트업부터 대기업까지 폭넓게 사용되며, 백엔드 개발을 배우려는 초보자들에게도 인기 있는 선택지입니다. 이 글에서는 Flask의 기본 개념부터 실전 프로젝트까지 단계별로 알아보고, 쉽고 빠르게 웹 애플리케이션을 개발하는 방법을 소개합니다.

Flask란 무엇인가?

Flask는 마이크로 프레임워크(Micro Framework)로 분류되며, 기본적으로 최소한의 기능만 제공하는 웹 프레임워크입니다. Django와 같은 풀스택 프레임워크와 달리, 필요한 기능을 선택적으로 추가할 수 있어 유연한 개발이 가능합니다.

Flask의 주요 특징

  • 가벼운 구조: 기본적으로 최소한의 기능만 제공하여 가볍고 빠른 웹 애플리케이션 개발 가능
  • 확장성: 다양한 플러그인 및 확장 모듈을 활용하여 원하는 기능 추가 가능
  • 쉬운 학습 곡선: Python을 알고 있다면 빠르게 익힐 수 있으며, 코드 작성이 간단함
  • Jinja2 템플릿 엔진 지원: HTML, CSS, JavaScript와 쉽게 연동 가능
  • RESTful API 개발 용이: JSON 응답 처리와 API 서버 구축에 적합

Flask 기본 사용법

Flask를 사용하기 위해서는 Python 환경이 필요합니다. 아래 단계에 따라 Flask 개발을 시작해보겠습니다.

Flask 설치하기

# 가상 환경 생성 및 활성화 (Windows)
python -m venv venv
venv\Scripts\activate

# 가상 환경 생성 및 활성화 (Mac/Linux)
python3 -m venv venv
source venv/bin/activate

# Flask 설치
pip install flask

Flask 기본 코드 작성

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Flask!"

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

Flask 실행하기

python app.py

위 코드를 실행한 후 브라우저에서 http://127.0.0.1:5000에 접속하면 "Hello, Flask!"라는 문장이 출력됩니다.

Flask 실전 프로젝트 만들기

이제 간단한 CRUD(Create, Read, Update, Delete) 기능을 가진 웹 애플리케이션을 만들어보겠습니다. 이를 위해 Jinja2 템플릿 엔진과 SQLite 데이터베이스를 활용합니다.

템플릿 엔진 활용

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html', title="Flask 웹 페이지")

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

템플릿 파일 생성

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>{{ title }}</title>
</head>
<body>
    <h1>Flask 웹 개발 시작하기</h1>
    <p>Flask를 활용하여 동적인 웹 페이지를 만들어 보세요!</p>
</body>
</html>

SQLite 데이터베이스 연동

Flask에서는 sqlite3 모듈을 활용하여 간단한 데이터베이스를 구현할 수 있습니다.

데이터베이스 생성

import sqlite3

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

cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE 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 home():
    db = get_db()
    cursor = db.cursor()
    cursor.execute("SELECT * FROM users")
    users = cursor.fetchall()
    return render_template('index.html', users=users)

@app.route('/add', methods=['POST'])
def add_user():
    name = request.form['name']
    email = request.form['email']
    
    db = get_db()
    cursor = db.cursor()
    cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", (name, email))
    db.commit()
    
    return "사용자가 추가되었습니다!"

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

결론

Flask는 가볍고 유연한 웹 프레임워크로, 초보자부터 숙련된 개발자까지 다양한 프로젝트에 활용할 수 있습니다. 본 글에서는 Flask의 기본 개념부터 실전 프로젝트까지 단계별로 설명했습니다.

Flask의 강점은 간결한 코드, 빠른 개발 속도, 쉬운 유지보수입니다. Django처럼 강력한 기능을 제공하지는 않지만, 필요에 따라 확장할 수 있어 유용합니다.

앞으로 Flask를 활용하여 REST API 개발, 사용자 인증 시스템, 대규모 웹 애플리케이션까지 도전해 보세요!

반응형