728x90
반응형
SMALL

FastAPI 14

🚀 [Swagger TypeScript API 활용] 5강. 프로젝트 확장 & 배포 전략: 대규모 환경에서의 고급 팁

이전 강의까지 FastAPI + Swagger (OpenAPI) + TypeScript 클라이언트 + **React(Vite)**를 연동해보았는데요. 시리즈 마지막인 5강에서는 실제 운영 환경에서 생길 수 있는 확장성과 배포 이슈, 그리고 대규모 팀/조직에서 적용할 때 유용한 고급 팁을 중심으로 살펴보겠습니다.1. 대규모 프로젝트에서 고려해야 할 사항1) 자동 생성된 코드 관리 전략별도 Git 서브모듈 혹은 npm 패키지화자동 생성된 코드를 메인 프로젝트와 분리해 버전 관리를 체계적으로 할 수 있습니다.예: 회사 내부에서 API 클라이언트를 npm 패키지 형태로 배포하여, 여러 앱이 동일한 인터페이스를 사용하도록 유지..gitignore 설정빌드 결과물로 간주하여, 매 빌드 시마다 생성하고 배포하려는 경..

🚀 [Swagger TypeScript API 활용] 4강. 클라이언트 코드 활용 & React(Vite) 프로젝트 적용하기 (Todo 예제 연동)

이전 3강에서 FastAPI Todo 백엔드를 구축하고, /openapi.json을 활용해 swagger-typescript-api로 TypeScript 클라이언트 코드를 자동 생성하는 과정을 살펴봤습니다. 이번 강의에서는 해당 클라이언트 코드를 Vite 기반 React 프로젝트에 연동해 실제 화면에서 Todo 데이터를 표시하고 조작하는 방법을 안내합니다.1. Vite 기반 React 프로젝트 생성Vite는 경량화된 번들러이자 개발 서버입니다. React를 TypeScript와 함께 쓰기에 최적화되어 있습니다.npm create vite@latest my-react-app -- --template react-tsmy-react-app: 프로젝트 폴더명--template react-ts: TypeScrip..

🚀 [Swagger TypeScript API 활용] 3강. OpenAPI 스펙 작성 & 클라이언트 코드 생성 (FastAPI Todo 예제)

이번 강의에서는 FastAPI로 간단한 Todo 리스트 백엔드를 구축하고, 해당 API의 OpenAPI 스펙을 통해 swagger-typescript-api로 클라이언트 코드를 자동 생성하는 전 과정을 살펴봅니다. 이를 통해 실제 프로젝트와 유사한 상황을 체험해볼 수 있을 것입니다.1. FastAPI로 간단한 Todo 백엔드 구성하기1) FastAPI 설치먼저 Python 환경에서 FastAPI와 Uvicorn을 설치해줍니다.pip install fastapi uvicorn sqlalchemy2) 프로젝트 구조 예시fastapi-todo/├── main.py└── requirements.txtmain.py에 라우팅, 모델, API 로직을 정의합니다.3) Todo 모델 및 API 라우팅main.py:# b..

🚀 [Swagger TypeScript API 활용] 2강. 개발 환경 세팅 & 설치 가이드

이전 1강에서 Swagger TypeScript API의 도입 목적과 커리큘럼을 살펴봤습니다. 이번 2강에서는 개발 환경 세팅과 설치 가이드를 구체적으로 안내합니다. **FastAPI(백엔드)**와 **React(Vite)(프론트엔드)**를 같은 저장소에서 운영한다는 가정 하에, 프로젝트 디렉토리 구성 예시도 함께 제시합니다.1. 전체 프로젝트 디렉토리 구성 예시아래는 **백엔드(FastAPI)**와 **프론트엔드(React + Vite)**를 모노레포 방식으로 관리하는 기본 예시입니다. 실제 상황에 맞게 유연하게 조정할 수 있습니다.my-project/├── backend/│ ├── main.py│ ├── requirements.txt│ └── ...(FastAPI 관련 파일들)├── fro..

🚀 [Swagger TypeScript API 활용] 1강. 왜 Swagger TypeScript API를 배워야 할까?

안녕하세요! 이번 시리즈에서는 swagger-typescript-api를 활용해 OpenAPI 스펙에서 자동으로 타입 안전(Type-safe)한 클라이언트를 생성하는 과정을 단계적으로 살펴보겠습니다.개발 현장에서 API 연동 업무를 빠르고 정확하게 처리하고 싶은 분들에게 큰 도움이 되길 바랍니다. 😎1. 왜 Swagger TypeScript API인가?1) 목적 & 필요성자동화된 API 클라이언트 생성: OpenAPI 스펙 기반으로 API 스텁(stub)을 쉽고 빠르게 만들 수 있어요.타입 안전성 극대화: TypeScript를 이용하므로, 컴파일 단계에서부터 오류를 예방할 수 있습니다.개발 속도 향상: 반복 작업을 줄이고, 주요 비즈니스 로직에 집중할 수 있게 해줍니다.💡 Tip: 반복적이고 실수가 ..

📚[FastAPI] 9장. Google 로그인 연동: OAuth2 Social Login 전략과 실습 적용

