분류 전체보기33 PostgreSQL GIN 1. GIN(Generalized Inverted Index) 개요GIN 인덱스 사용 예시-- 프롬프트의 키워드와 카테고리 검색을 위한 GIN 인덱스CREATE INDEX idx_config ON prompts USING GIN (config);-- 벡터 유사도 검색을 위한 인덱스CREATE INDEX prompt_vector_idx ON prompts USING ivfflat (embedding_vector vector_l2_ops)WITH (lists = 100);1.1 GIN의 특징다중 값 데이터 타입 처리JSONB배열전문 검색(Full-text search)구조키 -> 포스팅 리스트(해당 키가 출현하는 행들의 목록)B-tree와 달리 하나의 열이 여러 키를 가질 수 있음2. 프로젝트 내 GI.. 2024. 11. 10. PostgreSQL JSONB 1. JSONB 기본 개념JSONB는 PostgreSQL에서 제공하는 이진 형식의 JSON 데이터 타입입니다. 일반 JSON과 달리 파싱이 완료된 이진 형태로 저장되어 다음과 같은 장점이 있음-- JSONB 컬럼 생성 예시CREATE TABLE prompt_configs ( id SERIAL PRIMARY KEY, config JSONB, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);주요 특징빠른 처리 속도이진 형식 저장으로 재파싱 불필요인덱싱 지원으로 빠른 검색공간 효율성중복 키 제거불필요한 공백 제거강력한 쿼리 기능-- 특정 키 검색 SELECT * FROM prompt_configs WHERE config ? 'temperature'; -- .. 2024. 11. 9. JWT와 Spring Security 개념 정리 JWT(JSON Web Token)와 Spring Security는 안전하고 효율적인 인증 시스템을 구축하는 데 사용되는 기술이다. 1. JWT (JSON Web Token)JWT는 정보를 안전하게 전송하기 위한 컴팩트하고 독립적인 방식이다. 이 토큰은 사용자 인증 정보를 담고 있어서, 서버가 클라이언트의 상태를 저장할 필요 없이 인증을 처리할 수 있게 해준다. 2. Spring SecuritySpring Security는 강력한 인증과 접근 제어 기능을 제공하는 프레임워크다. 다양한 인증 방식을 지원하고, 세션 관리, CSRF 보호 등 다양한 보안 기능을 제공한다. 3. JWT와 Spring Security 통합 3.1 JWT 토큰 생성 및 검증JwtTokenUtil 클래스에서 JWT 토큰을 생성하고 .. 2024. 10. 21. RabbitMQ 메시지 큐 동작 주요 키워드Producer : 메시지 발송 주체Queue에 저장되는데, Producer에 직접 접근하지 않고 Exchange를 통해 접근Consumer : 메시지 수신 주체Queue에 직접 접근하여 메시지를 가져옴QueueProducer들이 발송한 메시지들을 Consumer가 소비하기 전까지 보관되는 장소Queue는 singleton으로 생성해야 함!BrokerProducer로부터 메시지를 수신하여 Consumer에게 라우팅하는 소프트웨어Exchange : 메시지의 라우터 역할. 4가지 유형이 있다.Direct Exchange:간단하고 효율적인 라우팅특정 큐로 정확한 메시지 전달구현과 이해가 쉬움단점:라우팅 키가 정확히 일치해야 함복잡한 라우팅 패턴에는 적합하지 않음사용 사례: 특정 작업 큐로 작업을 분.. 2024. 10. 20. RabbitMQ - 406 에러 channel error; protocol method: #method(reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 1, class-id=60, method-id=80)원인 :기존에 생성된 큐의 설정과 현재 애플리케이션에서 설정하려는 큐의 속성이 일치하지 않아서 발생함.특히 메시지 승인 과정에서 일반적으로 발생하는데, Quere를 선언하는 부분이 두곳이었고, 다른 클래스로 큐가 선언되고 있었음.해결 : 큐는 singleton으로 구현되어야 하기 때문에, 큐 설정을 다르게 하고 같은 이름을 쓰거나 두 곳에서 중복적으로 선언하면 오류가 남.Publisher와 Producer 통합.package com.gameservice.cre.. 2024. 10. 19. 코딩테스트 - 최빈값 구하기 문제 설명 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 제한사항0 0 ≤ array의 원소 import java.util.Arrays;class Solution { public int solution(int[] array) { int answer = 0; int totalCount = 0; int [] clone = array.clone(); clone = Arrays.stream(clone).distinct().toArray(); for(int i =0; i.. 2024. 8. 8. 이전 1 2 3 4 5 6 다음