python 에서 화면 생성을 위해 사용중인 Jinja2Templates
·
Python
백엔드로 fastAPI 를 사용한 파이썬 프로젝트인데요..백엔드를 결과를 화면에 보여주기 위해서 찾던 중에 Jinja2Templates 이라는 것을 알게되었습니다.Jinja2Templates 는 나중에 재사용할 수 있는 template 객체를 생성해서 화면을 보여주고 있습니다. 예전에 한 프로젝트에서 화면단을 만들때 thymeleaf 라는 템플릿 엔진이라는 것을 사용한 적이 있는데..비슷한것 같기도 하고,,, 암튼, 현재 공부중에 있는 화면은 Jinja2Templates 이라는 것으로 만들었습니다.Windsurf 를 통해서 Claude 3.5 Sonnet 에게 Jinja2Templates 에 대해서 설명을 요청했습니다. Jinja2Templates는 Python의 강력한 템플릿 엔진인 Jinja2를 Fa..
fastAPI + JWT 인증 2 - 토큰 생성 및 검증, 관리
·
Python
로그인을 공부할 때 항상 따라 다녔던 것이 Token 입니다.처음에는 access token 만 있으면 되는걸로 생각했는데, 더 공부하다보면 refresh token 도 필요하다는 것을 알게 됩니다. access token 과 refresh token 에 대해서  이번에는 fastAPI+JWT 를 통해서 토큰을 발행하는 방법과 토큰 검증하는 방법을 코드를 통해서 알아보겠습니다.이 코드도 역시 Windsurf 를 통해서 Claude 3.5 Sonnet  를 통해서 생성한 코드입니다. 먼저 환경설정입니다.# 환경 변수에서 설정 가져오기 또는 안전한 기본값 설정SECRET_KEY = os.getenv("SECRET_KEY", secrets.token_urlsafe(32)) # JWT 서명에 사용할 비밀키AL..
fastAPI + JWT 인증 1
·
Python
fastAPI 를 사용해서 JWT 인증을 구현하고자 합니다.Windsurf 를 통해서 Claude 3.5 Sonnet 으로 자동생성한 파일을 소개합니다.구글 로그인을 통해서 JWT 인증을 구현할 때 보안에 취약하지 않도록 해달라고 요청을 했습니다.일단 ai 는 auth.py 라는 미들웨어 모듈을 생성해주었는데요이 모듈은 JWT 토큰에 대한 검증을 수행하는 모듈입니다."""JWT(JSON Web Token) 인증을 처리하는 미들웨어 모듈.이 모듈은 FastAPI 애플리케이션에서 보호된 엔드포인트에 대한 접근을 제어합니다."""from fastapi import Request, HTTPException, statusfrom fastapi.security import HTTPBearer, HTTPAuthori..
KOSIS 통계정보를 이용한 데이터 조회 방법
·
Python
이번에는 KOSIS(국가통계포털) 에서 제공하는 데이터를 통해 간단한 조회 화면을 만들어 봤습니다.회원 가입하고 나면 이 데이터를 활용할수 있도록 신청을 해야하는데요..활용신청 메뉴에서 신청하면 됩니다. 신청하고 나면 바로 사용자 인증키가 생성됩니다. 다음 개발가이드 메뉴에서 통계목록를 조회하는 화면을 Windsurf 를 통해 Claude 3.5 Sonnet 으로 생성 명령을 주었습니다. 화면은 Streamlit 이라는 파이썬에서 웹 애플리케이션을 쉽고 빠르게 생성해주는 오픈소스 라이브러리입니다.생성된 화면은 아래와 같습니다.  이것을 생성하기 위한 파이썬 코드는 ...import requestsimport pandas as pdimport streamlit as stimport jsondef fetch..
python+fastAPI+postgresql 로 구성된 환경에서 간단한 CRUD 구현1
·
Python
python 도 fastAPI 도 잘 모르지만(기본적인 것만 알고 있음)ai코딩툴을 이용해서 간단한 CRUD 코딩을 해보았습니다.대략 어떻게 흘러가고, 어떻게 데이터를 관리하는지 알아보기 위해서였습니다. 기본적으로 환경설정용으로 .env, .python-version, requirements.txt 파일을 생성했습니다.DB_HOST=localhostDB_NAME=postgresDB_USER=postgresDB_PASSWORD=xxxxxxDB_PORT=5432 requirements.txt 는 pip 패키지목록을 정리해 두고, pip install -r requirements.txt 로 실행하면 모든 패키지를 한번에 설치해 줍니다.fastapi==0.104.1uvicorn==0.24.0sqlalchemy=..
개발자를 위한 AI 툴
·
참고할 내용
최근에 Windsurf 라는 툴을 알고 나서 Windsurf 를 검색하면서, 그리고 사용하면서 알게된 것이 AI 툴인데개발자로서 도움을 받을수 있고, 또 코딩 스타일이나, 코딩 결과물을 통해 개발방법을 알게 해주고 있습니다.특히 어떻게 해결해야할지 모를때, 그리고 개발자로서 디자인(css)적인 부분에서 도움을 받았습니다. chatGPT에게 개발자에게 도움이 될만한 툴을 소개해 달라고 했습니다. Windsurf를 사용하고 있다면, AI 코딩 어시스턴트에 관심이 많을 것 같아! 🚀개발자에게 유용한 AI 툴을 몇 가지 추천해볼게.🛠️ 개발자에게 좋은 AI 툴 추천1️⃣ AI 코드 자동 완성 & 분석Copilot (GitHub) → 코드 자동 완성, 함수 추천Codeium → 무료 AI 코드 자동 완성Tab..
RabbitMQ와 WebSocket 를 이용해서 STT 대화 화면 만들기
·
Back-end
Web 챗팅과 같은 실시간 대화하는 화면을 Claude 3.7 Sonnet 으로 생성해 보았다.Windsurf 툴을 이용해서 spring-boot 프로젝트를 생성하다보니, eclipse 에서 오류가 좀 발생해서프로젝트 생성은 eclipse 를 통해 spring-boot 프로젝트를 생성하고생성된 java 파일을 코딩하면서 만들었다. 만들어진 화면은 이렇게 생겼다.  테스트 결과는 이렇게 나온다. SttController  Publishing message to RabbitMQ: SttMessage(text=MQ로 전송 테스트, speaker=사용자, timestamp=null)SttMessageProducer Sending message to RabbitMQ: SttMessage(text=MQ로 전..
table 에 crud 할 수 있는 python code
·
Python
Windsurf 를 통해서 Claude 3.7 Sonnet 에게 테이블 명을 알려주고, CRUD 함수를 추가한 코드를 작성해 달라고 했습니다. 먼저, 테이블 생성 함수 create_user_test_table 를 정의할 때 테이블이 이미 존재하는제를 확인하면서 생성하네요.그리고 데이터를 입력하고, 조회하고, 수정하고, 삭제하도록 했습니다. import sysfrom db_connect import connect_to_postgres, execute_query, close_connectiondef create_user_test_table(connection): """ Create the user_test table if it doesn't exist """ create_table_qu..