Ch.1 Python 라이브러리 15선

Flask — 나만의 웹사이트 만들기

Flask가 무엇인지 설명할 수 있다5줄로 웹서버를 만들 수 있다JSON API 엔드포인트를 추가할 수 있다

웹사이트를 만들려면 서버가 필요합니다

친구에게 보여줄 간단한 웹페이지를 만들고 싶은데, 서버 세팅이 너무 복잡해 보입니다.

Python으로 진짜 5줄만에 웹서버를 띄울 수 있을까?

Flask를 쓰면 됩니다. Python 파일 하나로 웹서버가 돌아갑니다. 진짜 5줄이면 충분합니다.


article

핵심 내용

Flask는 Python으로 웹서버를 만드는 초경량 프레임워크입니다. 복잡한 설정 없이, Python 파일 하나로 웹사이트를 띄울 수 있습니다.

한 줄 요약: Python으로 웹서버를 만드는 가장 쉬운 방법 실생활 비유: 레스토랑을 차리려면 건물이 필요하듯, 웹사이트를 만들려면 서버가 필요합니다. Flask는 '즉석 팝업 레스토랑'처럼 빠르게 세울 수 있는 서버입니다.

간단한 웹 API를 만들거나, 프로토타입 웹사이트를 빠르게 띄울 때 씁니다.

수동으로 하면: Apache/Nginx 설치 → 설정 파일 작성 → PHP/Java 세팅 → 배포 설정 → 일주일

Flask 쓰면: pip install flask → 5줄 코드 → python app.py → 5분

설치하고, 5줄로 첫 웹서버를 띄워 봅시다.

pip install flask
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"

app.run(debug=True)

실행하면 터미널에 'Running on http://127.0.0.1:5000'이 뜹니다. 브라우저에서 이 주소로 들어가면 Hello, World!가 보입니다.

AI에게 웹서버를 만들어 달라고 할 때, 엔드포인트 + 데이터 형식 + 기능을 구체적으로 말하세요.

좋은 프롬프트 예시: "Flask로 간단한 메모장 웹앱을 만들어줘. 메모 입력 폼, 저장 목록, 삭제 버튼. SQLite로 데이터 저장"

프롬프트 변형: "DELETE /memo/<id>로 삭제 기능도 추가하고, 메모에 작성 시간도 자동으로 넣어줘"

from flask import Flask, jsonify, request

app = Flask(__name__)
memos = []

@app.route("/memo", methods=["POST"])
def add_memo():
    memo = request.json
    memos.append(memo)
    return jsonify({"status": "ok"})

@app.route("/memos")
def get_memos():
    return jsonify(memos)

미니 프로젝트: 간단한 TODO 웹앱 할 일 추가, 조회, 삭제까지 완성합니다.

from flask import Flask, jsonify, request
from datetime import datetime

app = Flask(__name__)
todos = []

@app.route("/todo", methods=["POST"])
def add():
    data = request.json
    data["id"] = len(todos) + 1
    data["created"] = datetime.now().strftime("%Y-%m-%d %H:%M")
    data["done"] = False
    todos.append(data)
    return jsonify({"msg": "추가됨", "todo": data})

@app.route("/todos")
def list_all():
    return jsonify(todos)

@app.route("/todo/<int:tid>", methods=["DELETE"])
def delete(tid):
    global todos
    todos = [t for t in todos if t["id"] != tid]
    return jsonify({"msg": f"{tid}번 삭제됨"})

app.run(debug=True)

실행 방법: todo_app.py로 저장 → python todo_app.py 실행 → 브라우저에서 http://127.0.0.1:5000/todos 로 접속하면 할 일 목록이 보입니다.

Flask에서 URL 경로를 함수에 연결하는 데코레이터는?

Flask의 jsonify()는 Python 딕셔너리를 JSON 형식으로 변환하여 응답한다.

key

핵심 용어

개인 프로젝트 API

할 일 목록, 메모장 등 간단한 앱의 백엔드

데이터 대시보드

분석 결과를 웹 페이지로 공유

챗봇 서버

AI 모델과 통신하는 API 서버

check_circle

핵심 정리

  • 1Flask는 Python 초경량 웹 프레임워크 — 5줄로 서버가 돌아간다
  • 2@app.route()로 URL 경로를 함수에 연결한다
  • 3jsonify()로 JSON API를 쉽게 만들 수 있다 — 프론트엔드와 연동 가능

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작