반응형
🌍 웹 서버(Web Server)란?
웹 서버는 사용자의 요청을 받아 웹페이지를 제공하는 프로그램입니다.
✅ 파이썬으로 웹 서버를 만들면?
- 웹 애플리케이션 개발 가능
- API 서버 구축 가능
- 백엔드 개발 기초 학습 가능
이 글에서는 Flask와 FastAPI를 비교하면서 간단한 웹 서버를 만들어봅니다! 🚀
반응형
🛠️ 1. Flask vs FastAPI: 어떤 프레임워크를 선택할까?
비교 항목 Flask FastAPI
속도 | 상대적으로 느림 | 빠름 (비동기 지원) |
사용 편의성 | 쉽고 직관적 | 타입 검사를 지원 |
비동기 지원 | 기본적으로 X (확장 필요) | 기본 지원 (async/await) |
문서 자동 생성 | 없음 | OpenAPI 문서 자동 생성 |
추천 사용 사례 | 간단한 웹 앱 | API 서버 구축 |
✅ Flask: 간단한 웹사이트나 REST API를 만들 때 적합
✅ FastAPI: 성능이 중요하고 비동기 처리가 필요한 API 개발에 적합
🚀 2. Flask로 간단한 웹 서버 만들기
Flask는 설치와 사용이 간단하여 빠르게 웹 애플리케이션을 개발할 수 있는 프레임워크입니다.
🔹 1. Flask 설치
pip install flask
🔹 2. 기본 웹 서버 코드 (app.py)
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello, Flask!"
if __name__ == '__main__':
app.run(debug=True)
🔹 3. 실행하기
python app.py # 로컬 서버 실행 (http://127.0.0.1:5000)
✅ 브라우저에서 http://127.0.0.1:5000에 접속하면 "Hello, Flask!"가 출력됩니다!
⚡ 3. FastAPI로 간단한 웹 서버 만들기
FastAPI는 비동기 지원과 자동 문서 생성 기능이 강력한 최신 프레임워크입니다.
🔹 1. FastAPI 설치
pip install fastapi uvicorn
🔹 2. 기본 웹 서버 코드 (main.py)
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def home():
return {"message": "Hello, FastAPI!"}
if __name__ == '__main__':
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)
🔹 3. 실행하기
uvicorn main:app --reload # 로컬 서버 실행 (http://127.0.0.1:8000)
✅ 브라우저에서 http://127.0.0.1:8000에 접속하면 JSON 응답이 출력됩니다!
🔥 4. Flask vs FastAPI 코드 비교
기능 Flask 코드 FastAPI 코드
라우팅 | @app.route('/') | @app.get('/') |
응답 형식 | HTML 또는 문자열 | JSON 응답 기본 지원 |
실행 방법 | app.run(debug=True) | uvicorn.run(app, host, port) |
비동기 처리 | 별도 설정 필요 | 기본 지원 (async/await) |
👉 Flask는 가볍고 빠르게 개발 가능, FastAPI는 성능이 중요한 API 구축에 적합!
🎯 결론: Flask vs FastAPI, 어떤 걸 선택할까?
✅ Flask를 선택해야 할 때:
- 간단한 웹 애플리케이션을 만들고 싶을 때
- 가볍고 빠른 개발이 필요할 때
✅ FastAPI를 선택해야 할 때:
- 고성능 API 서버를 구축해야 할 때
- 비동기 처리가 필요한 경우
- 자동 문서 생성(OpenAPI)이 필요한 경우
🚀 이제 직접 Flask 또는 FastAPI를 활용해 웹 서버를 만들어보세요!
반응형
'컴퓨터공학' 카테고리의 다른 글
[2025 최신] 실전 프로젝트: Raspberry Pi로 IoT 시스템 구축하기 (0) | 2025.02.03 |
---|---|
[2025 최신] 프로그래밍 공부 방법: 혼자서 시작하는 최고의 전략 5가지 (0) | 2025.02.02 |
[2025 최신] C++과 파이썬, 어느 언어를 배워야 할까? (장단점 비교) (0) | 2025.02.01 |
[2025 최신] 개발자가 꼭 알아야 할 리눅스 명령어 15가지 (0) | 2025.02.01 |
[2025 최신] 코딩 테스트 필수 알고리즘 10가지 (예제 코드 포함) (0) | 2025.01.31 |