반응형

분류 전체보기 461

FastAPI Depends 예제 및 장점 간단 정리

fastapi의 Depends를 통하여 의존성 주입을 하는 간단한 예제를 통해서사용하면 좋은 이유와 사용 방법을 간략하게 요약해보도록 하겠습니다.  FastAPI Depends 사용 예제 - 토큰 검사예를 들어 토큰을 통하여 요청을 진행하는 API가 있다고 가정해 보겠습니다.이를 위해 토큰 - 유저 매칭을 진행하는 함수를 다음과 같이 작성해 보았습니다.from fastapi import FastAPI, Depends, HTTPExceptionapp = FastAPI()# admin token이 abcde, 일반 유저 token이 12345라고 가정user_info = {"abcde" : "admin", "12345" : "user1"}def get_current_user(token: str): if..

Python/Backend 00:01:50

도커 컨테이너 종료 / 삭제 및 이미지 제거 방법

실행 중인 Docker container를 중지하고 더 이상 사용되지 않을 컨테이너를제거하는 방법, 그리고 컨테이너를 생성했던 이미지까지 삭제하는 방법을차례대로 하나씩 정리해보도록 하겠습니다.  Docker 컨테이너 중지 방법먼저, docker ps 명령어로 실행 중인 도커 id 혹은 이름을 확인합니다. 이후, 다음과 같은 명령어로 도커 컨테이너 종료가 가능합니다.docker stop [컨테이너 ID 또는 이름]# 실제 사용 예제(id가 a1b2c3d4e5, name이 mysql인 경우 둘 다 가능)docker stop a1b2c3d4e5docker stop mysql  Docker 컨테이너 삭제 방법컨테이너 실행 종료 이후, 해당 container를 더 이상 사용하지 않을 계획이라면컨테이너 삭제를 진행..

Infra/Docker 2024.05.10

FastAPI에서 MongoDB 데이터 연동 CRUD 예제

안녕하세요. 아래 링크의 지난 글에서는 fastapi의 CRUD 메소드 사용 방법을 알아보았습니다. FastAPI get, post, patch, delete 예제 코드 정리파이썬의 대표 백엔드 모듈인 FastAPI에서 get, post, patch, delete 메소드를 구현하는 방법을 간단한 예제를 통하여 정리해보도록 하겠습니다. get 메소드 예시 간단한 유저 데이터를 저장하는 상황을jimmy-ai.tistory.com 이어서 이번에는 실제 데이터베이스를 연동해서 fastapi를 활용하는 방법을 살펴볼 것인데요.key-value 형태로 데이터를 저장하는 경우 대표적으로 활용 가능한 NoSQL 데이터베이스인MongoDB를 연동하는 예제를 여기서 살펴보도록 하겠습니다.  MongoDB 생성 및 파이썬에..

Python/Backend 2024.05.06

파이썬에서 값 암호화 해싱 및 검증 방법(bcrypt 모듈)

