본문 바로가기

728x90
반응형

전체 글

(263)
PgBouncer: connection pool 관리 라이브러리 PostgreSQL의 pool을 관리하는 라이브러리 Connection Pool를 관리하여 postgresql의 부하를 줄여줄 수 있다. 더보기PgBouncer는 PostgreSQL을 위한 **경량(lightweight) 커넥션 풀러(Connection Pooler)**입니다. 수많은 클라이언트(애플리케이션)로부터 오는 데이터베이스 연결 요청을 소수의 실제 데이터베이스 연결로 효율적으로 중계하여, PostgreSQL 서버의 부하를 줄이고 전체 시스템의 성능을 향상시키는 역할을 합니다.쉽게 비유하자면, 인기 있는 클럽 입구에서 입장을 관리하는 **가드(Bouncer)**와 같습니다. 수백 명의 손님(애플리케이션 프로세스)이 한 번에 입장하려 하면 클럽 내부(DB 서버)가 혼잡해져 마비됩니다. 이때 가드(P..
PostgreSQL in Ubuntu - DB insert error: (psycopg2.DatabaseError) error with status PGRES_TUPLES_OK and no message from the libpq # Multi process # fork in Linux(Ubuntu) # spawn in Windows PostgreSQL을 이용하여 데이터베이스를 구축1. Windows에서는 정상2. Linux (Ubuntu) 에서는 아래 오류 발생하는 경우 DB insert error: (psycopg2.DatabaseError) error with status PGRES_TUPLES_OK and no message from the libpq 작업 환경과 사용 라이브러리는 다음과 같다OS: Ubuntu 22.04DB 연결: psycopg2-binaryORM: sqlalchemy 위 에러가 발생하는 코드는 insert query후 commit을 하는 단계에서 발생했다. 문제는 Windows에서는 발생하지 않는데, Ubuntu에서만 발생하는 에러라는 점이다.insert commit 단계에서 발생하는 에러임에도 inse..
CMES: 컨테이너 & 인프라스터디 4회 Kubernetes 구조 및 원리 이해 1. Kubernetes 주요 개념 이해 1-1. 구조 이해하기 다음의 용어들이 무엇인지 간단히 설명하고, 이것들을 이용해 Kubernetes의 Architecture를 그려보세요. Kubernetes kubectl kube-apiserver etcd controller-manager scheduler node kubelet pod 더보기Kubernetes (쿠버네티스): 컨테이너화된 애플리케이션을 자동으로 배포, 확장 및 관리해주는 오픈소스 시스템입니다. 줄여서 'K8s'라고도 부릅니다.kubectl: Kubernetes 클러스터를 제어하기 위한 커맨드 라인 도구(CLI)입니다. 사용자는 kubectl을 통해 클러스터에 명령을 내립니다.kube-apiserver..
Python: threading.Lock VS threading.RLock 병렬 처리를 위한 threading 사용시, DB 접근이 필요한 로직이 있을 경우,데이터 무결성 등을 위해 DB 접근이 동시에 되는 것을 막도록 Lock을 걸어야 한다. 근데 이때, Lock을 건 동일한 프로세스에서 Lock을 풀기 전에 다시 DB에 접근해야 하는 경우가 있다.(이러지 않는게 좋겠지만, 비동기 처리를 고려하지 않은 코드를 비동기 코드로 바꾸면서, 한 프로세스에서 여러 차례의 DB 접근이 있을 때 Lock, Release, Lock, Relase를 일일히 하지 않고 처리하고 싶을 때 등) 이를 가능하게 하는 것이 RLock이다, (Reentrant Lock: 재입장 가능한 잠금)일반 Lock은 Lock을 걸었냐 안 걸었냐를 통해서만 접근을 막는다면RLock은 누가 Lock을 걸었는지,그..
CMES: 컨테이너 & 인프라스터디 3회 실습 주제Docker Compose 및 네트워크 구조 이해목표Docker Compose를 이용하여 여러 컨테이너로 이루어진 로컬 서비스를 구성하는 방법 습득Docker의 볼륨과 네트워크를 활용하여 컨테이너 간 데이터 공유 및 통신 방식 이해1. Docker Compose 로컬 서비스 구성실습 내용간단한 웹 애플리케이션과 데이터베이스(MySQL)를 연결하여 Docker Compose로 서비스 구성과제1. Docker Compose의 정의와 필요성, 구성 요소에 대해 간단히 정리해보세요.더보기Docker Compose란?Docker Compose는 여러 개의 Docker 컨테이너로 이루어진 애플리케이션을 정의하고 실행하기 위한 도구입니다. YAML 파일을 사용하여 애플리케이션의 서비스, 네트워크, 볼륨 등을..
Python: StateMachine 콜백 함수 # state에 따른 콜백 # transition에 따른 콜백 python-statemachine 에서 콜백 함수의 동작 순서 정리 from statemachine import StateMachineclass TestSM(StateMachine): # 상태 정의 idle = State("Idle", initial=True) error = State("Error") # 상태 전의 정의 start_error_init = idle.to(error) def on_enter_error(self): print("idle to error") def on_exit_idle(self): print("exited from idle") def on_start_error_init(self): print..
Python: pyragify와 NotebookLM을 활용한 프로젝트 분석 목적: 처음 접하는 programming repository에 대한 빠른 분석 Tool 들의 사용 이유: - NotebookLM : 자료 정리 및 질문에 대한 AI - pyragify : 프로젝트를 NotebookLM에서 분석이 가능하도록 하나의 .txt 파일 도출 추가설명 - .py 등의 파일 포맷이 NotebookLM에 사용이 불가능 -> 프로젝트 코드들을 하나의 .txt 파일로 변환 사용 예제 1. pyragify를 사용한 코드 추출 .txt 생성 * 출처: pypi - https://pypi.org/project/pyragify/ 1) 설..
Python Crawling: Selenium driver error # --user-data-dir # --headless # selenium.common.exceptions.SessionNotCreatedException: Message: session not created: probably user data directory is already in use, please specify a unique value for --user-data-dir Python의 Selenium 라이브러리를 통해 크롤링을 진행하던 중 아래의 에러를 만났다. selenium.common.exceptions.SessionNotCreatedException: Message: session not created: probably user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir 로컬에서는 이상없이 동작하던 스크립트가 remote 서버에서는 위와 같은 에러를 마주했다.위 에러를 검색하면 stackoverflow나 AI(ChatGPT, Claude 등)는 다음과 같은 해결책을 제시해준다.import ..

728x90
반응형