파이썬
FastAPI 애플리케이션 Docker로 배포하기
소개FastAPI 애플리케이션을 실제 운영 환경에 배포하는 것은 개발만큼 중요한 과정입니다. 이번 글에서는 Docker를 사용하여 FastAPI 애플리케이션을 안전하고 효율적으로 배포하는 방법을 알아보겠습니다.Docker 기본 설정Dockerfile 작성# Dockerfile# Python 3.9 이미지를 기본으로 사용FROM python:3.9-slim# 작업 디렉토리 설정WORKDIR /app# Poetry 설치 (의존성 관리 도구)RUN pip install poetry# 프로젝트 메타데이터 복사COPY pyproject.toml poetry.lock ./# Poetry 설정: 가상환경 생성하지 않음RUN poetry config virtualenvs.create false# 의존성 설치RUN po..
FastAPI 미들웨어와 CORS 설정
소개웹 애플리케이션을 개발할 때 미들웨어와 CORS 설정은 매우 중요한 부분입니다. 이번 글에서는 FastAPI에서 미들웨어를 활용하는 방법과 CORS 설정 방법을 실제 예제와 함께 상세히 알아보겠습니다.미들웨어란?미들웨어는 요청이 들어오고 응답이 나가는 중간에 실행되는 코드입니다. 주로 다음과 같은 용도로 사용됩니다:요청/응답 로깅인증/인가 처리요청 처리 시간 측정CORS 처리에러 핸들링기본 미들웨어 구현# main.pyfrom fastapi import FastAPI, Requestimport timeimport logging# 로깅 설정logging.basicConfig(level=logging.INFO)logger = logging.getLogger(__name__)app = FastAPI()@a..
JWT를 이용한 FastAPI 사용자 인증 구현하기
소개웹 애플리케이션에서 사용자 인증은 매우 중요한 부분입니다. 이번 글에서는 JWT(JSON Web Token)를 사용하여 FastAPI에서 안전한 사용자 인증 시스템을 구현하는 방법을 알아보겠습니다.필요한 패키지 설치pip install python-jose[cryptography] # JWT 토큰 생성 및 검증pip install passlib[bcrypt] # 비밀번호 해싱pip install python-multipart # 폼 데이터 처리보안 설정# security.pyfrom datetime import datetime, timedeltafrom typing import Optionalfrom jose import JWTError, jwtfrom pass..
FastAPI의 데이터베이스 연동 쉽게 이해하기
소개웹 애플리케이션에서 데이터베이스는 필수적입니다. 이번 글에서는 FastAPI에서 SQLAlchemy를 사용하여 데이터베이스를 연동하는 방법을 예제와 함께 상세히 알아보겠습니다. 특히 온라인 쇼핑몰의 상품 관리 시스템을 예제로 사용하여 실제 활용 방법을 이해하기 쉽게 설명하겠습니다.데이터베이스 설정하기먼저 필요한 패키지를 설치합니다.pip install sqlalchemy psycopg2-binary# sqlalchemy: 데이터베이스 작업을 위한 ORM# psycopg2-binary: PostgreSQL 연결을 위한 드라이버데이터베이스 연결을 설정합니다:# database.pyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative im..
FastAPI 시작하기 - 설치부터 첫 API 만들기까지
소개FastAPI는 파이썬 3.6+ 버전에서 사용할 수 있는 현대적인 웹 프레임워크입니다. Django나 Flask와 비교했을 때 놀라운 성능과 직관적인 문법, 자동 API 문서화 등의 장점을 가지고 있습니다. 이번 글에서는 FastAPI의 기본 설정부터 첫 API를 만드는 과정까지 상세히 알아보겠습니다.FastAPI의 주요 특징# FastAPI의 핵심 장점1. 빠른 성능 (NodeJS, Go와 대등한 수준)2. 자동 API 문서 생성 (Swagger UI, ReDoc)3. 파이썬 타입 힌트 기반의 데이터 검증4. 비동기 프로그래밍 지원5. 쉽고 직관적인 문법개발 환경 설정가상환경 생성과 패키지 설치# 가상환경 생성python -m venv fastapi-env# 가상환경 활성화# Windowsfasta..
SQLAlchemy: 데이터베이스 툴킷
SQLAlchemy는 Python에서 데이터베이스 작업을 쉽고 효율적으로 수행할 수 있게 해주는 강력한 오픈 소스 도구입니다. SQLAlchemy는 데이터베이스 연결, 쿼리 실행, 데이터 조작 등의 작업을 단순화하며, 개발자가 DBMS(데이터베이스 관리 시스템) 특정 기능에 크게 의존하지 않고도 데이터베이스를 다룰 수 있도록 돕습니다.SQLAlchemy의 주요 구성 요소SQLAlchemy Core: 데이터베이스 연결, 쿼리 생성, 트랜잭션 처리 등의 기본 기능을 제공합니다.SQLAlchemy ORM(Object-Relational Mapping): 객체와 데이터베이스 테이블 간의 매핑을 처리하여 개발자가 객체 지향 프로그래밍 방식으로 데이터베이스를 다룰 수 있게 해줍니다.Alembic: 데이터베이스 스키..
aiohttp.ClientSession: 비동기 HTTP 클라이언트 세션
Python의 aiohttp 라이브러리는 비동기 HTTP 클라이언트와 서버를 구현할 수 있는 강력한 도구입니다. 그중에서도 aiohttp.ClientSession은 비동기 HTTP 요청을 보내는 데 핵심적인 역할을 합니다.aiohttp.ClientSession이란?aiohttp.ClientSession은 비동기 HTTP 클라이언트 세션을 나타냅니다. 이 세션은 다음과 같은 기능을 제공합니다:연결 관리: 세션은 HTTP 연결을 생성, 유지, 재사용합니다. 이를 통해 성능을 향상시킬 수 있습니다.쿠키 관리: 세션은 쿠키를 자동으로 관리하여 연속적인 요청을 처리할 수 있습니다.자동 인증: 세션은 자동으로 인증 정보를 추가하여 인증이 필요한 API 요청을 처리할 수 있습니다.연결 풀링: 세션은 연결 풀링을 통해..
PyInstaller : Python 애플리케이션 빌드 도구
Python 애플리케이션을 배포하려면 종종 단일 실행 파일(exe 파일)로 만드는 작업이 필요합니다. 이를 위해 PyInstaller 패키지를 사용할 수 있습니다. PyInstaller는 Python 스크립트와 필요한 종속성을 하나의 실행 파일로 패키징할 수 있는 강력한 도구입니다.PyInstaller 설치PyInstaller는 pip를 통해 간단히 설치할 수 있습니다:pip install pyinstallerPyInstaller 자주 사용하는 옵션PyInstaller를 사용할 때 다음과 같은 옵션들을 자주 활용할 수 있습니다:단일 실행 파일 생성--onefile 옵션을 사용하면 모든 종속성이 포함된 단일 실행 파일을 생성할 수 있습니다.pyinstaller --onefile your_script.py아..