DB

7 posts
pgvector로 PostgreSQL에 벡터 검색 더하기

pgvector로 PostgreSQL에 벡터 검색 더하기

요즘 LLM을 활용한 서비스가 늘면서 "벡터 데이터베이스"라는 말을 자주 듣게 됩니다. 의미 검색이나 RAG를 구현하려면 임베딩 벡터를 저장하고 빠르게 찾아줄 곳이 필요하기 때문인데요. Pinecone, Weaviate, Qdrant처럼 벡터 검색에 특화된 제품도 있고요. 그런데 기존에 PostgreSQL을 쓰고 있는 팀이라면 굳이 새로운 데이터베이스를 하나 더 운영하는 건 부담스러울 수 있죠. 이때 좋은 선택지가 pgvector입니다. PostgreSQL 확장(extension) 형태로 동작하기 때문에 별도 서버를 띄울 필요 없이

Kotlin에서 JDBC API 사용하기

Kotlin에서 JDBC API 사용하기

JDBC(Java Database Connectivity)는 JVM 위에서 돌아가는 애플리케이션이 데이터베이스와 상호작용하는 데 근간이 되는 API입니다. 이번 포스팅에서는 간단한 예제를 통해서 Kotlin에서 JDBC API를 어떻게 사용하는지에 대해서 살펴보도록 하겠습니다. JDBC API 패키지 JDBC API는 java.sql과 javax.sql, 이렇게 두 개의 패키지로 구성되어 있는데요. java.sql 패키지는 데이터베이스 연결, SQL 쿼리 실행, 결과 집합 처리에 필요한 클래스와 인터페이스를 제공합니다. 본 포스팅에

인덱스를 걸었는데 왜 안 탈까?

인덱스를 걸었는데 왜 안 탈까?

데이터베이스 인덱스는 어떻게 조회를 빠르게 만들까?에서 인덱스가 빠른 이유를, 복합 인덱스는 왜 컬럼 순서가 중요할까?에서 컬럼 순서 규칙을 확인했는데요. 그런데 실무에서 더 자주 마주치는 건 이런 상황입니다. 인덱스를 분명히 걸었고 컬럼 순서도 맞췄는데 쿼리가 여전히 느린 경우요. 인덱스는 만들어 두는 것만으로 일하지 않습니다. 쿼리를 어떻게 쓰느냐에 따라 멀쩡한 인덱스가 통째로 무시되기도 하거든요. 이번 글에서는 인덱스가 있는데도 안 타는 경우를 하나씩 재현해 보겠습니다. 실험 준비 실습 데이터는 지난 글에서 쓰던 50만 명짜리

복합 인덱스는 왜 컬럼 순서가 중요할까?

복합 인덱스는 왜 컬럼 순서가 중요할까?

데이터베이스 인덱스는 어떻게 조회를 빠르게 만들까?에서 이메일 하나로 회원을 찾을 때 22ms가 0.002ms로 줄어드는 걸 확인했는데요. 그런데 실무에서 만나는 쿼리는 조건이 하나뿐인 경우가 오히려 드뭅니다. "서울에 사는 30세 회원", "결제 완료된 이번 달 주문"처럼 조건 두세 개가 AND로 엮이는 게 보통이죠. 조건이 여러 개면 인덱스도 여러 개 걸면 될 것 같은데, 실제로는 컬럼을 하나로 묶은 복합 인덱스(composite index)를 만듭니다. 그리고 이때 컬럼을 어떤 순서로 묶느냐에 따라 결과가 크게 달라집니다. 같

데이터베이스 인덱스는 어떻게 조회를 빠르게 만들까?

데이터베이스 인덱스는 어떻게 조회를 빠르게 만들까?

조회가 느리다고 하면 일단 인덱스부터 걸어보게 되는데요. 그런데 막상 "인덱스를 걸면 왜 빨라지나요?"라는 질문을 받으면 말문이 막힙니다. "음... 책 뒤에 있는 색인 같은 거라서요?" 비유는 맞습니다. 다만 비유에서 멈추면 인덱스를 걸었는데도 안 빨라지는 상황을 만났을 때 손을 쓸 수가 없어요. 왜 빨라지는지를 알아야 왜 안 빨라지는지도 알 수 있으니까요. 이번 글에서는 50만 행짜리 데이터베이스를 직접 만들어놓고, 인덱스를 걸기 전과 후에 그 안에서 실제로 무슨 일이 벌어지는지 눈으로 확인해 보겠습니다. 실습은 SQLite로

AWS 데이터베이스 서비스 훑어보기

AWS 데이터베이스 서비스 훑어보기

AWS에는 정말로 여러 종류의 데이터베이스 제품이 있어서 용도에 따라서 어떤 서비스를 써야할지 헛갈리가 쉬운데요. 이번 포스팅에서는 AWS에서 제공하는 데이터베이스 관련 서비스를 간략하게 정리해보려고 합니다. RDS AWS에서 데이터베이스라고 하면 아마 많은 분들이 Amazon Relational Database Service, 줄여서 Amazon RDS라는 서비스를 떠올리실텐데요. RDS는 클라우드 환경에서 마치 온 프레미스(on-premises) 환경처럼 제약없이 원하는 데이터베이스 엔진을 쓰고 싶을 때 사용할 수 있는 AWS의

터미널에서 psql로 PostgreSQL 간편 사용

터미널에서 psql로 PostgreSQL 간편 사용

PostgreSQL를 사용하실 때 일반적으로 데이터베이스를 보기 좋게 시각화하여 보여주는 GUI(그래픽 사용자 인터페이스) 기반 클라이언트를 이용하실텐데요. 하지만 간혹 어떤 제약 사항 때문에 이렇게 무거운 프로그램을 설치하기 어려운 상황도 생기기 마련이죠? 이런 경우 PostgreSQL에서 제공하는 CLI(명령 줄 인터페이스) 기반 클라이언트인 psql을 사용하면 매우 간편하게 터미널에서 데이터베이스에 접속할 수 있습니다. psql 명령어 설치 psql는 PostgreSQL 데이터베이스만 설치하면 기본적으로 딸려오는 CLI 도구입

Discord