FastAPI로 CRUD 작업을 빠르게 만드는 방법

이번 포스트에서는 FastAPI를 사용하여 CRUD 연산을 빠르게 구현하는 방법을 살펴보겠습니다. 먼저 FastAPI와 데이터베이스를 설정한 후 CRUD 연산을 위한 API 엔드포인트를 생성하는 과정을 진행하겠습니다.

Young-jae

Young-jae

12 June 2025

FastAPI로 CRUD 작업을 빠르게 만드는 방법

CRUD 작업은 데이터 저장 및 검색과 관련된 모든 웹 응용 프로그램에서 필수적입니다. 이러한 작업은 사용자가 새 기록을 만들고, 기존 기록을 검색하고, 기존 기록을 업데이트하고, 데이터베이스에서 기록을 삭제할 수 있게 해줍니다.

FastAPI는 API 엔드포인트를 쉽게 정의하고 HTTP 요청을 처리할 수 있는 간단하고 직관적인 방법을 제공하여 CRUD 작업을 쉽게 구현할 수 있게 해줍니다. Python의 타입 힌트를 활용하여 대화형 API 문서를 자동으로 생성하고 데이터 유효성 검사를 수행하여 강력하고 잘 문서화된 API 구축을 위한 강력한 도구입니다.

이번 포스트에서는 FastAPI로 CRUD 작업을 신속하게 구현하는 방법을 탐구해보겠습니다. FastAPI와 데이터베이스를 설정하는 것부터 시작하여 그 다음 CRUD 작업을 위한 API 엔드포인트를 생성할 것입니다. 생성, 읽기, 업데이트 및 삭제 작업의 구현과 이러한 작업의 테스트 및 유효성 검사도 다룰 것입니다. 자, 시작해 보도록 하죠! FastAPI와 CRUD 작업의 세계로 뛰어들어 봅시다!

FastAPI에서 CRUD란 무엇인가요?

FastAPI에서 CRUD는 데이터베이스나 데이터 저장 시스템에서 수행할 수 있는 기본 작업을 의미합니다. CRUD는 Create(생성), Read(읽기), Update(업데이트), Delete(삭제)의 약자로, 대부분의 응용 프로그램에서 데이터를 관리하는 데 필수적인 기본 기능을 나타냅니다.

다음은 FastAPI에서 CRUD 작업에 대한 자세한 설명입니다:

FastAPI로 CRUD 작업을 빠르게 만드는 방법

FastAPI로 CRUD 기능을 구현하려면 다음 단계를 따라주세요:

단계 1: FastAPI 설치: 시스템에 Python이 설치되어 있는지 확인하고, 명령줄에서 다음 명령을 실행하여 FastAPI를 설치합니다:

pip install fastapi

단계 2: FastAPI 애플리케이션 생성: 새 Python 파일(예: main.py)을 만들고 필요한 모듈과 라이브러리를 가져옵니다:

from fastapi import FastAPI
from pydantic import BaseModel
from typing import List

app = FastAPI()

단계 3: 데이터 모델 정의: Pydantic을 사용하여 데이터 모델을 정의합니다. 예:

class Item(BaseModel):
    id: int
    name: str
    price: float

단계 4: CRUD 경로 및 핸들러 생성: FastAPI를 사용하여 CRUD 작업을 위한 경로와 해당 처리 기능을 생성합니다. 예를 들면 다음과 같습니다:

items = []

@app.get("/items", response_model=List[Item])
async def read_items():
    return items

@app.post("/items", response_model=Item)
async def create_item(item: Item):
    items.append(item)
    return item

@app.put("/items/{item_id}", response_model=Item)
async def update_item(item_id: int, item: Item):
    items[item_id] = item
    return item

@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
    del items[item_id]
    return {"message": "아이템 삭제됨"}

단계 5: 애플리케이션 실행: FastAPI 애플리케이션을 실행하고 APIRouter 기능을 테스트하려면 uvicorn과 같은 ASGI 서버를 사용합니다. uvicorn이 설치되어 있는지 확인하세요:

pip install uvicorn

IDE 편집기에서 터미널을 열고 main.py 파일이 저장된 디렉터리로 이동한 다음 애플리케이션을 시작하기 위해 다음 명령을 실행합니다:

