분류 전체보기

    [Python 프로파일링] py-spy와 yappi로 파이썬 코드 성능 분석하기

    소개파이썬 프로그램의 성능을 분석하고 최적화하기 위해서는 프로파일링 도구가 필수적입니다. py-spy와 yappi는 각각 다른 특징을 가진 강력한 프로파일링 도구입니다. 이번 글에서는 두 도구의 사용법과 활용 방법을 자세히 알아보겠습니다.py-spy 란?py-spy는 파이썬 프로그램을 중단하지 않고도 실시간으로 프로파일링할 수 있는 샘플링 프로파일러입니다.설치 방법pip install py-spy기본 사용법# 프로파일링할 예제 코드# example.pyimport timedef slow_function(): time.sleep(2) return "Done"def main(): for _ in range(3): slow_function()if __name__ == "__main..

    VPN과 프록시 서버

    소개인터넷을 사용하다 보면 VPN과 프록시 서버라는 용어를 자주 접하게 됩니다. 이 둘은 비슷해 보이지만 작동 방식과 용도에 중요한 차이가 있습니다. 이번 글에서는 VPN과 프록시 서버의 차이점을 이해하고, Python의 aiohttp를 사용한 구현 방법까지 자세히 알아보겠습니다.VPN(Virtual Private Network)의 이해VPN은 공용 네트워크를 통해 사설 네트워크처럼 안전한 연결을 만드는 기술입니다. VPN의 주요 특징 전체 네트워크 트래픽을 암호화운영체제 수준에서 작동IP 주소 완전 변경모든 애플리케이션에 적용프록시 서버의 이해프록시 서버는 클라이언트와 목적지 서버 사이에서 중계 역할을 하는 서버입니다.프록시 서버의 종류Forward Proxy (포워드 프록시) 클라이언트 -> 프록시 ..

    [Python MongoDB] pymongo - CRUD 작업

    소개MongoDB는 강력한 NoSQL 데이터베이스이며, pymongo는 Python에서 MongoDB를 사용할 수 있게 해주는 공식 드라이버입니다. 이번 글에서는 pymongo를 사용하여 데이터를 다루는 다양한 방법을 자세히 알아보겠습니다.MongoDB 연결 설정from pymongo import MongoClientfrom pymongo.collection import Collectionfrom pymongo.database import Databasefrom typing import Optional, Dict, Listclass MongoDBManager: def __init__(self, uri: str, db_name: str): """ MongoDB 연결 관리자 ..

    FastAPI 애플리케이션 성능 최적화와 캐싱

    소개FastAPI는 이미 높은 성능을 제공하지만, 적절한 최적화와 캐싱 전략을 통해 더 나은 성능을 얻을 수 있습니다. 이번 글에서는 FastAPI 애플리케이션의 성능을 극대화하는 다양한 전략과 캐싱 구현 방법을 알아보겠습니다.데이터베이스 최적화SQLAlchemy 세션 관리# database.pyfrom sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmaker, Sessionfrom contextlib import contextmanagerclass DatabaseManager: def __init__(self, url: str): self.engine = create_engine( url, ..

    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..