🐍 Python/🐍 웹 개발

[Flask 1강] Flask란? 기초 개념부터 첫 번째 웹 서버 만들기까지!

itstory(Booho) 2025. 2. 22. 00:58
728x90

📌 Flask란? 간단한 웹 서버 개발을 위한 가벼운 프레임워크

여러분, 웹 서버를 개발하려면 어떤 프레임워크를 사용해야 할까요? Django? FastAPI? Spring Boot? 선택지가 너무 많아서 고민될 수 있어요.

오늘은 가볍고 유연한 웹 프레임워크Flask를 소개해볼게요. Flask는 Python 기반의 웹 프레임워크로, 설정이 간단하고 배우기 쉬워서 초보자도 빠르게 웹 서버를 개발할 수 있는 도구입니다.


1. Flask가 뭐길래 이렇게 많이 사용할까?

Flask는 "마이크로 프레임워크"예요.
마이크로라고 해서 기능이 부족한 게 아니라, 필수 기능만 기본적으로 제공하고, 나머지는 개발자가 원하는 대로 확장할 수 있도록 설계된 프레임워크입니다.

✅ Flask의 주요 특징

필수 기능만 제공 → 가볍고 빠름
필요한 기능을 자유롭게 추가 가능 → 확장성이 높음
REST API 개발에 최적화됨
템플릿 엔진(Jinja2) 지원 → 동적인 HTML 생성 가능
유연한 구조 → MVC 패턴을 강요하지 않음


2. Flask vs Django, 어떤 걸 선택해야 할까?

"Flask랑 Django 중에 뭘 써야 할까요?"라는 질문을 많이 받아요.
Flask와 Django는 같은 Python 기반의 웹 프레임워크지만, 지향하는 방향이 완전히 다릅니다.

  Flask Django
구조 마이크로 프레임워크, 가볍고 유연함 풀스택 프레임워크, 기능이 많음
설정 최소한의 설정 기본적으로 많은 설정 필요
확장성 필요한 기능만 추가 가능 대부분의 기능이 기본 제공됨
학습 난이도 쉽고 간단 초반 학습이 다소 어려움
사용 사례 REST API, 소규모 프로젝트 대형 웹 애플리케이션

 

Flask는? 간단한 API 서버나 작은 프로젝트에 적합
Django는? 블로그, 쇼핑몰 같은 대규모 웹 애플리케이션에 적합

오늘 배울 Flask는 "웹 서비스보다는 API 서버를 개발할 때 많이 쓰인다" 정도만 기억해두면 돼요!


3. Flask 설치하기

자, 이제 Flask를 직접 설치해볼까요?
Flask를 사용하려면 Python이 먼저 설치되어 있어야 해요.

1) 가상 환경(venv) 만들기

프로젝트마다 독립적인 환경을 유지하기 위해 가상 환경(venv)을 생성해야 합니다.

# 가상환경 생성 
python -m venv venv 
# 가상환경 활성화 
(Windows) venv\Scripts\activate 
# 가상환경 활성화 
(Mac/Linux) source venv/bin/activate

2) Flask 설치

가상 환경이 활성화된 상태에서 Flask를 설치해볼게요.

pip install flask

이제 Flask를 사용할 준비가 끝났어요! 🎉


4. Flask로 첫 번째 웹 서버 만들기

"설치했으니까 이제 뭔가 만들어봐야 하지 않겠어요?"
여러분이 가장 기본적인 Flask 웹 서버를 만들어볼 차례예요.

1) app.py 파일 생성

아래 코드를 그대로 입력해보세요.

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def home(): 
	return "Hello, Flask!" 
    
if __name__ == '__main__': 
    app.run(debug=True)
 

2) 서버 실행하기

이제 Flask 서버를 실행해볼까요? 터미널(또는 CMD)에서 다음 명령어를 입력하세요.

python app.py
그러면 아래와 같은 메시지가 나올 거예요.
Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
웹 브라우저에서 http://127.0.0.1:5000/ 주소에 접속하면

"Hello, Flask!" 라는 메시지가 출력됩니다.


5. Flask 서버의 동작 원리

지금 만든 웹 서버가 어떻게 동작하는지 간단히 설명해볼게요.

1) app = Flask(__name__)

Flask 애플리케이션을 생성하는 코드예요.

2) @app.route('/')

  • **@app.route()**는 "이 URL로 요청이 들어오면 어떤 함수를 실행할지" 정하는 역할을 해요.
  • '/'는 홈페이지(루트 페이지)를 의미하고, 이 경로로 요청이 들어오면 home() 함수가 실행됩니다.

3) app.run(debug=True)

  • Flask 서버를 실행하는 코드입니다.
  • debug=True 옵션을 사용하면 코드가 수정될 때마다 자동으로 서버가 재시작돼요.

6. Flask로 간단한 API 만들기

이제 Flask로 간단한 API를 만들어볼까요?
이번에는 JSON 데이터를 반환하는 API를 만들어봅시다.

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api/data')
def get_data():
    data = {
        "name": "Flask",
        "version": "2.0",
        "message": "Welcome to Flask API!"
    }
    return jsonify(data)

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

실행 후 테스트하기

서버를 실행한 뒤 웹 브라우저에서 http://127.0.0.1:5000/api/data에 접속하면,
아래처럼 JSON 형식의 데이터를 확인할 수 있어요.

{
    "name": "Flask",
    "version": "2.0",
    "message": "Welcome to Flask API!"
}

이제 Flask로 간단한 웹 서버뿐만 아니라, REST API도 만들 수 있다는 것을 알았죠?
이제부터 Flask를 활용한 다양한 기능들을 하나씩 배워보겠습니다!


📌 오늘 배운 내용 정리

1️⃣ Flask는 Python 기반의 가벼운 웹 프레임워크이다.
2️⃣ Flask는 REST API 개발에 적합하고, Django보다 유연한 구조를 가지고 있다.
3️⃣ Flask 설치는 pip install flask로 가능하며, 가상 환경을 설정하는 것이 좋다.
4️⃣ app.py에서 app.run(debug=True)을 실행하면 간단한 웹 서버를 만들 수 있다.
5️⃣ Flask를 활용해 JSON 데이터를 반환하는 REST API도 쉽게 만들 수 있다.

728x90
반응형