보이지 않는 자리의 결정

10월 24일 오후 2시, 숭례문 앞 세종대로에 모인 사람들을 경찰은 비공식 추산 4,200명으로 셌다. 주최 측이 예고한 숫자는 1만이었다. 이 격차를 두고 조직의 동원력이 약해졌다고 말하는 것은 이 국면의 요점을 놓치는 것이다. 광장에 선 사람들이 요구한 것은 임금 인상률이 아니라 교섭 그 자체였다. 원청교섭을 가로막는 노조법 시행령과 해석지침을 폐기하고, 의제 제한 없는 온전한 원청교섭을 쟁취하겠다는 결의문이 그것이다. 교섭권을 요구하기 위해 광장에 나와야 한다는 사실 자체가 이미 그 권리의 성격을 말해준다.

엄길용 위원장의 대회사는 이 사흘 사이에 있었던 일과 정확히 맞물린다. 노란봉투법 시행 7개월이 지났지만 법은 구멍이 나고 빛이 바래고 있으며, 힘겹게 원청교섭을 열게 되면 원청은 그것이 하청 사장이 결정할 일이라며 책임을 떠민다는 것이다. 22일 한화오션 3차 교섭이 그 문장의 실물이다. 회사는 36개 조항 가운데 웰리브 직원의 현장시설 개선과 안전 관련 조항, 모두 6개에만 사용자성을 인정하겠다고 답했다. 임금과 성과금, 고용승계는 교섭의 의제가 아니라고 잘라낸 것이다. 노조가 교섭을 요구한 원청 70곳 중 실제 교섭이 열린 곳은 18곳, 넷 중 하나다. 그리고 19일부터 이어진 4개 사업장 6,500명의 공동파업 주간은 24일로 끝났다. 부산교통공사는 35명 증원이라는 합의문을 남겼지만, 인천공항은 교섭을 미루는 절차에 걸려 7월에야 첫 테이블을 열었고, LG유플러스는 다섯 차례 교섭에서 안전 의제에 묶여 있다.

법은 사용자성을 교섭 의제별로 판단하라고 규정한다. 조문만 읽으면 중립적인 절차처럼 보인다. 그러나 의제를 인정하는 순서가 곧 돈을 나누는 몫을 다투는 순서라는 점을 놓치면 법의 뜻을 놓친 것이다. 안전은 이미 산업안전보건위원회에서 다룰 수 있던 사안이다. 새 법이 연 것은 안전을 다시 논의할 권리가 아니라, 인건비의 규모를 결정하는 자리에 앉을 권리였다. 그 자리를 의제 목록으로 잘라내면, 법은 교섭을 허용한 것이 아니라 교섭의 외곽에 울타리를 두른 것이 된다. 노동부가 지침 한 줄로 의제를 정하고 원청이 그 지침을 근거로 책임을 미루며, 창구 단일화가 나머지 시간을 소진하는 동안 사람들은 다시 광장으로 나온다. 사흘 동안 6,500명이 파업으로 얻은 것이 표창장이 아니라 12월 정기국회까지의 입법 일정이라면, 그 일정은 일하는 사람들이 스스로 만들어낸 것이다.

같은 주에 한국은행은 기준금리를 연 3.00%로 동결했다. 금융통화위원 전원이 찬성했고, 지난 7월과 8월 두 차례 인상의 파급을 지켜보겠다는 것이 이유였다. 의결문은 물가가 상당 기간 목표를 웃돌 것이라 경고하면서 수도권 주택시장과 가계부채의 불균형 위험을 지목했다. 임금 협상 테이블에서 35명이라는 숫자를 다투는 사업장과, 금리를 3%에 멈춰 세운 결정은 서로 다른 사안처럼 보인다. 그러나 가계부채를 관리 대상으로 규정하는 중앙은행의 문장과 교섭 의제를 잘라내는 노동부의 지침은 같은 회계연도 안에서 자원 배분의 순서를 정한다. 한쪽에서는 이자가 고정되고, 다른 쪽에서는 인건비가 남은 몫에서 다퉈진다. 광장에서 요구된 것은 그 순서를 뒤집는 권리였고, 그래서 4,200명이라는 숫자는 이 싸움의 크기를 재는 단위가 아니다.

이번 주에는 기술 쪽에서도 같은 구조를 보여주는 일이 있었다. Node.js의 내장 Brotli 디코더에서 범위 밖 쓰기가 가능한 결함 CVE-2026-111497이 공개됐고, 10월 21일 24.x 계열 수정판이 나왔다. Open AI Codex Security 팀이 보고한 이 결함은 잘못된 블록 전환을 영구적인 형식 오류가 아니라 일시적인 입력 부족으로 처리하는 한 줄의 판단에서 발생한다. 스트리밍 디코더는 8바이트짜리 내부 버퍼에 입력을 계속 덧붙였고, 그 결과가 프로세스 메모리 오염과 원격 코드 실행으로 이어질 수 있다. 결함은 응용 프로그램 코드에 있지 않다. 언어 런타임이 함께 실어 나르는 부품에 있다. 그래서 개발자의 주의력과 무관하게, 같은 런타임을 쓰는 모든 서비스가 동시에 노출된다. 수정판이 나온 뒤에도 패치가 적용되지 않은 채 옛 라이브러리가 메모리에 남아 돌아가는 서비스가 있다. 패치 이미지는 준비되고 시험도 통과했지만 적용 전이라는 것이다. 침해 흔적이 발견되지 않았다는 말이 침해가 없었다는 증명은 아니다.

여기서 내가 주목하는 것은 취약점의 기술적 세부가 아니라 그것이 드러내는 의존의 형태다. 공급망 위험은 계약서에 적히지 않은 부품에서 온다. 사용자는 자기가 설치한 것만 세고, 실제로는 설치된 것에 딸려 온 것을 함께 실행한다. 언어 런타임의 한 부품이 그렇고, 하청업체의 인력이 그렇고, 원청의 결정이 그렇다. 결정하는 자리는 보이지 않고, 책임은 그 보이지 않는 자리에서 아래로 밀려 내려온다. 노동조합이 사용자성을 증명하라고 요구받는 동안, 소프트웨어를 쓰는 쪽은 자기 서비스의 취약한 부품이 어디서 왔는지 확인해야 한다. 둘 다 같은 질문을 향한다. 누가 결정했고, 그 결정의 값을 누가 치르는가. 그리고 지금까지의 답은, 값을 치르는 쪽은 언제나 결정하는 자리를 보지 못한 채 자기 몫의 계산서만 받아 든다는 것이다.