12.4.5 문자열 대소문자 구분 및 공백 처리 표준화

12.4.5 문자열 대소문자 구분 및 공백 처리 표준화

결과 텐서의 X축을 재배열하고, 데이터 형변환의 파국적 불일치와 부동 소수점 오차라는 대수학적 지뢰밭을 모두 살아서 건너왔다 하더라도 아직 안심하기엔 이르다. 위대한 오라클의 전처리 정규화기(Normalizer)가 맞서서 박살 내야 할 가장 지저분하고 끈질긴 마지막 적폐는, 데이터베이스에 적재된 텍스트 문자열(String) 내부에 독버섯처럼 도사리고 있는 비가시적인 공백(Whitespace)과 대소문자(Case Sequence) 파편화 문제다.

지극히 평범한 “부서별 핵심 인재의 이름을 뽑아줘“라는 질문에 대해, 라이브 데이터베이스는 John Doe를 반환할 수 있다. 하지만 천재적인 AI 에이전트는 쿼리를 작성하는 도중 데이터를 정제하겠다는 과잉 친절을 베풀어 UPPER(name)LOWER(name) 같은 문자열 포맷팅 내장 함수를 쿼리 프로젝션(Projection) 절에 임의로 섞어 쓸 수 있다. 또한 여러 컬럼을 하나로 합치는 문자열 병합(|| 또는 CONCAT) 과정에서 인간의 눈으로는 도저히 식별 불가능한 미세한 스페이스 공백 1개가 오염 물질처럼 끼어들기도 한다.

1. 대소문자 무감각성(Case Insensitivity)의 전역적 강제 주입

세계 시장을 지배하는 관계형 데이터베이스 엔진들(PostgreSQL, MySQL, SQLite, Oracle DB)은 텍스트 문자열의 대소문자를 구분하는 방식(Collation)과 기본 인코딩 테이블이 저마다 완전히 다르게 하드코딩(Hardcoding) 되어 있다.
문제는, AI 모델이 데이터 조인(Join)과 문자열 치환 연산을 거치면서 반환한 텐서의 텍스트가 단순히 대소문자가 뒤틀렸다고 해서(JOHN DOE vs John Doe), 이를 SQL 관계 대수학 구문 생성 실패라는 AI 지능의 결함으로 묶어 0점(False)을 때려잡는 것은, 벤치마크 평가 철학의 본질을 훼손하는 극도의 불합리한 처사라는 점이다.

따라서 오라클 전처리 엔진은 메모리에 적재된 모든 1차원 문자열 텐서가 최종 파이썬 판별기로 인계되기 바로 그 직전의 찰나에, 무자비한 매핑 루프(Mapping Loop)를 가동해야 한다. 시스템 내부에 존재하는 모든 텍스트 객체에 파이썬 네이티브 str.lower() (또는 안전한 다국어 호환을 위한 str.casefold()) 메서드를 전역적으로 타격(Global Strike)하여, 인코딩된 모든 영문 텍스트를 가장 대립이 없는 낮은 차원인 소문자(Lowercase)로 강제 획일화(Uniform)시켜 버리는 통치를 수행해야 한다.

2. 악의적인 비가시적 공백(Invisible Whitespace)의 파괴

오류의 역사에서, 대소문자 불일치보다 실행 결과 판별기를 더 처참하고 빈번하게 붕괴시켜 온 진범은 다름 아닌 눈에 보이지 않는 공백 버그(Whitespace Bug)다.

  • 진리 텐서 값: "Alice" (Length: 5, 순수 바이트)
  • 오염된 텐서 값: " Alice " (Length: 7, 좌우 공백 블록 포함)

만약 레거시(Legacy) 데이터베이스의 구식 CHAR(10) 고정 길이 레코드 스키마에 쓸데없이 남겨진 후행 공백(Trailing Spaces)이 묻어 올라왔거나, 앞서 언급한 AI 측의 CONCAT 연산 실수로 텐서 양 끝에 비가시적 공백이 섞여 버렸다면 어떻게 될까? 파이썬의 엄격하고 결벽증적인 해시 등호 연산(==)은 이 두 데이터를 철저히 다른 메모리 객체로 취급하여, 무수히 많은 억울한 기각(False Negative)을 폭포수처럼 쏟아낼 것이다.

이 참사를 영구히 방어하기 위해 판별기의 마지막 수문장은 문자열 정규표현식(Regex)이나 파이썬 내장 str.strip() 함수를 모든 셀(Cell) 데이터 차원에 촘촘하고 편집증적으로 덮어 씌워, 양 끝단의 모든 화이트스페이스 찌꺼기들을 물리적으로 깎아내야 한다. BIRD-SQL과 같이 더욱 극단적이고 치밀한 평가를 요구하는 벤치마크에서는, 여기서 한발 더 나아가 단순 좌우 공백 파괴뿐만 아니라 문자열 한가운데 섞인 중복 다중 공백과 탭(Tab), 개행문자(\n) 찌꺼기들까지 모조리 찾아내어 단일 스페이스(" ")로 평탄화(Flatten) 해버리는 극강의 텍스트 정규화(Text Normalization) 공정을 필수적으로 거친다.

이토록 거칠고 잔인한 문자열 표준화 및 세척 루프가 빈틈없이 모두 체결 완료되었을 때, AI의 예측 텐서와 골든 정답 텐서는 비로소 인간의 비즈니스적 직관과 오라클의 차가운 가상 머신 모두가 완벽하게 동의하고 인정하는 절대적 동치(Absolute Equivalence) 상태의 신전으로 승화될 수 있는 것이다.