안녕하세요! 이번 9장에서는 Google 로그인을 FastAPI 백엔드에 연동하는 전략을 살펴보고, 간단한 React 프런트엔드 예시코드를 통해 실제 구현 방법을 안내해 드리겠습니다. 일반적인 소셜 로그인의 핵심은 OAuth2 프로토콜을 활용하여 Google 계정 정보를 인증하고, 사용자에게 편리한 로그인을 제공하는 것입니다.아래 내용을 학습하면 Google OAuth2 기반의 소셜 로그인 과정을 이해하고, 이를 기존 FastAPI 인증 흐름(JWT, 세션 등)에 자연스럽게 연결할 수 있게 됩니다. 또한, React 프런트엔드에서 Google 로그인 버튼을 배치하고 인증 결과를 백엔드로 전송하는 간단한 예시 코드도 함께 살펴보겠습니다.9.1. 왜 Google 로그인이 필요한가?사용자 경험 향상별도의 회원..

📚[FastAPI] 8장. 종합 프로젝트 실습: 간단한 블로그 API 구현하기

안녕하세요! 이번 글에서는 지난 장들에서 배운 내용을 종합하여 Poetry 기반 FastAPI 백엔드를 실제로 간단한 블로그 API 형태로 구현해보겠습니다. 데이터베이스 연동부터 인증(로그인/권한), 비동기 작업, 테스트, 그리고 Docker를 통한 배포까지 한 번에 살펴보며, 실제 운영 환경에 가까운 시나리오를 체험해 볼 수 있습니다.목표User 모델과 게시글(Post), 댓글(Comment) 기능을 구현JWT 인증을 통한 로그인/회원가입CRUD API 작성과 테스트Docker Compose로 한꺼번에 배포 & 실행8.1. 프로젝트 요구사항 정의8.1.1. 기능 목록회원가입 & 로그인email + password로 회원가입비밀번호는 해시(bcrypt) 적용로그인 시 JWT 토큰 발급게시글(Post) C..

📚[FastAPI] 7장. 비동기 작업 및 배포: Celery, Docker로 확장성 높이기

안녕하세요! 이번 포스팅에서는 비동기 작업 처리와 배포 전략을 중점적으로 살펴보겠습니다. 현대적인 웹 애플리케이션은 단순 동기 REST API만으로는 부족할 때가 많습니다. 예를 들어 이미지 처리, 이메일 발송, 데이터 분석 등 시간이 오래 걸리는 작업은 비동기로 처리해야 서버의 응답성을 유지할 수 있습니다. 또한, 애플리케이션을 확장하기 위해선 Docker 컨테이너 기반으로 배포하는 전략이 필수에 가까워졌습니다.이번 장에서는 Celery + Redis 조합을 통해 비동기 작업을 구현하고, Docker 및 Docker Compose를 이용해 FastAPI 애플리케이션을 손쉽게 배포·관리하는 방법을 자세히 알아보겠습니다.7.1. 비동기 작업의 필요성7.1.1. 언제 비동기 처리가 필요한가?장시간 연산: 대..

📚[FastAPI] 6장. 테스트 및 디버깅: Pytest 활용과 품질 보증

안녕하세요! 이번 글에서는 FastAPI 애플리케이션의 테스트(Test) 및 디버깅(Debugging) 전략을 살펴보겠습니다. 이전 장들에서 RESTful API, 인증, DB 연동 등 백엔드의 주요 기능들을 구현했는데요, 제대로 작동하는지 신뢰성을 확보하기 위해서는 자동화된 테스트가 필수입니다.특히 Python 에서 많이 사용되는 Pytest와 FastAPI 자체 기능인 TestClient를 통해, API 통합 테스트부터 단위(Unit) 테스트까지 체계적으로 커버하는 방법을 소개합니다. 또한 디버깅 기법, 로깅(Logging) 설정 등 품질을 높이는 다양한 팁도 함께 알아보겠습니다.6.1. 테스트의 중요성6.1.1. 왜 테스트가 필요한가?신뢰성(Confidence) 확보: 코드 수정이나 리팩토링 후에도..

📚[FastAPI] 5장. 인증 및 권한 관리: JWT를 활용한 보안 강화

안녕하세요! 이번 포스팅에서는 FastAPI 애플리케이션에 **인증(Authentication)**과 권한 관리(Authorization) 기능을 추가하여 API 보안을 한층 강화하는 방법을 다루어보겠습니다. 현대 웹 서비스에서는 단순한 CRUD만으로는 충분하지 않으며, 사용자 식별과 권한 부여가 반드시 필요합니다.특히 JWT(JSON Web Token)를 이용해 토큰 기반 인증을 구현하고, OAuth2 흐름을 적용함으로써 더욱 안전하고 유연한 인증 시스템을 구성할 수 있습니다. 이번 장을 통해 로그인/로그아웃, 사용자 역할(Role) 설정 등 핵심 인증 로직을 차근차근 익혀봅시다.5.1. JWT 개념과 작동 원리5.1.1. JWT(JSON Web Token)란?JWT는 인증 정보를 JSON 형태로 담아..

728x90
반응형
LIST