분류 전체보기 (278) 썸네일형 리스트형 [Milvus] Milvus란? M1 Mac Milvus 개발환경 구성하기 Milvus? - 대규모 벡터 데이터를 위한 오픈소스 벡터 데이터베이스 관리 시스템으로 머신러닝, 딥러닝, 데이터 분석 등과 같은 분야에서 생성되는 다차원 벡터 데이터를 효율적으로 저장하고 검색한다. - 벡터 간의 거리나 유사도를 기준으로 데이터를 검색하는 데 특화되어 있으며, 확장성이 뛰어나 대규모 데이터 세트를 쉽게 처리할 수 있으며, 클러스터 모드와 단일 노드 모드 모두를 지원한다. 자세한 사항은 공식홈페이지에 알아보기 쉽게 정리되어 있다. https://milvus.io/docs Milvus documentation Milvus documentation for Milvus v2.3.x milvus.io - 설치 및 사용법은 M1 Mac을 기준으로 진행함 1 ) Docker 설치 - Milvus s.. [PGvector] PGvector란? Mac Python 개발환경 구성하기 PG_vector - PostgreSQL과 함께 사용할 수 있는 Extension 중 하나로 벡터 데이터를 저장, 쿼리 및 분석하기 위한 기능을 제공한다. 벡터 데이터는 숫자 및 범주형 데이터의 조합으로 구성되며, 주로 머신 러닝, 데이터 분석 및 유사성 검색과 같은 작업에 유용함 https://github.com/pgvector/pgvector GitHub - pgvector/pgvector: Open-source vector similarity search for Postgres Open-source vector similarity search for Postgres. Contribute to pgvector/pgvector development by creating an account on GitH.. [Fast API] Endpoint Validation (422 Error: Unprocessable Entity) Fast API 애플리케이션 개발 시에 422 Error가 발생할 경우가 있다. 보통 API 요청 시 pydantic으로 정의되어 있는 Request Model에 어긋나기 때문에 발생하는데 그 외에도 endpoint, router 선언 기준/선언 순서에 따라 endpoint가 겹치는 현상이 발생하여 오류 추적이 어려울 때가 존재하여 그 내용을 정리하였다. Endpoint 정의 및 순서에 따른 이슈 : 서로 다른 두 개의 API를 선언하고 테스트 결과를 확인해 보았다. from fastapi import Body, FastAPI, Path from model import UserInfo, UserStatus app = FastAPI() # 사용자 정보 수정 API @app.put("/user/{id}") .. [Fast API] 동기, 비동기 함수 blocking / non-blocking Fast API에서는 비동기적 프로그래밍이 가능하다. 이로 인해 동시성을 보장하고 NodeJS 및 Go와 대등할 정도로 매우 높은 성능을 보장한다고 한다. 그렇다면 Fast API의 모든 함수는 비동기 즉 async로 선언하면 되는가? 비동기는 빠르기 때문에? : 이에 대한 해답을 찾기 위해 테스트를 진행했다. 또한, 특정 함수가 blocking 되어 서비스가 정상동작하지 않는 이슈를 경험하여 내용을 정리하였다. 공식문서에서는 동시성과 async / await을 다음과 같이 설명하고 있다. 만약 당신의 응용프로그램이 (어째서인지) 다른 무엇과 의사소통하고 그것이 응답하기를 기다릴 필요가 없다면 async def를 사용하십시오. 모르겠다면, 그냥 def를 사용하십시오. 참고: 경로 작동 함수에서 필요한 만.. [FastAPI] ASGI uvicorn Server 비동기 동작원리 Fast API는 기본적으로 ASGI의 한 종류인 uvicorn을 사용하고 있음 이로 인해 비동기적 프로그래밍이 가능한 것인데 어떻게 동작하는지 알아보자 ASGI(Asynchronous Server Gateway Interface) : Python 웹 애플리케이션을 비동기식으로 처리하기 위한 웹 서버와 애플리케이션 간의 표준 인터페이스 기존 WSGI의 한계를 극복하기 위해 개발된 인터페이스 WSGI(Web Server Gateway Interface) : Python 프로그램과 웹 서버 간의 표준 인터페이스 ASGI와 다르게 동기식으로 동작하여 동시성 처리에 어려움이 있다. Uvicorn : Python 웹 애플리케이션을 ASGI 서버로 실행할 수 있는 명령 줄 도구 비동기적 프로그래밍 : 프로그램의 흐.. [DB] Single Block I/O vs Multi Block I/O SQL 서적을 읽던 중 Single Bolck I/O와 Multi Block I/O에 관한 설명을 접하게 되었고 지금까지 개발을 하면서 지금까지 생각해 왔던 것과는 다른 새로운 개념을 알게 되어 글로 작성하였다. DB에서 I/O란? - SQL이 느려지는 이유는 보통 디스크 I/O 때문이라고 보면 된다. - 책에서는 I/O = 잠(Sleep)이라고 표현했다. - OS 또는 I/O 서브시스템이 I/O를 처리하는 동안 프로세스는 잠을 자기 때문이다. 즉, I/O를 처리하는 동안 다음 동작을 행할 수 없으니 텀이 발생하게 되고 이것을 "잠"이라고 표현한 것 같다. Single Block I/O? - 한 번에 한 블록씩 요청해서 메모리에 적재하는 방식 - 인덱스가 보통 Single Block I/O 방식으로 디스.. [Python] FastAPI 사용하기 - DB Connection - Fast API 공식 문서를 참고하여 DB Connection을 진행했습니다 공식문서: https://fastapi.tiangolo.com/ko/tutorial/sql-databases/?h=db#read-data SQL (Relational) Databases - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com - Fast API의 기본적인 DB 활용방법은 ORM이라고 합니다. SQLAlchemy 설치 $ pip install sqlalchemy database.py from sqlalchemy import create_engine from .. [Python] FastAPI 사용하기 - 가상환경 , requirements.txt 설정 - 파이썬에는 기본적으로 가상환경을 제공합니다. 혼자서 한 개의 프로젝트를 진행한다면 사용하지 않아도 되겠지만, 협업 또는 현재 진행하는 프로젝트가 여러 개일 경우 로컬에 설정되어 있는 파이썬 버전 및 부가적으로 필요한 DI 항목들을 쉽고 빠르게 관리하기 위해서는 파이썬의 가상환경을 활용하는 것이 도움이 되기 때문에 프로젝트 진행에 앞서 가상환경을 설정하였습니다. 가상환경 설치 및 생성 $ python3 -m pip install virtualenv $ virtualenv venv --python=python3.11 - 버전은 생략해도 됩니다."--python=python3.11" - 실행 후 해당 작업 디렉터리에 venv라는 가상환경 폴더가 생성됩니다. - 해당 폴더에는 가상환경에 필요한 파일들이 존재.. 이전 1 2 3 4 5 ··· 35 다음