네트워크 46

[새싹 성동 2기] FastAPI로 구현하는 "할 일 관리 API" 기능 개발 및 테스트

1. 기능 개요FastAPI를 이용해 기본적인 "할 일 관리" API를 구현합니다. 이 API는 다음의 주요 기능을 포함합니다.구분(기능)방식URI본문응답과 관련 내용할 일 추가POST/todo{ "id": num, "item": str }"할 일을 추가합니다."할 일 목록 조회GET/todo없음할 일 목록 반환할 일 상세 조회GET/todo/{todo_id}없음지정 ID의 할 일 반환할 일 검색GET/todo/search?item=없음검색 조건에 맞는 할 일 반환할 일 수정PUT/todo/{todo_id}{ "item": str }"할 일을 수정했습니다."할 일 삭제DELETE/todo/{todo_id}없음"할 일을 삭제했습니다." 2. 기능 구현2.1 기본 모델 정의 (model.py)from pyd..

코딩/파이썬 2024.12.16

[새싹 성동 2기] FastAPI 쿼리 매개변수와 Query 클래스 활용법

FastAPI에서 쿼리 매개변수는 URL 경로에 포함되지 않고 ? 뒤에 추가되는 매개변수입니다. 주로 필터링, 정렬, 페이징 등의 작업을 위해 사용됩니다. 이번 글에서는 쿼리 매개변수를 활용하여 할 일 검색 기능을 구현하고, Query 클래스를 사용하여 유효성 검사 및 메타데이터 추가 방법을 다룹니다. 쿼리 매개변수를 활용한 할 일 검색할 일을 추가, 조회, 검색하는 간단한 API를 FastAPI로 구현합니다. 먼저 기본적인 코드부터 살펴보겠습니다.코드: todo.pyfrom fastapi import APIRouter, Pathfrom model import Todo# 라우터 생성todo_router = APIRouter()todo_list = []@todo_router.post("/todo")def ..

코딩/파이썬 2024.12.16

[새싹 성동 2기] FastAPI 경로 매개변수와 Path 클래스를 활용한 유효성 검사

FastAPI는 경로 매개변수(Path Parameter)를 통해 URL의 특정 값을 받아 서버에서 처리할 수 있도록 지원합니다. 이 기능은 RESTful API 개발에서 자주 사용되며, 클라이언트가 서버로 특정 리소스를 요청할 때 매우 유용합니다. 이번 글에서는 FastAPI에서 경로 매개변수를 사용하는 방법과 이를 Path 클래스를 활용해 유효성 검사 및 메타데이터를 추가하는 방법을 소개합니다.1. 경로 매개변수란?경로 매개변수는 URL 경로의 일부로 전달되는 값으로, FastAPI에서 중괄호 {}로 표시됩니다. 클라이언트가 URL을 통해 특정 리소스를 요청하면 서버는 이 값을 사용해 작업을 수행합니다.예시:경로: /users/{user_id}요청: /users/100결과: 서버는 user_id=10..

코딩/파이썬 2024.12.16

[새싹 성동 2기] Pydantic 모델을 사용한 요청 본문 검증

FastAPI에서는 데이터 유효성 검증을 간단하고 효율적으로 처리할 수 있습니다. Pydantic 모델을 사용하면 요청 본문 데이터를 구조화하고 검증할 수 있으며, 검증에 실패하면 FastAPI는 422(Unprocessable Content) 응답을 자동으로 반환합니다.Pydantic 모델 정의Pydantic은 데이터 구조를 정의하고, 요청 및 응답 데이터의 유효성을 검사하는 데 사용됩니다. 이를 통해 애플리케이션의 데이터를 안전하게 처리할 수 있습니다.기본 모델 정의다음은 할 일 데이터를 저장할 Pydantic 모델의 예입니다. 이 모델은 id와 item 필드를 포함합니다.model.pyfrom pydantic import BaseModelclass Todo(BaseModel): id: int ..

코딩/파이썬 2024.12.16

[새싹 성동 2기] FastAPI 라우팅 가이드

웹 애플리케이션에서 라우팅은 클라이언트 요청을 특정 함수나 로직에 매핑하는 중요한 과정입니다. FastAPI에서는 이를 "경로 운영자 데코레이터"를 사용해 손쉽게 정의할 수 있습니다. 또한, APIRouter 클래스를 이용해 라우트를 모듈화하고 그룹화할 수 있습니다. 이번 글에서는 FastAPI의 라우팅 개념과 사용 방법을 단계별로 설명합니다. 1. 경로 운영자 데코레이터FastAPI에서 경로와 HTTP 메서드를 연결하기 위해 경로 운영자 데코레이터를 사용합니다. 이는 특정 HTTP 메서드와 경로에 요청이 들어왔을 때 실행할 함수를 정의합니다. 함수는 보통 비동기 함수(async def)로 작성되지만, 동기 함수(def)로도 가능합니다.주요 데코레이터 종류:@app.get() : HTTP GET 요청 처..

