코딩 초보자도 하루 만에 끝내는 Flask 기반의 파이썬 웹 프로그래밍 간단하게

코딩 초보자도 하루 만에 끝내는 Flask 기반의 파이썬 웹 프로그래밍 간단하게 해결하는 방법

웹 개발이라는 단어를 들으면 방대한 프레임워크와 복잡한 설정 때문에 시작도 하기 전에 망설여지는 경우가 많습니다. 하지만 파이썬의 Flask(플라스크)를 활용하면 최소한의 코드로 나만의 웹 서비스를 구축할 수 있습니다. 본 포스팅에서는 복잡한 이론은 생략하고, 실전 위주로 가장 쉽고 빠르게 웹 애플리케이션을 만드는 핵심 가이드를 전달해 드립니다.

목차

  1. Flask란 무엇인가: 마이크로 프레임워크의 매력
  2. 개발 환경 구축: 5분 안에 준비 끝내기
  3. 첫 번째 웹 페이지 띄우기: Hello World 실습
  4. 라우팅과 파라미터 활용: 동적 페이지 구성
  5. 템플릿 엔진 Jinja2 사용법: HTML과 파이썬 결합
  6. 데이터 송수신 처리: GET과 POST 방식 이해
  7. 프로젝트 마무리 및 배포를 위한 팁

Flask란 무엇인가: 마이크로 프레임워크의 매력

배너2 당겨주세요!

Flask는 ‘마이크로 프레임워크’라는 별칭을 가지고 있습니다. 이는 기능이 부족하다는 뜻이 아니라, 웹 개발에 필요한 핵심 기능만을 가볍게 담고 있다는 의미입니다.

  • 단순함: 코드 몇 줄만으로도 웹 서버를 구동할 수 있어 학습 곡선이 매우 낮습니다.
  • 유연성: 특정 데이터베이스나 라이브러리를 강제하지 않아 개발자가 원하는 도구를 자유롭게 선택할 수 있습니다.
  • 확장성: 처음에는 작게 시작하지만, 필요한 기능을 확장 모듈을 통해 무궁무진하게 붙여나갈 수 있습니다.

개발 환경 구축: 5분 안에 준비 끝내기

본격적인 코딩에 앞서 파이썬 설치와 가상 환경 설정이 필요합니다. 프로젝트 간의 라이브러리 충돌을 방지하기 위해 가상 환경 사용을 권장합니다.

  1. 파이썬 설치 확인: 터미널 혹은 명령 프롬프트에서 python --version을 입력하여 설치 여부를 확인합니다.
  2. 가상 환경 생성 및 활성화:
  3. python -m venv venv 명령어로 가상 환경 폴더를 생성합니다.
  4. 윈도우: venv\Scripts\activate 입력
  5. 맥/리눅스: source venv/bin/activate 입력
  1. Flask 설치:
  2. 가상 환경이 활성화된 상태에서 pip install Flask를 입력하여 설치합니다.

첫 번째 웹 페이지 띄우기: Hello World 실습

가장 기초적인 서버 구동 코드를 작성해 봅니다. app.py라는 파일을 만들고 아래의 로직을 구성합니다.

  • 코드 구조:
  • from flask import Flask: 클래스 임포트
  • app = Flask(__name__): 애플리케이션 객체 생성
  • @app.route('/'): 사용자가 접속할 URL 경로 지정
  • def hello(): return "Hello World": 실행될 함수 정의
  • 서버 실행:
  • 터미널에서 flask run 또는 python app.py를 입력합니다.
  • 브라우저에서 http://127.0.0.1:5000에 접속하여 결과를 확인합니다.

라우팅과 파라미터 활용: 동적 페이지 구성

라우팅은 사용자가 입력한 URL에 따라 서로 다른 화면을 보여주는 기술입니다.

  • 기본 라우팅: @app.route('/about')과 같이 경로를 명시하여 메뉴별 페이지를 생성합니다.
  • 변수 사용: URL 경로에 변수를 포함할 수 있습니다.
  • @app.route('/user/<username>')
  • 사용자가 /user/kim으로 접속하면 username 변수에 ‘kim’이 전달됩니다.
  • 데이터 타입 지정: <int:post_id>와 같이 타입을 지정하여 숫자형 데이터만 받도록 제한할 수 있습니다.

템플릿 엔진 Jinja2 사용법: HTML과 파이썬 결합

단순한 텍스트가 아닌, 디자인이 입혀진 웹 페이지를 보여주려면 HTML 파일을 렌더링해야 합니다. Flask는 이를 위해 Jinja2 엔진을 사용합니다.

  • 디렉토리 구조: 프로젝트 폴더 내에 반드시 templates 폴더를 생성하고 HTML 파일을 넣어야 합니다.
  • render_template 함수:
  • from flask import render_template 모듈을 불러옵니다.
  • return render_template('index.html', title='홈페이지')와 같이 변수를 전달합니다.
  • Jinja2 문법:
  • {{ 변수명 }}: 파이썬에서 넘겨받은 값을 출력합니다.
  • {% if ... %} / {% for ... %}: HTML 내에서 조건문과 반복문을 실행합니다.

데이터 송수신 처리: GET과 POST 방식 이해

웹 서비스의 핵심은 사용자와의 상호작용입니다. 폼(Form) 데이터를 처리하는 방법을 익혀야 합니다.

  • GET 방식: 주로 데이터를 조회할 때 사용하며, URL 뒤에 데이터가 노출됩니다.
  • POST 방식: 데이터를 서버로 보낼 때 사용하며, 보안이 필요한 회원가입이나 게시글 작성에 쓰입니다.
  • request 객체 활용:
  • from flask import request를 통해 요청 데이터를 추출합니다.
  • request.form.get('input_name')으로 사용자가 입력한 값을 가져옵니다.
  • 리다이렉트와 URL 생성:
  • redirect() 함수를 사용해 작업 완료 후 특정 페이지로 이동시킵니다.
  • url_for() 함수를 사용해 경로 변화에 유연하게 대응합니다.

프로젝트 마무리 및 배포를 위한 팁

개발이 완료된 프로젝트를 운영 서버로 옮기기 전에 체크해야 할 사항들입니다.

  • Debug 모드 해제: 개발 중에는 debug=True를 사용하지만, 실제 배포 시에는 보안을 위해 반드시 꺼야 합니다.
  • 정적 파일 관리: 이미지, CSS, JS 파일은 반드시 static 폴더에 넣어서 관리해야 Flask가 인식합니다.
  • 의존성 파일 생성: pip freeze > requirements.txt 명령을 통해 사용된 라이브러리 목록을 문서화합니다.
  • WSGI 서버 사용: 실제 서비스 환경에서는 Flask 내장 서버 대신 Gunicorn이나 uWSGI 같은 전문 서버 프로그램을 연동하는 것이 안정적입니다.

이러한 단계들을 차근차근 따라가면 복잡한 설정 없이도 강력한 기능을 갖춘 웹 애플리케이션을 완성할 수 있습니다. Flask 기반의 파이썬 웹 프로그래밍은 단순히 지식을 습득하는 것을 넘어, 여러분의 아이디어를 가장 빠르게 세상에 선보이는 도구가 될 것입니다. 직접 코드를 입력하고 서버를 구동해보며 웹 개발의 즐거움을 경험해 보시기 바랍니다.

댓글 남기기

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.