본문 바로가기

전체 글32

내 코드로 Kakao와 Naver를 활용 할 수 있다면? 1. Kakao & Naver OAuth2 개요 및 준비 사항Kakao와 Naver는 자체 OAuth2 인증 서버를 제공하여 사용자가 계정 정보를 이용해 로그인할 수 있도록 지원합니다.이를 FastAPI와 연동하면, 별도의 회원가입 없이도 안전하게 사용자 인증을 처리할 수 있습니다.1. Kakao Developer 설정 https://developers.kakao.com 접속 내 애플리케이션 → 앱 생성 플랫폼 → Redirect URI 추가: http://localhost:8000/auth/kakao/callback REST API 키 확인2. Naver Developer 설정 https://developers.naver.com → 애플리케이션 등록 Callback URL: http://lo.. 2025. 7. 1.
내가 만든 프로그램을 세상에 알려보자 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)란 무엇인가?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 기본 구조와 실행 방법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로 파이썬 앱을 컨테이너화하는 방법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.