본문 바로가기
👩🏻‍💻 개발 공부

[Flask 입문 1탄] 파이썬으로 웹서버 만들기 – 라우팅 기초까지 쉽게 배우기!

by minheestory 2025. 4. 14.

Flask란 무엇인가요?

Flask(플라스크)는 Python 언어로 웹 애플리케이션을 만들 수 있게 도와주는 아주 간단하고 가벼운 웹 프레임워크입니다.

비유를 하자면, Flask는 라면 스프 없이 면만 있는 라면 같은 웹 프레임워크 입니다.

 

  • 필요 최소한의 기능만 제공해서 원하는 재료(기능)를 추가해서 만드는 스타일
  • 반대로 Django는 국물까지 다 들어있는 라면세트 같은 프레임워크

 

Flask로 무엇을 하는가 ?

  • HTML 페이지를 보여주고,
  • 데이터를 전송하고 받아들이며,
  • 사용자 요청에 응답하고,
  • 나아가 데이터베이스, 사용자 인증, API 개발 등 다양한 기능까지 확장할 수 있습니다.

Django처럼 모든 기능이 다 갖춰진 프레임워크도 있지만, Flask는 내가 원하는 기능만 골라서 빠르게 개발할 수 있다는 점에서 인기 많아요. 특히 초보자가 부담 없이 웹 서버를 경험해볼 수 있는 최적의 도구인 것 같습니다.

 

Flask는 언제 사용하나요?

  • 간단한 웹사이트를 빠르게 만들고 싶을 때
  • RESTful API 서버를 만들고 싶을 때
  • 프로토타입을 빠르게 만들어보고 싶을 때
  • 백엔드 기초를 배우고 싶을 때

 

Flask 설치 방법

Flask는 Python으로 만든 외부 패키지이므로 pip로 설치합니다.

 pip install flask​

 

설치가 완료되면 Flask를 프로젝트에서 사용할 준비가 끝납니다.

 

Flask 코드 예시와 라우팅 설명

 

아래는 가장 기본적인 Flask 서버 예제입니다.

from flask import Flask
import random

app = Flask(__name__)  # Flask 앱 생성

@app.route('/')
def index():
    return 'welcome'

@app.route('/create/')
def create():
    return 'Create'

@app.route('/read/<id>/')
def read(id):
    print(id)
    return 'Read' + id

app.run(debug=True)

코드 설명

from flask import Flask

Flask 클래스를 불러옵니다. Flask 웹앱을 만들기 위한 준비예요.

 

app = Flask(__name__)

Flask 인스턴스를 생성합니다. 

__name__은 현재 파일이 어떤 역할인지 Flask에게 알려주는 역할을 해요.

 

라우팅이란?

 

@app.route()는 사용자가 특정 주소(URL)에 접속했을 때 어떤 동작을 할지를 연결해주는 것이에요.
즉, 웹 주소(URL)와 함수(기능)를 연결해주는 것을 라우팅이라고 합니다.

 

/ 주소로 접속한 경우

@app.route('/')
def index():
    return 'welcome'
  • http://localhost:5000/으로 접속하면 "welcome"이라는 문장을 브라우저에 띄웁니다.

 

/create/ 주소로 접속한 경우

@app.route('/create/')
def create():
    return 'Create'
  • http://localhost:5000/create/로 접속하면 "Create" 라는 문장이 나옵니다.

 

/read/<id>/ 주소로 접속한 경우

@app.route('/read/<id>/')
def read(id):
    print(id)
    return 'Read' + id
 
  • 동적인 URL을 사용할 수 있습니다.
  • 예를 들어 http://localhost:5000/read/123/ 으로 접속하면
    • 콘솔에는 123이 출력되고,
    • 브라우저에는 Read123 이 출력됩니다.

  • 위 사진을 통해 웹 주소에 http://127.0.0.1:5000/read/100/ 를 입력 했을 때 브라우저에 Read100이 출력 된 것을 볼 수 있습니다.
  • 이처럼 <id> 부분은 사용자에게서 입력받는 데이터라고 볼 수 있어요. 모든 id 값을 미리 정해두지 않아도 입력받아 출력이 가능합니다.

 

서버 실행

app.run(debug=True)
  • Flask 서버를 실행합니다.
  • debug=True 옵션은 에러 발생 시 상세한 디버그 화면을 보여주기 때문에 개발할 때 매우 유용해요.
  • 저장하고 URL 새로고침만 하면 수정 내용이 반영 된 것을 볼 수 있어요.

 

다음시간에는 Flask 2탄으로 돌아올게요 :)

이해 어려운게 있다면 댓글 남겨주세요^^