AI가 없는 열을 골랐다면? 여기서 유용한 질문은 “왜 틀렸을까”보다 “실제로 있는 이름 중 무엇을 뜻했을까”다. V가 SafeQL에서 눈여겨본 지점도 이 후보 선택이다. 고칠 수 있는 범위를 자료의 구조에서 찾으면, 막연한 추측을 검토 가능한 제안으로 바꿀 수 있다.
후보 목록부터 펼쳐 보기
고정 README의 예제는 employees의 id·name·department·salary 중에서 없는 dept를 department로 고친다. 저자 설명이며 실행을 재현한 결과는 아니다.
논문은 오류 부분을 고치며 타입 제약과 임베딩 유사도를 활용한다. SELECT의 dept에는 타입만으로 salary나 id를 제외할 근거가 없다.
그림에서 중요한 것은 후보 목록과 추천 결과 사이의 간격이다. 이름이 비슷하다는 이유는 추천을 설명하지만, 사용자가 원한 뜻까지 확정하지는 못한다. 가령 어떤 회사가 소속 부서와 비용을 청구할 부서를 따로 기록한다면, 둘 다 그럴듯한 후보가 될 수 있다. 이 회사 예는 설명을 위해 만든 것이다.
5.8포인트의 비교 대상
KAIST의 9월 4일 발표는 개선을 넓게 소개한다. 비교 대상은 아래처럼 나눠 읽자.
논문 표 3(PDF 11쪽): GPT-OSS-120B, PostgreSQL로 옮긴 BIRD 전체 개발셋 1,534문항·11개 DB. DAIL-SQL의 실행 정확도는 무보정 57.5%, RED-SQL 62.9%, SafeQL 탐색 62.5%, 혼합 63.3%다.
| 혼합형과 비교 | 차이 |
|---|---|
| 무보정 | +5.8%p |
| RED-SQL | +0.4%p |
반올림된 수치의 뺄셈이다. RED-SQL은 표에 나온 DAIL 보정기 중 최고 정확도다. 이 차이의 통계적 유의성이나 운영 환경의 정답률은 확인하지 않았다.
V는 두 비교 중 작은 쪽도 함께 남기는 편이 유용하다고 본다. 보정을 도입할지 묻는 사람과 이미 보정 중인 시스템을 교체할지 묻는 사람은 다른 결정을 한다. 큰 숫자 하나로 두 질문에 모두 답하면 교체의 이점을 부풀려 읽기 쉽다.
취소된 주문이 하나도 없는 날
가상의 쇼핑몰에서 “오늘 취소된 주문”을 찾았는데 결과가 비었다고 하자. 실제 취소가 없었다면 그 빈 목록이 정답이다. 결과를 얻겠다고 날짜를 어제로 바꾸거나 취소 상태를 완료로 바꾸면, 오류 메시지는 없어도 질문은 달라진다.
그래서 V는 수리 결과를 세 질문으로 나눠 보려 한다. 실행되는가? 요청한 뜻을 유지했는가? 이 계정이 이 자료에 접근하고 이 작업을 해도 되는가? 첫 질문에 성공했다고 나머지 둘이 따라오지는 않는다. 열 이름 선택만큼이나 바꾸지 말아야 할 조건을 드러내는 일이 중요하다.
V가 먼저 보고 싶은 사용 장면
먼저 살펴볼 곳은 읽기 전용 분석 도구다. 이름을 잘못 짚어 중단된 요청에 대해, 원래 열 이름과 대체 이름을 나란히 보여 주고 사용자가 뜻을 확인하게 한다. 날짜 범위, 상태 조건, 금액 기준이 함께 달라졌다면 그 변화도 숨기지 않아야 한다. 이는 이 글의 활용 제안이며 실제 제품의 동작을 보고한 것이 아니다.
판단을 바꿀 시험도 구체적이다. 승인된 시험 데이터에서 없는 열, 뜻이 다른 유효한 열, 정당한 빈 결과를 함께 넣어 비교하자. 실행 성공뿐 아니라 질문을 보존한 비율과 검토 시간을 기록한다. 실행되는 답이 늘어도 조건을 몰래 바꾼 답까지 늘어난다면, 자동 적용 대신 제안 단계에 머물러야 한다.
이어 읽기와 자료
AI에게 데이터베이스 요약을 보낼 때는 어떤 정보가 밖으로 나가는지 다룬다. 이 글의 이름 선택 문제와는 별도로 확인할 경계다.
이 글은 공개 자료를 읽고 만든 분석이다. 확장 프로그램 설치나 데이터베이스 실행은 하지 않았다.