코딩/파이썬 2024.12.11

[새싹 성동 2기] FastAPI로 간단한 웹 애플리케이션 만들기

파이썬 웹 프레임워크인 FastAPI를 이용하여 간단한 REST API를 구현하고, 로컬 환경에서 애플리케이션을 실행해보는 과정을 소개합니다. FastAPI란?FastAPI는 파이썬으로 고성능 비동기 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 웹 프레임워크입니다. 기본적으로 비동기(Async) 작업 방식을 지원하기 때문에, 동시성 처리가 많은 REST API를 구현할 때 매우 유용합니다.FastAPI 특징:고성능: Starlette과 uvicorn 기반으로 매우 빠른 속도 제공간결한 문법: Python 타입 힌트를 적극 활용해 자동 문서화 및 검증비동기 지원: async/await 키워드를 통한 논블로킹 I/O 처리REST API 개발에 최적화개발 환경 준비작업 디렉터리 생성먼저 FastAPI 프..

코딩/파이썬 2024.12.11

[새싹 성동 2기] SQLite 데이터베이스 연동 가이드

SQLite를 사용하여 데이터베이스를 연동하고 데이터를 생성, 조회, 수정, 삭제하는 과정을 단계별로 정리한 가이드입니다.  1. 데이터베이스 연결 및 테이블 생성SQLite 데이터베이스에 연결하고 사용자(users) 테이블을 생성하는 코드 예제입니다.import sqlite3# 데이터베이스 연결# SQLite 데이터베이스 파일 'example.db'에 연결conn = sqlite3.connect("example.db")print(conn)# # 커서 생성# SQL 명령을 실행하기 위한 커서 객체를 생성cursor = conn.cursor()# 테이블 생성sql = """create table if not exists users ( id integer primary key autoincrement,..

코딩/파이썬 2024.12.11

[새싹 성동 2기] 객체 지향 프로그래밍 (OOP) 기초

객체 지향 프로그래밍 (OOP) 기초객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그래밍을 객체 단위로 설계하여 코드의 재사용성과 유지보수성을 높이는 방법론입니다. 이번 글에서는 클래스, 인스턴스, 클래스 메서드, 그리고 상속에 대해 알아보겠습니다.1. 클래스와 인스턴스클래스는 객체를 생성하기 위한 틀 또는 설계도입니다. 인스턴스는 클래스에서 생성된 실제 객체입니다. 아래 예제에서 Dog 클래스는 모든 강아지 객체를 생성하는 설계도 역할을 합니다.class Dog: species = "Canis familiaris" # 클래스 변수: 모든 인스턴스가 공유하는 변수 def __init__(self, name, age): self.name =..

코딩/파이썬 2024.12.11

[새싹 성동 2기] Python에서 파일 처리하는 방법

파이썬에서는 파일을 다루는 다양한 방법을 제공합니다. 파일을 열고 읽거나 쓰는 작업을 효율적으로 수행할 수 있으며, 예외 처리로 안전한 파일 작업도 가능합니다. 이번 글에서는 파이썬에서 파일을 처리하는 기본 문법과 주요 기능을 정리해 보겠습니다.1. open() 함수의 기본 문법파일을 열 때 사용하는 open() 함수는 다음과 같은 매개변수를 가집니다.file_object = open(file_name, mode, buffering, encoding, errors, newline, closefd, opener)file_name: 파일 이름mode: 파일 모드(읽기, 쓰기, 추가 등)encoding: 파일 인코딩(예: utf-8)buffering: 버퍼 설정errors: 오류 처리 방식newline: 줄바..

코딩/파이썬 2024.12.09

[새싹 성동 2기]Python 데이터 타입과 연산자 기초 정리

1. 불변 객체와 가변 객체불변 객체정수(int), 문자열(str), 튜플(tuple) 등은 불변 객체입니다.값이 변경되면 새로운 객체가 생성됩니다.x = 42print(x, id(x)) # 42 140720571869384x = x + 1print(x, id(x)) # 43 140720571869416 # 새로운 객체가 생성 가변 객체리스트(list), 딕셔너리(dict), 집합(set) 등은 가변 객체입니다.값을 변경해도 같은 객체를 참조합니다.my_list = [1, 2, 3]print(my_list, id(my_list)) # [1, 2, 3] 1952297804288my_list.append(4)print(my_list, id(my_list)) # [1, 2, 3, 4] 19522978..

코딩/파이썬 2024.12.09