uvicorn main:app --reload

이 명령은 FastAPI 애플리케이션을 기본 포트(보통 8000)에서 자동 재로드 기능과 함께 시작합니다. 코드 변경 시 애플리케이션이 자동으로 다시 로드됩니다.

단계 6: CRUD 작업 테스트

HTTP 클라이언트 도구(예: cURL 또는 Apidog)를 사용하여 요청을 보내고 생성, 읽기, 업데이트 및 삭제 기능을 테스트합니다. 다음은 몇 가지 예제 요청입니다:

POST http://localhost:8000/items
{
    "id": 1,
    "name": "사과",
    "price": 0.5
}
 POST 요청
GET http://localhost:8000/items
GET 요청
GET http://localhost:8000/items
PUT 요청
DELETE http://localhost:8000/items/1
 DELETE 요청

마지막으로, 우리는 Apidog에서 삭제 작업에 대한 테스트를 작성할 수 있습니다. 삭제 엔드포인트에 대한 DELETE 요청을 시뮬레이션하고 응답 상태 코드가 200(성공적인 삭제를 나타냄)인지 확인할 수 있습니다. 그 후, 데이터베이스에서 삭제된 데이터를 검색하려고 해보고 그것이 존재하지 않음을 확인할 수 있습니다.

이러한 테스트를 작성함으로써 우리의 CRUD 작업이 올바르게 작동하고, 잘못된 입력이나 존재하지 않는 데이터와 같은 다양한 시나리오를 처리할 수 있도록 할 수 있습니다.

추가 팁

코드 자동 완성, 오류 검사 및 디버깅 기능을 통해 개발 효율성을 개선하기 위해 Visual Studio Code와 같은 IDE 지원을 사용하세요.

이러한 관행을 따르면 FastAPI로 강력하고 효율적인 API를 개발하고 개발 및 배포 프로세스를 간소화할 수 있습니다.

Explore more

EXAONE 3.0 7.8B 모델을 로컬에서 실행하는 방법

EXAONE 3.0 7.8B 모델을 로컬에서 실행하는 방법

이 글에서는 EXAONE 3.0 7.8B 모델을 자신의 컴퓨터에서 설치하고 실행하는 방법을 단계별로 상세히 알아보겠습니다

25 March 2025

Claude 3.7 소넷 API에 접근하고 Apidog을 사용하여 테스트하는 방법

Claude 3.7 소넷 API에 접근하고 Apidog을 사용하여 테스트하는 방법

Anthropic의 최신 출시인 Claude 3.7 Sonnet에 대해 기대하고 있으며, Apidog로 테스트하면서 API를 통한 기능을 탐색하고 싶다면, 올바른 장소에 오신 것입니다. 💡시작하기 전에 간단한 팁을 드리겠습니다: 오늘 Apidog를 무료로 다운로드하여 API 테스트 프로세스를 간소화하세요. 특히 Claude 3.7 Sonnet의 강력한 기능을 탐색하는 데 적합한 도구로, 최첨단 AI 모델을 테스트하려는 개발자에게 이상적입니다!버튼 Claude 3.7 Sonnet이 중요한 이유로 시작해봅시다. Anthropic은 최근 2025년 2월 24일에 이 모델을 공개했으며, 즉시 및 단계별 응답을 위한 하이브리드 추론 기능을 갖춘 가장 지능적인 창작물로 자리 잡았습니다. 이는 코딩, 추론 등 여러 부분에서 혁신적인 변화를 가져오며, 현재 e Anthropic API, Amazon Bedrock, Google Cloud의 Vertex AI를 통해 사용할 수 있습니다. 이 튜

25 February 2025

GitHub Copilot 무료: 어떻게 시작하나요?

GitHub Copilot 무료: 어떻게 시작하나요?

GitHub Copilot 무료 사용법을 알아보세요. 이 AI 기반 코딩 도우미에 대한 이 가이드는 VS Code와 JetBrains와 같은 인기 IDE의 설정 단계를 다루며, 무료로 스마트한 코드 제안 및 완성을 통해 생산성을 높일 수 있도록 도와줍니다!

19 December 2024

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요