티스토리 뷰
파이썬 언어를 사용하는 웹 프레임워크는 다양하다. 대표적인 웹 프레임워크는 Django, Flask, FastAPI, CherryPy, Pyramid, Bottle, Web2py 등이 있다. 이들중에 Django, Flask, FastAPI가 인기 있는 웹 프레임워크로 각기 특성과 장점을 가지고 있어서, 어떤 프레임워크를 선택할지는 내가 하고자하는 프로젝트의 요구사항을 잘 살펴보고 그에 맞는 웹 프레임워크 선정이 필요하다.
Flask
Flask는 경량 마이크로 프레임워크로, 필수적인 기능만 제공하며 필요에 따라 확장이 가능하다. WSGI(Web Server Gateway Interface) 표준을 따르며, Werkzeug 툴킷을 기반으로 만들어 졌다. 또한 Jinja2 템플릿 엔지을 사용하여 동적 콘텐츠를 생성할 수 있다.
주요특징은
- 최소한의 핵심 기능과 선택적 확장 가능
- 간단한 라우팅 및 요청 처리
- Jinja2 템플릿 엔진을 통한 동적 콘텐츠 형서
- 풍부한 서드파티 라이브러리와 커뮤니티 지원이다.
주로 소규모에서 중규모 애플리케이션, RESTful API, 프로토 타입 개발, 마이크로서비스 등에 적합하다.
FastAPI
FastAPI는 Starlette(웹 처리)와 Pydantic(데이터 검증)을 기반으로 하며, 비동기 프로그래밍을 기본적으로 지원하여 매우 높은 성능과 확장성을 제공한다. 또한 OpenAPI 표준(Swagger UI)을 사용하여 자동으로 API 문서를 생성해주며, API를 빠르고 효율적으로 개발할 수 있도록 설계된 현대적인 고성능 웹 프레임워크이다.
주요 특징은
- 비동기 프로그래밍 지원 (async/await)
- 자동 생성되는 API 문서
- 타입 힌트를 통한 데이터 검증 및 코드 자동 완성
- 비동기 처리 덕분에 매우 높은 성능을 가지고 있다.
고성능 API, 마이크로서비스, 실시간 애플리케이션 또는 데이터 과학/머신러닝 API와 같은 고동시성 시스템에 적합한 웹 프레임워크이다.
Django
Django는 복잡한 웹 애플리케이션을 빠르게 구축할 수 있도록 모든 도구를 제공하는 풀스택 웹 프레임워크이다. Django는 MVT(Model-View-Template) 아키텍처를 따르며 ORM(Object Relational Mapper), 관리자 인터페이스, 인증 시스템 및 보안 기능 등 많은 내장 기능을 제공하며 대규모 애플리케이션 개발에 필요한 모든 것을 기본적으로 포함하고 있다.
주요 특징은
- 내장 ORM을 통한 데이터베이스 관리
- 관리자 인터페이스를 통한 애플리케이션 데이터 관리.
- 강력한 보안 기능(SQL 인젝션 및 크로스 사이트 스크립팅 방지 등).
- 대규모 애플리케이션에도 확장 가능하다.
콘텐츠 관리 시스템(CMS), 전자상거래 플랫폼, 소셜 미디어 사이트 등 대규모 애플리케이션에 적합한 웹프레임워크이다.
주요 차이점
특징 | Flask | FastAPI | Django |
프레임워크 유형 | 마이크로 프레임워크 | 마이크로 프레임워크(API 중심) | 풀스택 프레임워크 |
아키텍처 | WSGI 기반 | ASGI 기반(비동기 지원) | MVT(Model-View-Template) |
성능 | 보통 | 매우 높음 | 보통 |
사용 편의성 | 쉬움 | 쉬움 (타입 힌트 덕분에 더 편리함) | 중간 (학습 곡선이 있음) |
내장 기능 | 최소 | 최소 | 광범위 (ORM, 관리자 패널 등 포함) |
확장성 | 중간 | 높음 | 높음 |
주요 사용 사례 | 소규모 앱/API | 고성능 API | 복잡한 웹 애플리케이션 |
커뮤니티 지원 | 큼 | 빠르게 성장 중 | 큼 |
문서화 수준 | 좋음 | 우수 (자동 생성 문서 제공) | 우수 |
웹 프레임워크 선택
초보자들에게는 선택의 기준은 명확해 보인다. 학습곡선이 낮은 Flask로 일단 시작해보자.
'The MindSet' 카테고리의 다른 글
당신의 친구는 몇명? (1) | 2024.11.13 |
---|---|
“나는 가장 위대하다” 무하마드 알리 KO 장면 - "I am the greatest" Muhammad Ali KO scene (0) | 2024.01.10 |
드웨인 존슨(Dwayne Johnson)의 인생에서 가장 힘들었던 시기(Seven Bucks Moment) (1) | 2024.01.04 |
전 Navy Seal 대원의 시련을 극복하는 방법("X"에서 탈출하기) (0) | 2023.12.18 |
스스로 희망을 가르치는 방법 - 긍정적 자기확언(Positive Affirmation) (0) | 2023.12.06 |
- Total
- Today
- Yesterday
- 구글시트
- IMPORTRANGE
- Python
- 무주택세대구성원
- chrome버전
- 주택청약
- Selenium
- vscode 구글시트 연동
- scraping
- 챗gpt
- 오블완
- 청약통장
- 주택청약제도
- OpenAI
- chromedriver버전오류
- kc인증
- Google sheet
- 스크래핑
- 티스토리챌린지
- 소스제어
- Git
- GitHub
- 청약제도
- 고양장항신혼희망타운
- 구글API
- flask
- This version of ChromeDriver only supports Chrome version
- 버전제어
- VSCode
- chatGPT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |