PostgreSQL - PostgreSQL 로컬 Docker 환경에서 pg_bigm 설치하기 작성 일자 : 2025년 05월 18일 pg_bigm 이란? pg_bigm은 PostgreSQL의 확장 모듈로, bigram(2-gram) 기반의 인덱스를 생성하여 전체 텍스트 검색 성능을 향상시키는 데 사용됩니다. 특히 한국어, 일본어 등 다중 바이트 문자를 사용하는 언어에서 효과적이며, LIKE '%검색어%'와 같은 중간 문자열 검색에서도 빠른 성능을 제공합니다. bi-gram 인덱스 생성: 문자열을 연속된 두 글자씩 분할하여 인덱스를 생성함으로써 빠른 검색을 지원합니다.다국어 지원: 한국어, 일본어 등 비알파벳 언어에 대한 검색 성능이 우수합니다.LIKE 연산자 최적화: LIKE '%검색어%' 형태의 ..
Claude API - Token Counting 작성 일자 : 2024년 05월 04일 개요 Claude API는 OpenAI API와 마찬가지로, 사용자가 입력한 프롬프트의 토큰 길이에 따라 요금이 부과됩니다. 따라서, 토큰을 줄이는 것이 비용을 절감하는 방법 중 하나입니다. API마다 토큰을 계산하는 방법이 다르기 때문에, 인터넷에는 각 API마다 토큰을 계산해주는 사이트들이 존재합니다. 하지만, 부정확한 사이트도 많기 때문에, 직접 계산하는 방법을 알아보겠습니다. 토큰 계산 방법 호환되는 모델 Claude API의 토큰 계산 API는 아래의 모델과 호환됩니다.Claude 3.7 SonnetClaude 3.5 SonnetClaude 3.5 HaikuClaude 3 HaikuClaude 3 O..
PostgreSQL - 메세지 테이블 인덱싱 과정 작성일자 : 2025년 04월 13일 (이미지) 발생한 문제 나의 채팅 리스트 페이지에서 [최근 20개의 채팅]과 [각 채팅의 마지막 메세지]를 불러오는 쿼리가 1.6초 이상 걸리는 문제가 발생하였습니다. 메세지 테이블 인덱싱 과정 1. RDS Database snapshot 생성하기 실행중인 Application을 종료하고, RDS Database에서 snapshot을 생성합니다. 2. 사용중인 DB 용량 파악하기 인덱스를 생성하면 인덱스는 해당 테이블의 약 20%~30%의 사이즈로 생성됩니다. 현재 사용중인 전체 DB 용량과 메세지 테이블의 용량을 파악하고, 남은 RDS 용량이 충분한지 확인합니다. SELECT pg_size_pretty(pg_d..
Proxmox - 라우터 교체 후, Web GUI 접속 문제 해결하기 작성일자 : 2025년 03월 16일 문제 상황 Proxmox 서버의 라우터를 교체하고 나서, Web GUI에 접속하려고 하니 무한 로딩 또는 Unable to connect to server 오류가 발생했습니다. 위의 문제는 라우터를 교체하면서, Proxmox의 정적 네트워크 구성이 새로운 네트워크 환경과 일치하지 않아 발생한 문제입니다. 해결 방법 Proxmox 서버의 네트워크 설정을 변경하여, 새로운 라우터에 맞게 설정을 변경해주어야 합니다. 먼저, 교체한 라우터의 IP 주소를 확인합니다. (예시: 192.168.68.1) 1. /etc/network/interfaces 파일 수정이후, Proxmox 서버에 SSH로 접속..
로그를 왜 구체적으로 남겨야 하는가?→ 남기지 않으면 버그가 발생하였을 때, ‘그때 좀 더 써놓을걸’ 이라는 후회를 하기 때문에 왜 CustomException을 작성하는가?→ 로그가 나타난 부분을 빠르게 찾을 수 있는, 오류의 명찰 역할을 한다
Redis Pub/Sub 과 Redis Streams 작성일자 : 2024년 11월 24일 개요 Redis는 캐시 데이터 저장소로 널리 알려져 있지만, 단순한 데이터 캐싱 그 이상으로 활용할 수 있습니다. Redis는 메시징 및 이벤트 중심 아키텍처를 지원하기 위해 Redis Pub/Sub와 Redis Streams 두 가지 기능을 제공합니다. 이번 포스팅에서는 Redis Pub/Sub와 Redis Streams의 주요 차이점, 각각의 사용 시점, 장단점을 자세히 살펴보고, 어떤 상황에서 어떤 기능을 선택해야 할지 알아보겠습니다. Redis Pub/SubRedis Pub/Sub은 Publisher와 Subscriber가 특정 채널을 통해 메시지를 주고받는 방식으로 작동합니다. 구조Publish..
Mac에서 iTerm2 아이콘을 변경해보자! 작성일자 : 2024년 09월 15일 방법 이번 포스팅에서는 맥에서의 iTerm2의 아이콘을 기본 아이콘에서 커스텀 아이콘으로 변경하는 방법에 대해 알아보겠습니다. 변경 전 변경 후 아이콘 이미지 준비 먼저, jasonlong의 iterm2-icons 리포지토리를 통해 변경하고자 하는 아이콘 이미지를 준비합니다.iterm2-icons GitHub - jasonlong/iterm2-icons: Replacement icon for iTerm2 or other macOS terminal apps. Designed for Big Sur.Replacement icon for iTerm2 or other macOS terminal apps. Designed ..
Github OAuth - 사용자에 대한 REST API 엔드포인트로 받아오는 JSON 예시 Request Exampleconst githubUserResponse = await fetch("https://api.github.com/user", { headers: { Authorization: `Bearer ${accessToken}`, }, });const githubUser: GitHubUser = await githubUserResponse.json(); Response ExamplegithubUser { login: 'gerry-mandering', id: 104122065, node_id: 'U_kgDOBjTG0Q', avatar_url: 'http..