단 10분 만에 끝내는 Flask 기반의 파이썬 웹 프로그래밍 매우 쉬운 방법
목차
- 파이썬 웹 개발의 시작, Flask란 무엇인가?
- 웹 개발 환경 구축하기: Python과 Flask 설치
- 5줄의 코드로 첫 번째 웹 서버 실행하기
- HTML 템플릿을 활용한 동적 페이지 만들기
- 사용자 데이터를 처리하는 GET과 POST 방식 이해
- 데이터베이스 연결로 게시판 기초 다지기
- 웹 서비스 배포를 위한 준비 사항
파이썬 웹 개발의 시작, Flask란 무엇인가?
Flask는 파이썬 언어를 기반으로 하는 마이크로 웹 프레임워크입니다. ‘마이크로’라는 단어가 붙은 이유는 핵심 기능만 가볍게 포함하고 있어 초보자가 배우기에 매우 직관적이기 때문입니다.
- 가벼운 구조: 복잡한 설정 없이도 즉시 웹 서버를 가동할 수 있습니다.
- 유연성: 개발자가 원하는 라이브러리를 자유롭게 선택하여 기능을 확장할 수 있습니다.
- 파이썬 친화적: 파이썬 문법을 그대로 사용하므로 코드 가독성이 뛰어납니다.
- 커뮤니티 지원: 전 세계적으로 널리 사용되어 문제 발생 시 해결 방법을 찾기 쉽습니다.
웹 개발 환경 구축하기: Python과 Flask 설치
웹 프로그래밍을 시작하기 위해 가장 먼저 필요한 도구들을 준비해야 합니다.
- 파이썬 설치: 공식 홈페이지에서 Python 3.x 버전을 내려받아 설치합니다.
- 가상환경(venv) 생성: 프로젝트마다 독립적인 환경을 구축하여 라이브러리 충돌을 방지합니다.
- 명령어:
python -m venv venv
- Flask 라이브러리 설치: 파이썬의 패키지 관리자인 pip를 이용합니다.
- 명령어:
pip install flask
- 코드 에디터 준비: VS Code나 PyCharm 같은 도구를 활용하면 오타 수정과 디버깅이 훨씬 쉬워집니다.
5줄의 코드로 첫 번째 웹 서버 실행하기
가장 기본적인 형태의 웹 서버를 코딩하고 로컬 환경에서 확인하는 과정입니다.
- 파일 생성:
app.py라는 이름의 파일을 만듭니다. - 기본 코드 작성:
from flask import Flask로 모듈을 불러옵니다.app = Flask(__name__)객체를 생성합니다.@app.route('/')데코레이터로 접속 경로를 지정합니다.- 화면에 보여줄 내용을 반환하는 함수를 정의합니다.
app.run()명령으로 서버를 구동합니다.
- 결과 확인: 브라우저 주소창에
127.0.0.1:5000을 입력하여 “Hello World” 메시지를 확인합니다.
HTML 템플릿을 활용한 동적 페이지 만들기
단순한 텍스트 출력을 넘어 실제 웹사이트처럼 디자인을 입히는 단계입니다.
- render_template 함수: Flask에서 HTML 파일을 불러오기 위해 사용합니다.
- templates 폴더: 반드시 프로젝트 루트에
templates라는 이름의 폴더를 만들고 HTML 파일을 저장해야 합니다. - Jinja2 템플릿 엔진:
{{ 변수명 }}: 파이썬 코드에서 보낸 데이터를 HTML에 표시합니다.{% if %},{% for %}: HTML 내에서 조건문과 반복문을 사용하여 데이터를 처리합니다.
- 정적 파일 관리: CSS, 이미지, JavaScript 파일은
static폴더에서 관리합니다.
사용자 데이터를 처리하는 GET과 POST 방식 이해
웹 서비스는 사용자와의 상호작용이 필수입니다. 데이터를 주고받는 두 가지 방식을 익혀야 합니다.
- GET 방식:
- URL 뒤에 데이터를 붙여서 전송합니다.
- 주로 정보를 검색하거나 페이지를 조회할 때 사용합니다.
- 데이터가 주소창에 노출되므로 보안이 필요한 데이터에는 적합하지 않습니다.
- POST 방식:
- HTTP 바디에 데이터를 담아 보냅니다.
- 회원가입, 게시글 작성 등 대용량 데이터나 보안이 필요한 정보를 보낼 때 사용합니다.
- Flask에서는
request.form객체를 통해 데이터를 가져옵니다.
데이터베이스 연결로 게시판 기초 다지기
웹 서비스의 핵심은 영구적으로 데이터를 저장하는 것입니다.
- SQLite 활용: 파이썬에 기본 내장되어 별도의 설치가 필요 없는 가벼운 데이터베이스입니다.
- Flask-SQLAlchemy: SQL 문법을 직접 쓰지 않고 파이썬 객체로 데이터베이스를 다루게 해주는 도구(ORM)입니다.
- 모델(Model) 정의: 데이터베이스의 테이블 구조를 클래스 형태로 선언합니다.
- CRUD 구현:
- Create: 사용자 입력 정보를 DB에 저장합니다.
- Read: DB에서 정보를 읽어와 화면에 뿌려줍니다.
- Update/Delete: 저장된 정보를 수정하거나 삭제합니다.
웹 서비스 배포를 위한 준비 사항
내 컴퓨터에서만 접속되는 서버가 아니라 누구나 접속할 수 있도록 온라인에 올리는 과정입니다.
- WSGI 서버: Flask 자체 내장 서버는 개발용이므로, 배포 시에는 Gunicorn이나 uWSGI 같은 서버를 사용해야 합니다.
- 의존성 파일 생성: 사용된 라이브러리 목록을
requirements.txt에 기록합니다. - 명령어:
pip freeze > requirements.txt
- 클라우드 플랫폼 선택: PythonAnywhere, Heroku, AWS 등 파이썬 호스팅을 지원하는 서비스를 선택합니다.
- 환경 변수 관리: 데이터베이스 비밀번호나 API 키 같은 민감한 정보는
.env파일에 별도로 보관하여 보안을 유지합니다.
Flask 웹 프로그래밍의 확장 가능성
기초를 익혔다면 더 복잡한 기능을 추가하여 전문적인 웹 서비스를 구축할 수 있습니다.
- 사용자 인증: Flask-Login을 활용하여 로그인 및 권한 관리 시스템을 구축합니다.
- API 서버 구축: Flask-RESTful을 사용하여 모바일 앱이나 프론트엔드 프레임워크(React, Vue)와 통신하는 백엔드 서버를 만듭니다.
- 파일 업로드: 사용자가 이미지를 업로드하고 서버에 저장하는 기능을 구현합니다.
- 보안 강화: CSRF 보호, 비밀번호 해싱 등을 적용하여 안전한 웹 사이트를 만듭니다.
Flask 기반의 파이썬 웹 프로그래밍 매우 쉬운 방법 요약
- 파이썬 기본 문법만 알면 누구나 시작할 수 있는 낮은 진입장벽을 가지고 있습니다.
- 작은 단위부터 시작하여 단계적으로 기능을 확장해 나가는 ‘점진적 개발’에 최적화되어 있습니다.
- 다양한 확장 라이브러리를 통해 상용 서비스 수준의 완성도를 확보할 수 있습니다.
- 간결한 코드와 명확한 구조 덕분에 유지보수가 매우 용이합니다.
효율적인 학습을 위한 실습 팁
- 직접 코드를 타이핑하며 에러 메시지를 마주하는 것이 가장 빠른 학습법입니다.
- 간단한 방명록 만들기부터 시작하여 점차 회원 시스템, 검색 기능으로 확장해 보세요.
- 공식 문서를 곁에 두고 새로운 함수나 기능이 나올 때마다 원리를 파악하는 습관을 들입니다.
- 작성한 코드는 깃허브(GitHub)와 같은 저장소에 관리하며 버전 관리의 기초를 익힙니다.