파이썬
Hugging Face Transformers: pipeline으로 AI 모델 쉽게 사용하기
# 설치pip install transformersHugging Face의 Transformers 라이브러리는 자연어 처리(NLP), 컴퓨터 비전, 음성 인식 등 다양한 분야의 최신 AI 모델을 쉽게 활용할 수 있게 해주는 강력한 도구입니다. 그중에서도 pipeline 함수는 복잡한 모델 사용 과정을 단 몇 줄의 코드로 간소화해주는 마법 같은 기능입니다.이 글에서는 from transformers import pipeline을 활용하여 다양한 AI 작업을 손쉽게 수행하는 방법을 알아보겠습니다.pipeline의 기본 개념pipeline 함수는 모델 로딩, 전처리, 후처리 등 AI 모델 사용의 모든 단계를 추상화하여 제공합니다. 사용자는 단 몇 줄의 코드로 강력한 AI 모델의 기능을 활용할 수 있습니다.fr..
Pydantic ConfigDict: 모델 동작 커스터마이징 가이드
Pydantic은 Python의 타입 주석을 사용하여 데이터 검증과 설정 관리를 제공하는 라이브러리입니다. ConfigDict는 Pydantic 모델의 동작을 세부적으로 제어할 수 있게 해주는 중요한 요소입니다. 이를 통해 모델 검증, 직렬화, 필드 처리 등의 다양한 측면을 커스터마이징할 수 있습니다.ConfigDict의 기본 개념ConfigDict는 Pydantic 모델의 설정 옵션을 정의하는 사전 형태의 구성입니다. 이를 통해 모델이 어떻게 작동할지 세밀하게 제어할 수 있습니다.Pydantic v1에서는 내부 Config 클래스를 사용했지만, v2에서는 model_config 클래스 변수를 통해 설정하는 방식으로 변경되었습니다.Pydantic v1 vs v2의 ConfigDict 사용법v1 방식 (내..
KoNLPy: 한국어 자연어 처리 라이브러리
# 설치pip install konlpyKoNLPy란?KoNLPy(Korean Natural Language Processing in Python)는 한국어 텍스트 처리를 위한 파이썬 라이브러리입니다. 형태소 분석, 품사 태깅, 정규화 등 다양한 한국어 자연어 처리 기능을 제공합니다.주요 형태소 분석기 비교분석기속도정확도특징Okt (구 Twitter)중간중간고유명사 인식, 신조어 처리Mecab매우 빠름높음C++로 구현, 빠른 처리 속도Hannanum느림중간자바 기반, 상세한 품사 분류Kkma매우 느림높음정교한 분석, 복합명사 인식Komoran중간높음사용자 사전 확장 용이기본 사용법from konlpy.tag import Okt, Mecab, Hannanum, Kkma, Komoran# Okt 형태소 분석..
FastAPI Response Set-Cookie와 HttpOnly 보안 구현
FastAPI에서 HttpOnly 쿠키를 설정하여 보안을 강화하는 방법을 알아보겠습니다.기본 쿠키 설정from fastapi import FastAPI, Responsefrom fastapi.responses import JSONResponseapp = FastAPI()@app.post("/login")async def login(response: Response): # 기본적인 쿠키 설정 response.set_cookie( key="session", value="abc123", httponly=True, secure=True, samesite='lax', max_age=1800 # 30분 ) return..
Python JSON 라이브러리 비교: json vs ujson vs orjson
# 설치pip install ujsonpip install orjson각 라이브러리의 특징import jsonimport ujsonimport orjson# 기본 jsondata = {"name": "John", "age": 30}json_str = json.dumps(data)json_obj = json.loads(json_str)# ujsonujson_str = ujson.dumps(data)ujson_obj = ujson.loads(ujson_str)# orjsonorjson_bytes = orjson.dumps(data)orjson_obj = orjson.loads(orjson_bytes)성능 비교import timeitimport datetimetest_data = { "string": "..
FastAPI Security: API 보안 구현
# 기본 설치 (FastAPI에 포함되어 있음)pip install fastapi[all]pip install python-jose[cryptography] # JWT 토큰용pip install passlib[bcrypt] # 비밀번호 해싱용OAuth2 비밀번호 인증from fastapi import FastAPI, Depends, HTTPException, statusfrom fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestFormfrom jose import JWTError, jwtfrom passlib.context import CryptContext# 기본 설정oauth2_scheme = OAuth2PasswordBeare..
SlowAPI: FastAPI에서 Rate Limiting 구현
# 설치pip install slowapipip install redis # Redis 백엔드 사용시기본 Rate Limiting 설정from fastapi import FastAPIfrom slowapi import Limiter, _rate_limit_exceeded_handlerfrom slowapi.util import get_remote_addressfrom slowapi.errors import RateLimitExceededlimiter = Limiter(key_func=get_remote_address)app = FastAPI()app.state.limiter = limiterapp.add_exception_handler(RateLimitExceeded, _rate_limit_exceed..
FastAPI Permissions: 권한 관리 구현
# 설치pip install fastapi-permissions기본 권한 설정from fastapi_permissions import ( Allow, Deny, Everyone, Authenticated, configure_permissions, has_permission)class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True) email = Column(String, unique=True) role = Column(String) def __acl__(self): return [ (Allow, "admin", "read"), ..