반응형

전체 글 517

쿠버네티스 Node/Pod Affinity와 Taint-Tolerations 개념 정리

kubernetes(k8s) 에서 많이 사용되지만 혼동되는 개념인Affinity와 Taint-Tolerations에 대해서 정리해보도록 하겠습니다.  0. 언제 사용되는 개념인가요?해당 개념들은 Pod를 Node에 배정하는 스케줄링을 진행할 때,조건을 제어하는 용도로 사용됩니다.  1. Node Affinity사용 목적Pod를 특정한 조건을 만족하는 Node에 배정하고 싶을 때 사용합니다.  종류- 필수 조건 (requiredDuringSchedulingIgnoredDuringExecution):반드시 만족해야 하는 조건입니다.해당 조건을 만족하지 않으면 Pod는 해당 노드에 스케줄링되지 않습니다.- 선호 조건 (preferredDuringSchedulingIgnoredDuringExecution):만족..

쿠버네티스 kubectl 주요 명령어 정리

kubernetes(k8s) 클러스터를 다루기 위한 명령줄 도구인 kubectl의기초적인 명령어 목록들에 대하여 간략하게 정리를 해보도록 하겠습니다.  1. 클러스터 / 노드 정보 관련# 클러스터 정보 확인kubectl cluster-info# 노드 정보 확인kubectl get nodes  2. 네임스페이스 관련# 네임스페이스 리스트 확인kubectl get namespaceskubectl get ns# 네임스페이스 생성kubectl create ns # 네임스페이스 삭제kubectl delete ns   3. Pod 관련# 파드 리스트 확인(default namespace 기준)kubectl get podskubectl get pokubectl get po -o wide # 상세 정보 포함# 모든 네..

파이썬 데이터 유효성 검증 모듈 pydantic 사용법 정리

Python은 기본적으로 변수를 정의할 때, 데이터 타입 및 조건 검증 과정을 거치지 않는데요.따라서, 데이터를 정의하는 과정에서 타입 등 유효성 조건이 맞는지 확인하는 과정이 필요하다면별도의 검증 과정을 따로 구현해야 합니다. 이 과정에서 pydantic 모듈을 활용하면 검증 단계를 매우 쉽게 진행할 수 있는데요.이번 글에서는 해당 라이브러리의 사용 방법을 간략하게 예제로 정리해보도록 하겠습니다.  모듈 설치 방법pydantic 모듈은 !pip install pydantic 명령어로 쉽게 설치가 가능합니다.  BaseModel 정의데이터의 타입을 특정 종류로 지정하기 위해서는 BaseModel을 불러와클래스에 상속시켜주는 과정이 필요합니다. 코드의 예시는 다음과 같습니다.from pydantic imp..

Python/Utils 2024.06.05

FastAPI 비동기 세션 처리 AsyncSession 활용 예제(sqlalchemy)

지난 번의 글에서는 FastAPI로 sqlalchemy 활용 CRUD 예제 코드를 다룬 적이 있습니다. FastAPI에서 sqlalchemy 활용 SQL DB CRUD 구현 예제안녕하세요. 아래 링크의 지난 글에서는 NoSQL인 MongoDB를 기준으로fastapi의 CRUD 메소드 구현 방법을 알아보았습니다. FastAPI에서 MongoDB 데이터 연동 CRUD 예제안녕하세요. 아래 링크의 지난 글에서는jimmy-ai.tistory.com 이번 글에서는 해당 포스트의 코드를 비동기로 세션을 처리하는AsyncSession를 활용한 코드로 변경해보도록 하겠습니다.  모듈 설치AsyncSession 처리를 위하여 몇 가지 모듈 설치가 더 필요합니다.필요한 모듈들을 설치하는 예제 명령어는 다음과 같습니다. p..

Python/Backend 2024.06.01

FastAPI Query vs Body 예제 및 특징 비교

fastapi에서 유저에게 요청 파라미터를 받는 방식으로 Query와 Body를 많이 사용하는데요.이번 글에서는 이 두 가지 방식의 구현 방법과 차이에 대해서 간략하게 정리해보도록 하겠습니다.  Query parameters 사용 예제fastapi에서 Query를 이용하여 파라미터 요청을 받는 예시 코드는 다음과 같습니다.from fastapi import FastAPI, Queryapp = FastAPI()@app.get("/items")async def read_items(item_id: int = Query(...), q: str = Query(None)): return {"item_id": item_id, "q": q} 해당 예시에서는 item_id는 필수 파라미터, q는 선택 파라미터가 됩..

Python/Backend 2024.05.27

FastAPI에서 sqlalchemy 활용 SQL DB CRUD 구현 예제

안녕하세요. 아래 링크의 지난 글에서는 NoSQL인 MongoDB를 기준으로fastapi의 CRUD 메소드 구현 방법을 알아보았습니다. FastAPI에서 MongoDB 데이터 연동 CRUD 예제안녕하세요. 아래 링크의 지난 글에서는 fastapi의 CRUD 메소드 사용 방법을 알아보았습니다. FastAPI get, post, patch, delete 예제 코드 정리파이썬의 대표 백엔드 모듈인 FastAPI에서 get, post, patch, delete 메jimmy-ai.tistory.com 이어서 이번에는 관계형 데이터베이스(mysql, postgresql 등)를 기준으로fastapi에서 CRUD 메소드들을 구현하는 방법을마찬가지로 간략한 예제를 통해 정리해보도록 하겠습니다.  SQL 데이터베이스 불러..

Python/Backend 2024.05.23

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 2024.05.17

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

실행 중인 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
반응형