12.5.3 NULL 값의 처리 및 비교 로직의 일관성 확보

12.5.3 NULL 값의 처리 및 비교 로직의 일관성 확보

관계형 데이터베이스(RDBMS)의 철학적 세계관에서 NULL은 숫자 0도 아니고, 길이가 0인 빈 문자열("")도 아니며, 심지어 메모리 공간의 다른 NULL과 물리적으로 같지도 않은, 완전히 이질적이고 형이상학적인 ’알 수 없는 미지의 논리 상태(Unknown State)’를 의미한다.

수학자 에드거 코드(Edgar F. Codd)가 고안한 이 SQL 특유의 3치 논리(Three-valued Logic: True, False, Unknown)는 C나 파이썬 같은 2치 논리(Boolean) 프로그래밍 언어와 만났을 때 시스템을 마비시키는 최악의 논리적 시한폭탄으로 작용한다. 특히, 두 결과 텐서를 1:1로 맞대어 완벽한 동일성을 검사해야 하는 결정론적 오라클(Deterministic Oracle) 입장에서는 이 미지의 값을 어떻게 멱등성(Idempotency) 있게 길들일 것인가가 시스템의 성패를 가른다.

1. 3치 논리(Three-Valued Logic)의 붕괴와 동등성 비교의 모순

SQL 스펙의 엄격한 룰에 따르면 SQL 엔진 내부에서 연산되는 NULL = NULL의 결과는 True가 아니라 NULL (Unknown)이다. 논리적으로 알 수 없는 것과 알 수 없는 것을 비교했으니 결괏값도 알 수 없다는 심오한 뜻이다.
하지만 이것은 ’데이터베이스 내부의 문법’일뿐, 오라클의 최종 판별기(Comparator)가 두 추출된 텐서 집합을 맞대고 채점을 집행할 때는 절대적으로 인간의 상식적인 직관이 작동해야만 한다. 즉, “정답 텐서의 특정 컬럼이 NULL로 비어있고 예측 텐서 역시 그 위치가 NULL로 비어있다면, 이 두 데이터 레코드는 완벽히 동일하다(Equivalent)“라고 판정해 주는 이산 수학적 동치 체계가 강제로 확립되어야 한다.

만약 AI 모델이 복잡한 LEFT OUTER JOIN 로직을 천재적으로 성공시켜 결손 레코드에 NULL을 담아 인출해 냈음에도 불구하고, 오라클의 파이썬 커넥터가 이를 float형 기반의 결측치인 np.nan이나 pd.NA로 변환하여 그대로 비교 엔진에 흘려보냈다고 가정해 보자. 파이썬과 데이터 엔지니어링 생태계에서 매우 유명한 끔찍한 함정 중 하나는 NaN == NaN 연산이 하드웨어 레벨의 정의에 따라 무조건 False를 반환한다는 사실이다. 결국, 오라클은 텐서의 빈 구멍을 동등함으로 인식하지 못하고, 위대한 정답을 제출한 AI를 오답 처리(False Negative)하는 기술적 참사를 일으키게 된다.

2. 절대 동치(Absolute Equivalence)를 위한 단일 싱글톤 토큰 주입 매커니즘

이러한 태생적인 논리적 무간지옥을 완전히 박살 내고 평정하기 위해, 오라클의 데이터 정규화 수문장은 값(Value)의 도메인에서 NULL을 마주하는 즉시 SQL의 3치 논리를 강제 폐기하고, 파이선 메모리 상에서 해시 충돌(Hash Collision)과 절대적인 동치 연산(==)이 100% 가능한 **‘초월적 단일 싱글톤 해시 토큰(Singleton Hash Token)’**으로 영구 치환해 버리는 일관성 방어 루프를 가동한다.

# 절대 동치를 보장하는 오라클 전역 시스템의 NULL 보호 상수 선언
ORACLE_GLOBAL_NULL_TOKEN = "__ORACLE_UNIVERSAL_NULL_STATE_5a9b7c__"

def sanitize_and_unify_null_for_equality(value):
    """
    모든 차원의 결측치를 하나의 결정론적 토큰으로 융합하는 래퍼 함수
    """
    if value is None or pandas.isna(value) or value == "": # 빈 문자열도 NULL로 취급할지 정책 결정
        return ORACLE_GLOBAL_NULL_TOKEN
    return value

위의 무자비한 아키텍처 방어벽 코드를 통해, 두 텐서 행렬 내부를 떠돌아다니는 모든 파편화된 형태의 결측치(None, NaN, NaT)는 암호학적으로 단 1비트도 틀릴 수 없는 __ORACLE_UNIVERSAL_NULL_STATE_5a9b7c__ 라는 구체적이고 단단한 텍스트 노드 결정체로 완벽하게 강제 융합(Fusion)된다.

결과적으로, 12.5.1절에서 증명한 ‘해시 다중 집합 카운팅(Hash Map Counting)’ 알고리즘이 몽둥이를 들고 스캔을 시작할 때, 이 강제 주입된 토큰 값들은 파이썬 해시맵 내부에서 완벽하게 동일한 슬롯으로 떨어지며 의도된 해시 충돌을 일으키게 된다. 이로써 “양쪽 텐서의 동일한 위상에, 동일하게 ’알 수 없는 값’이 존재한다“는 복잡한 명제는, 군더더기 없는 완벽한 ’참(Execution Match = 1)’이라는 대수학적 결론으로 100% 확정(Deterministic) 판결을 받을 수 있게 되는 것이다.