SQL 4

sQuiry: 오픈소스 LLM과 RAG 기반 자연어-SQL 변환 서비스

서론자연어로 쿼리를 생성하자 데이터베이스를 다루다 보면 비개발자가 원하는 데이터를 조회하기 위해 개발자에게 요청하거나, SQL을 배워야 하는 상황이 발생한다. "지난 달 매출이 가장 높은 상위 10개 제품을 보여줘"라는 간단한 요청도 복잡한 SQL 쿼리로 변환해야 한다.이런 문제를 해결하기 위해 자연어를 SQL로 변환하는 시스템 sQuiry를 개발했다.특히 상용 API 대신 Huggingface의 오픈소스 모델을 로컬에서 실행하고, RAG 기법으로 데이터베이스 스키마와 예제를 학습시켜 정확도를 높이는 것이 핵심이다. 프로젝트 개요sQuiry는 자연어 질문을 SQL 쿼리로 변환하고 실행하는 API 서비스다. 사용자는 "지난 주 주문 수는?"과 같이 자연어로 질문하면, 시스템이 이를 SQL로 변환하여 실행하..

AI 2026.02.09

[MyBatis] 한 번에 다수의 값 insert 하기

[기록이유]최근 네트워크 정책이 적힌 파일을 parsing 해서 DB로 관리할 일이 생겼다.List> 형태의 ArrayList 를 저장해야했다.for문을 돌리면서 한 줄 한 줄 넣기에는 적게는 수 천번을 해야했기에, 한 번에 insert 하는 방법을 강구했다. [예제]1. 데이터다음과 같은 ArrayList 가 있다.List> policyList 이 리스트에는 다음과 같은 형태로 값이 들어있다.[ {source=192.168.20.3, application=dev, destination=192.168.20.235, port=7765}, { source=192.168.20.4, application=dev, destination=192.168.20.236, port=7735 }, { source=19..

MyBatis 2025.06.12

01 java.lang.NumberFormatException 오류

오류가 났어. 하하. 근데 그저 format오류라 그냥 무시하고 출력하기로 했어. try catch문을 사용해서. package com.my.test; public class Test01 { public static void main(String[] args) { try { String str = "93928"; System.out.println(Integer.parseInt(str)); } catch (NumberFormatException e) { // NumberFormatException 이 발생할 경우 처리 } catch (Exception e) { // Exception 이 발생할 경우 처리 } } } 이렇게 해버리면 에러는 무시하고 그대로 출력값이 나오더라구.

트러블슈팅/JSP 2021.01.12

[데이터베이스]CHAR, VARCHAR, TEXT 차이

CHAR(길이) 고정길이 문자열. 1~255의 길이를 갖는 문자열이야. CHAR에 5칸의 공간을 부여했으면, 1칸만 사용하더라도 나머지 4칸을 공백으로 채워버리는 녀석이야. VARCHAR(길이) 가변길이 문자열. CHAR와는 달리 남은 공간을 공백으로 채우지 않아. TEXT, VARCHAR 무한대 길이의 문자열을 저장할 수 있어. 하지만 무한대라고 해도 시스템 상 65,535까지만 지정할 수 있으니, 65,535이 최대치라고 할수 있지!

DATABASE 2021.01.12
반응형