FastAPI 애플리케이션 Docker로 배포하기
·
파이썬/Fast API
소개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 설정
·
파이썬/Fast API
소개웹 애플리케이션을 개발할 때 미들웨어와 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 사용자 인증 구현하기
·
파이썬/Fast API
소개웹 애플리케이션에서 사용자 인증은 매우 중요한 부분입니다. 이번 글에서는 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의 데이터베이스 연동 쉽게 이해하기
·
파이썬/Fast API
소개웹 애플리케이션에서 데이터베이스는 필수적입니다. 이번 글에서는 FastAPI에서 SQLAlchemy를 사용하여 데이터베이스를 연동하는 방법을 예제와 함께 상세히 알아보겠습니다. 특히 온라인 쇼핑몰의 상품 관리 시스템을 예제로 사용하여 실제 활용 방법을 이해하기 쉽게 설명하겠습니다.데이터베이스 설정하기먼저 필요한 패키지를 설치합니다.pip install sqlalchemy psycopg2-binary# sqlalchemy: 데이터베이스 작업을 위한 ORM# psycopg2-binary: PostgreSQL 연결을 위한 드라이버데이터베이스 연결을 설정합니다:# database.pyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative im..
회원가입 폼 쉽게 만들기 : react-hook-form
·
TypeScript
소개폼(Form) 관리는 웹 개발에서 매우 중요한 부분입니다. React에서 react-hook-form을 사용하면 복잡한 폼 상태 관리와 유효성 검사를 쉽게 구현할 수 있습니다. 이번 글에서는 회원가입 폼을 예제로 react-hook-form의 사용법을 자세히 알아보겠습니다.react-hook-form 설치npm install react-hook-form// oryarn add react-hook-form기본 회원가입 폼 구현import { useForm } from 'react-hook-form';import { useState } from 'react';// 폼 데이터 타입 정의interface SignUpFormData { email: string; password: string; passw..
FastAPI 시작하기 - 설치부터 첫 API 만들기까지
·
파이썬/Fast 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..
데이터베이스 정규화(Normalization)
·
SQL
소개데이터베이스 정규화는 데이터의 중복을 최소화하고 일관성을 보장하기 위한 필수적인 과정입니다. 복잡해 보이는 정규화 과정을 실제 예제와 함께 쉽게 알아보겠습니다.정규화의 필요성데이터베이스 정규화가 왜 필요한지 알아보겠습니다:데이터 중복 방지삽입/수정/삭제 이상 현상 방지데이터 일관성 유지저장 공간 효율화제1정규화 (1NF)첫 번째 단계인 1NF의 핵심 규칙입니다.정의 모든 속성은 원자값(Atomic Value)을 가져야 함반복되는 그룹이 없어야 함기본키를 설정해야 함-- 정규화 전 (반복 그룹 포함)CREATE TABLE student_courses ( student_id INT, name VARCHAR(100), courses VARCHAR(255) -- "수학,영어,과학");-- ..
3D 카드 플립 효과로 배우는 실전 Tailwind 활용법
·
TypeScript
소개Tailwind CSS는 유틸리티 우선 접근방식의 CSS 프레임워크입니다. 이번 글에서는 볼링공 카드의 3D 플립 효과 구현을 통해 Tailwind CSS의 실전 활용법을 자세히 알아보겠습니다.기본 레이아웃 구성기본적인 카드 레이아웃을 구성하는 클래스들입니다.// 카드 컨테이너className="group h-full"// 기본 스타일링className="w-full h-full" // 너비와 높이 100%className="relative" // 자식 요소의 위치 기준점className="absolute" // 부모 요소 기준 절대 위치3D 트랜스폼 효과3D 카드 플립 효과를 구현하는 클래스들입니다.// 3D 효과 기본 설정className="transform-style-pr..