본문 바로가기

심화19

[파이썬 심화] OAuth2 소셜 로그인 연동, Google OAuth2 로그인 구현, FastAPI에서 OAuth2 + 소셜 로그인 연동하기 (Google OAuth2 예제)OAuth2 소셜 로그인 개념 정리OAuth2는 외부 서비스를 통해 로그인과 인증을 위임하는 프로토콜입니다.Google, Kakao, Naver 같은 플랫폼을 통해 로그인 기능을 제공받는 것이 대표적인 예입니다.OAuth2 인증 흐름 요약클라이언트가 소셜 로그인 버튼 클릭소셜 플랫폼의 인증 서버로 리디렉션사용자가 로그인 및 권한 승인서버가 인증 코드를 받아 access_token 획득access_token으로 사용자 정보 조회FastAPI에서 OAuth2를 쓰는 이유별도 회원가입 없이 로그인 구현 가능보안성 높고, 사용자 인증/프로필 관리 용이다양한 플랫폼과 손쉬운 연동 (Google, GitHub, Kakao 등)F.. 2025. 4. 19.
[파이썬 심화] JWT(Json Web Token), FastAPI에서 JWT 인증, 인증 보안 강화 JWT(Json Web Token)란 무엇인가?JWT는 사용자 인증을 위해 서버와 클라이언트가 서명된 토큰(JSON 형식)을 주고받는 방식입니다.토큰 기반 인증의 대표적인 기술로, REST API 구조에서 세션 없이 인증 상태를 유지할 수 있습니다.JWT의 구성header.payload.signatureHeader: 토큰의 유형(JWT)과 해시 알고리즘Payload: 사용자 ID, 권한 등 클레임(정보)Signature: 비밀키로 서명한 해시값 (위조 방지)FastAPI에서 JWT를 쓰는 이유세션 없이 API 간 인증 처리 가능모바일/프론트엔드와 연동 용이OAuth2 기반으로 확장성 확보FastAPI에서 JWT 인증 구현하기FastAPI에서는 python-jose 패키지를 이용해 JWT 토큰을 발급하고 .. 2025. 4. 19.
[파이썬 심화] FastAPI 구조, Docker 배포방법, OpenAPI 문화활용 FastAPI 기본 구조와 실행 방법FastAPI는 빠르고 간결한 문법으로 유명한 Python 웹 프레임워크입니다.Pydantic을 활용한 데이터 검증, 자동 Swagger UI, 비동기 지원이 특징이며, API 서버 제작에 최적화되어 있습니다.1. FastAPI 설치pip install fastapi uvicornuvicorn은 FastAPI 앱을 실행하기 위한 ASGI 서버입니다.2. 기본 앱 예제 (main.py)from fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"message": "Hello FastAPI"}3. 앱 실행uvicorn main:app --reloadmain: 파일명 (main.py)a.. 2025. 4. 17.
[파이썬 심화] Docker 사용법 , Github Action, 실전 활용 팁 Docker로 파이썬 앱을 컨테이너화하는 방법Docker는 파이썬 애플리케이션을 OS에 독립적인 컨테이너로 감싸 배포하는 기술입니다.Python 코드, 라이브러리, 설정까지 하나의 이미지로 패키징하면 어디서든 동일한 환경으로 실행할 수 있습니다.1. 기본 프로젝트 구조myapp/├── app.py├── requirements.txt└── Dockerfile2. app.py 예제from flask import Flaskapp = Flask(__name__)@app.route("/")def home(): return "Hello, Docker!"3. requirements.txtflask==2.3.24. Dockerfile 작성# Python 이미지 기반FROM python:3.10-slim# 작업 디.. 2025. 4. 17.
[파이썬 심화] 정적 분석의 의미, 대표적 도구, 실무에의 활용 정적 분석이란 무엇인가?정적 분석(Static Analysis)은 코드를 실행하지 않고, 문법 오류, 스타일 위반, 잠재적 버그 등을 미리 찾아내는 기술입니다.파이썬에서는 여러 가지 오픈소스 도구를 통해 정적 분석을 수행할 수 있으며, 특히 협업과 대규모 프로젝트에서 매우 유용합니다.정적 분석의 장점 코드 일관성 유지 코드 리뷰 부담 감소 숨겨진 잠재 버그 조기 발견 자동 포맷팅으로 시간 절약아래에서는 대표적인 파이썬 정적 분석 도구인 flake8, pylint, black, isort를 소개하고, 실무 적용 예제를 설명합니다.대표 도구별 역할과 사용법1. flake8 – 문법 검사 및 스타일 점검pip install flake8flake8 your_script.py기능: PEP8 스타일 위반, .. 2025. 4. 16.
[파이썬 심화] 타입 힌트의 의미, 실무 적용, 자동 문서화 도구 사용법 타입 힌트(Type Hint)란 무엇인가?파이썬은 동적 타입 언어지만, 타입 힌트(Type Hinting)를 사용하면 코드의 의도를 명확히 표현할 수 있습니다.Python 3.5 이상부터 도입된 타입 힌트는 에디터의 자동완성, 정적 분석, 문서 생성 등에 매우 유용하게 사용됩니다.기본 예제def add(a: int, b: int) -> int: return a + b해석: a: int, b: int: 매개변수의 예상 타입 -> int: 반환값의 예상 타입이 힌트는 컴파일러에 영향을 주지는 않지만, 에디터, IDE, linter가 이를 활용해 오류를 미리 감지해줍니다.복잡한 타입 사용from typing import List, Dict, Optionaldef get_scores(names: Lis.. 2025. 4. 15.