약 5분
본문 듣기
읽기 설정
글자 크기
줄 간격
글꼴
1.2 웹 애플리케이션 아키텍처
웹 애플리케이션 아키텍처는 애플리케이션이 어떻게 구성되고 상호작용하는지를 정의합니다. 이 강의에서는 FastAPI와 함께하는 웹 애플리케이션 아키텍처의 기본을 다루겠습니다. 이론적 배경보다는 실습을 위주로 진행하여, 실질적인 개발 환경을 체험해 볼 것입니다.
웹 애플리케이션은 일반적으로 클라이언트와 서버로 나뉘며, 클라이언트는 사용자 인터페이스를 제공하고 서버는 데이터 처리와 저장을 담당합니다. 흔히 사용되는 구조는 다음과 같습니다:
- 프론트엔드: 사용자와 상호작용하는 부분으로, HTML, CSS, JavaScript 등을 이용하여 구현합니다.
- 백엔드: 서버에서 데이터 처리 및 API 제공을 담당하는 부분으로, FastAPI를 사용하여 구현합니다.
- 데이터베이스: 데이터 저장을 위한 시스템으로, SQLite에서 MySQL로의 마이그레이션을 통해 더 다양한 데이터베이스 환경을 배울 수 있습니다.
다음은 FastAPI를 사용한 간단한 웹 애플리케이션의 예제입니다. 이 예제에서는 기본적인 CRUD(Create, Read, Update, Delete) 작업을 수행할 수 있는 API를 구축합니다. 이는 우리가 실제로 구현할 프로젝트의 기초가 될 것입니다.
코드
python
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import List
app = FastAPI()
class Item(BaseModel):
id: int
name: str
description: str
price: float
items = []
@app.post("/items/", response_model=Item)
def create_item(item: Item):
items.append(item)
return item
@app.get("/items/", response_model=List[Item])
def read_items():
return items
@app.get("/items/{item_id}", response_model=Item)
def read_item(item_id: int):
for item in items:
if item.id == item_id:
return item
raise HTTPException(status_code=404, detail="Item not found")
@app.put("/items/{item_id}", response_model=Item)
def update_item(item_id: int, item: Item):
for index, existing_item in enumerate(items):
if existing_item.id == item_id:
items[index] = item
return item
raise HTTPException(status_code=404, detail="Item not found")
@app.delete("/items/{item_id}")
def delete_item(item_id: int):
global items
items = [item for item in items if item.id != item_id]
return "Item deleted successfully"
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.