유저의 비밀번호 등의 중요 정보를 데이터베이스에 저장하기 위해서는 반드시값 암호화 해싱을 해야하는데요. Python의 경우에 편하게 활용이 가능한bcrypt 모듈의 기능에 대하여 간단한 예제를 통해서 살펴보도록 하겠습니다. 해당 모듈 설치는 다음 명령어로 진행해주시면 됩니다.pip install bcrypt  유저의 비밀번호 해싱 방법유저의 비밀번호를 input으로 받아 해싱된 결과를 반환받는 함수는 다음과 같습니다.참고로 gensalt()로 실행 시 같은 값을 해싱하더라도매번 다른 값이 출력되도록 만들기에 보안 상 이점이 큽니다.import bcryptdef hash_password(user_pw: str) -> str: hashed_pw: bytes = bcrypt.hashpw(user_pw.e..

Python/Utils 2024.05.02

종료된 도커 컨테이너를 찾고 재실행하는 방법

Docker container가 중지된 경우, 해당 컨테이너의 id를 찾고다시 실행하는 명령어에 대하여 간략하게 정리해보도록 하겠습니다.  종료된 Docker 컨테이너 id 탐색 명령어일반적인 docker ps 명령어로는 현재 실행 중인 도커 컨테이너들만 조회가 됩니다.중지된 도커 컨테이너까지 함께 조회하기 위해서는 docker ps -a 명령어로-a 추가 옵션을 같이 지정해주어야 합니다. STATUS 항목이 다음과 같이 Exited로 되어있는 컨테이너가 종료된 컨테이너에 해당됩니다.CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS ..

Infra/Docker 2024.04.28

FastAPI get, post, patch, delete 예제 코드 정리

파이썬의 대표 백엔드 모듈인 FastAPI에서get, post, patch, delete 메소드를 구현하는 방법을간단한 예제를 통하여 정리해보도록 하겠습니다.  get 메소드 예시간단한 유저 데이터를 저장하는 상황을 가정해보고,먼저 전체 유저의 정보를 가져오는 코드를 작성해보도록 하겠습니다.from fastapi import FastAPI, HTTPExceptionfrom pydantic import BaseModelfrom typing import Listapp = FastAPI()# 데이터베이스 역할을 할 간단한 딕셔너리db = {}# 데이터 모델 정의class User(BaseModel): id: int username: str email: str# 전체 유저의 정보들을 리스트로 반..

Python/Backend 2024.04.24

JavaScript에서 ChatGPT API 호출 방법 코드 예제

자바스크립트에서 GPT 등의 openai 모델에 대한 API를 호출하는 방법을 간략한 코드 예제로 쉽게 정리해보도록 하겠습니다. 1. 프롬프트 준비 우선, 프롬프트 목록에 대한 리스트를 아래와 같은 양식으로 준비해 줍시다. const messages = [ { role: 'system', content: "답변은 항상 한국어로 해주세요."} { role: 'user', content: "Who is the first president of USA?"} ] 2. GPT 호출 파라미터 준비 이후, openai api 호출을 위한 json input 양식을 준비해줍시다. 예시는 다음과 같습니다.(위에서 정의한 messages 변수를 사용합니다.) const gptInput = { model: 'gpt-3.5-..

파이썬 redis 유효 시간 ttl 설정 방법 예제

Python에서 redis 데이터베이스를 활용할 때, 특정 key에 대한 유효 시간인 ttl을 설정하는 방법을 간략한 예제를 통하여 다루어보도록 하겠습니다. 다음 예시는 redis 데이터베이스의 유효 시간을 1분으로 설정하는 예시입니다. import redis # redis 데이터베이스 연결 r = redis.Redis(host='localhost', port=6379, db=0) r.set('my_key', 'my_value') # my_key - my_value를 쌍으로 가지는 데이터 저장 r.expire('my_key', 60) # 키 'my_key'의 TTL을 1분으로 설정(초 단위) 위의 예제처럼 데이터베이스의 expire 메소드를 통하여 해당 key에 대해서 원하는 유효 시간을 초 단위로 설정..

Python/Utils 2024.04.16

[React] 페이지 이동 기능 useNavigate 훅 사용 방법 정리

리액트에서 페이지 이동을 구현하는 과정에서 useNavigate는 매우 유용하게 사용됩니다. 상세한 이해를 위하여 해당 훅의 사용 방법에 대하여 간략하게 요약해보도록 하겠습니다. 1. 설치 및 임포트 방법 useNavigate는 react-router-dom 라이브러리에 포함된 훅으로, 해당 라이브러리가 설치되지 않은 경우, 먼저 설치를 진행해주셔야 합니다. // npm을 사용하는 경우 npm install react-router-dom // yarn을 사용하는 경우 yarn add react-router-dom 임포트 및 훅 사용을 위하여 객체를 선언하는 코드 예시는 다음과 같습니다. import { useNavigate } from 'react-router-dom'; const navigate = u..

poetry 환경 내에서 fasttext 설치 오류 해결 방법

오류 개요 poetry로 관리하는 패키지의 의존성으로 fasttext 모듈을 설치하는 과정에서 다음과 같은 오류가 발생하였습니다. Using version ^0.9.2 for fasttext Updating dependencies Resolving dependencies... (0.6s) Package operations: 1 install, 0 updates, 0 removals - Installing fasttext (0.9.2): Failed ChefBuildError Backend subprocess exited when trying to invoke get_requires_for_build_wheel /tmp/tmpp1lp42ow/.venv/bin/python: No module named pi..

Python/Debugging 2024.04.08
반응형