
※ 웹 프로그래밍과 HTTP
웹 프로그래밍(Web Programming)이란 브라우저와 서버가 HTTP 프로토콜을 통해
요청(Request)과 응답(Response)을 주고받으며 동작하는 방식을 기반으로 합니다.
HTTP(HyperText Transfer Protocol)은 무상태(stateless) 프로토콜로,
클라이언트가 요청할 때마다 독립적으로 서버가 응답합니다.
※ HTTP 메서드 (GET, POST 등)
HTTP 메서드는 클라이언트가 서버에 어떤 작업을 요청하는지를 정의합니다.
# 주요 HTTP 메서드 정리
GET → 서버에서 데이터 "조회"
POST → 서버에 데이터 "생성" 요청
PUT → 서버에 데이터 "전체 수정"
PATCH → 서버에 데이터 "부분 수정"
DELETE → 서버에서 데이터 "삭제"
예시: 게시판 서비스라면 - GET /posts → 글 목록 조회 - POST /posts →
새 글 작성 - PUT /posts/1 → 글 전체 수정 - DELETE /posts/1 → 글 삭제
※ Flask, Django, FastAPI 비교
파이썬에는 여러 웹 프레임워크가 있으며, 각각의 특징은 다음과 같습니다.
| 프레임워크 | 특징 | 적합한 경우 |
|---|---|---|
| Flask | 마이크로 프레임워크, 가볍고 단순, 확장성이 뛰어남 | 소규모 프로젝트, 빠른 프로토타입 |
| Django | 대형 프레임워크, ORM 내장, 인증/관리 기능 제공 | 대규모 서비스, 복잡한 비즈니스 로직 |
| FastAPI | 비동기 지원, 자동 문서화(Swagger UI), 최신 타입힌트 기반 | REST API 서버, 머신러닝/AI 백엔드 |
→ Flask는 가볍고 자유롭고, Django는 풀스택 대규모, FastAPI는 최신·빠른 API 서버에 강점이 있습니다.
※ FastAPI 예제 코드
FastAPI는 비동기(Async)와 자동 문서화를 지원하는 프레임워크입니다. 타입 힌트를 기반으로
요청/응답을 검증하고, Swagger UI를 자동 제공하므로 API 개발에 최적화되어 있습니다.
# main.py
from fastapi import FastAPI
from pydantic import BaseModel
# 데이터 검증 모델 (입력 값 스키마 정의)
class Item(BaseModel):
name: str
price: float
in_stock: bool = True
app = FastAPI()
# GET 요청 (조회)
@app.get("/")
def read_root():
return {"message": "Hello FastAPI"}
# Path parameter
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
# POST 요청 (생성)
@app.post("/items/")
def create_item(item: Item):
return {"message": "아이템 생성 완료", "item": item}
실행 방법:
uvicorn main:app --reload
→ 실행 후 http://127.0.0.1:8000/docs 에서 자동 생성된 Swagger UI를 확인할 수 있습니다.
'2025 현대오토에버 모빌리티 SW 스쿨(클라우드 2기) > 파이썬 이론' 카테고리의 다른 글
| [Python] 내장 모듈과 표준 라이브러리 활용 (0) | 2025.09.21 |
|---|---|
| [Python] 예외 처리와 디버깅 (0) | 2025.09.21 |
| [Python] 객체 지향 프로그래밍(OOP) (0) | 2025.09.21 |
| [Python] 함수(Function) 완벽 이해 (0) | 2025.09.21 |
| [Python] 연산자와 제어문 (0) | 2025.09.21 |