본문 바로가기

전체 글41

[파이썬 심화] 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.
[파이썬 심화] CI/CD의 뜻, GitHub Actions 자동화, 유형별 활용 방안 CI/CD란 무엇인가?CI (Continuous Integration)는 코드가 변경될 때마다 자동으로 빌드, 테스트, 병합 과정을 수행하는 시스템입니다.CD (Continuous Deployment)는 테스트를 통과한 코드를 자동으로 배포하는 과정까지 포함합니다.CI/CD가 필요한 이유 테스트 누락 방지 버그 조기 발견 및 품질 유지 협업 및 코드 리뷰 효율 향상 배포 속도 자동화 → 개발 집중도 향상파이썬 프로젝트에서는 pytest로 테스트 코드를 작성하고, GitHub Actions를 통해 자동 실행되는 테스트 파이프라인을 구축할 수 있습니다.GitHub Actions로 테스트 자동화 설정하기GitHub Actions는 GitHub에서 제공하는 무료 CI/CD 도구입니다.코드 푸시(pus.. 2025. 4. 15.