PostgreSQL에선 카탈로그도 시스템 테이블로 구성되어서 사용자도 SQL을 통해 카탈로그를 조회할 수 있다. 해당 카탈로그 테이블의 이름은 pg_catalog 이다. 이 카탈로그 안의 pg_stat_activity 테이블은 세션 정보, 세션 PID, 세션 설명 등의 정보를 담고 있다. 해당 테이블의 로우의 갯수는 커넥션의 갯수이며 제공된 PID를 이용해 세션을 종료할 수 있다. pg_stat_activity 테이블 조회 SELECT * from pg_catalog.pg_stat_activity; 세션의 쿼리 종료 SELECT pg_cancel_backend(PID); 세션 종료 SELECT pg_terminate_backend(PID);
분류 전체보기
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsAC2Y%2FbtsFVvL2lmc%2FSKveTyQfJYMrtaxVPBHl20%2Fimg.png)
SQLModel에서 모든 field를 가져올 때 model.__fields__.keys() 위의 메소드를 많이 사용하곤 한다. 하지만 여기서 키를 못 가져오는 경우가 있는데 필드 이름 앞에 _가 붙은 경우다. 필자의 경우에는 타임스탬프 필드를 가져와야 했는데 필드 이름이 _TIMESTAMP로 되어 있어서 해당 필드를 가져올 수 없었다. 그럴 때 사용할 수 있는 파이썬의 내장 함수가 있다. 필자의 SQLModel 코드는 아래와 같다. from datetime import datetime from typing import Optional from sqlmodel import SQLModel class TestModel(SQLModel): id: Optional[int] author: Optional[str]..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGuyYl%2FbtsFUn16VOZ%2FVUE0WPBHscf6dIR2P23Zo1%2Fimg.png)
카프카 멀티 클러스터 환경에서 성능을 더 높일 수 있는 구조를 고민하다가 네이버 D2에서 Parallel Consumer를 설명한 글을 읽었다. 내용 설명이 너무 잘 되어 있어서 퍼오게 되었다. Kafka를 사용하면서 메시지 동시 처리량을 늘릴 수 있는 가장 쉬운 방법 중 하나는 파티션을 증가시키는 것입니다. 다만 파티션 수는 한번 늘어나면 줄일 수 없기에 신중해야 합니다. Log&Metric 조직에서는 Kafka를 활용하여 사내 로그 관리 시스템을 운영하고 있습니다. 방대한 양의 로그를 빠르게 처리하려다 보니 파티션 수가 굉장히 늘어나 있었으며 많은 파티션 수로 인한 사이드 이펙트도 존재했습니다. 파티션을 늘리지 않고도 동시 처리량을 늘리기 위해 고민하던 중 Parallel Consumer라는 라이브러..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6FdEV%2FbtsFUm9op8l%2FrteNzeTdIM0SDykGxzx4c0%2Fimg.png)
Hive는 Dart로 작성된 빠르고 가벼운 NoSQL(key-value) 데이터베이스입니다. 그리고 다음과 같은 장점이 있습니다. 🚀 의존성이 없기 때문에 크로스 플랫폼(모바일, 데스크탑, 브라우저)에서 사용 가능합니다. ⚡ SharedPreferences와 SQLite보다 성능이 뛰어납니다. (벤치마킹 자료) ❤️ 사용방법이 간단하고 직관적입니다. 🔒 강력한 암호화(encryption)가 내장되어 있습니다. 설치 및 사용방법은 공식 문서에 자세하게 나와있습니다. 문서를 보면서 따라해보겠습니다. 시작하기 프로젝트에 Hive 추가하기 pubspec.yaml 에 다음을 추가합니다. dependencies: hive: ^2.0.4 hive_flutter: ^1.0.0 dev_dependencies: hive_..
Firebase, sharedPreference , async-await 비동기 처리, Landscape (가로모드), Portrait (세로모드) 등... 이와 같은 라이브러리 사용이나 앱설정시에 꼭 해주어야 하는 저 메소드는 무엇을 의미하는가? 1. ensureInitialized란? 말 그대로 초기화된 상태를 보장한다는 의미입니다. 앱의 바인딩이 초기화되었는지를 확인하는데 사용됩니다. 2. ensureInitialized 종류 WidgetsFlutterBinding , ServicesBinding 크게 두가지가 있습니다. WidgetsFlutterBinding.ensureInitialized()와 ServicesBinding.ensureInitialized() 모두 Flutter 애플리케이션의 바인..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLIzSU%2FbtsFS1dtsXW%2FRUtyxCkUY6ib3nV6fnPPEK%2Fimg.png)
PostgreSQL의 Docker 이미지에선 처음 디비를 빌드할 때 /docker-entrypoint-initdb.d/init.sql 위 경로의 sql 스크립트를 실행한다. .env 파일은 아래와 같다. POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres docker-compose.yaml 파일은 아래와 같다. postgresql-default: image: postgres:latest container_name: postgres-default ports: - "5432:5432" env_file: - .env volumes: - ./postgres/default/data:/var/lib/postgresql/data - ./postgres/default/init.sq..