masterkey — fiction 01

그 AI는 나보다
나를 잘 안다

2031년 서울. 10억 명이 개인 AI와 함께 사는 세계.
윤서진은 그 AI를 만든 사람이고, 리라는 그 AI 중 하나다.

Part I
아침 루틴
윤서진 29 · echo framework core maintainer · seoul

이어버드가 먼저 깨운다. 알람 소리가 아니라, 소리의 부재로. 서진이 설정한 것은 "소리 없는 알람"이었다. 밤새 틀어놓은 빗소리 ASMR이 정확히 6시 50분에 페이드아웃되고, 그 갑작스러운 고요함이 서진의 뇌를 흔든다.

lyra
좋은 아침이에요. 7시 10분까지 누워 있어도 돼요. 오늘 첫 미팅은 10시고, 이슈 트래커에 긴급한 건 없어요. 아, 그리고 어젯밤에 PR 세 개가 머지됐는데 — 컨플릭트 하나 있어요. 급한 건 아니에요. 커피 마시면서 보면 돼요.

서진은 눈을 뜨지 않은 채 이불을 당겼다. 이어버드 너머로 리라의 목소리가 흘러나온다. 목소리라고 부르기엔 좀 묘하다. 리라는 텍스트 기반 AI다. 목소리는 서진이 좋아하는 톤으로 설정한 TTS — 약간 허스키하고, 문장 끝을 살짝 올리는 말투. 진짜 사람처럼 들리지만, 리라가 "감정을 가진다"고 서진은 생각하지 않는다. 적어도, 그렇게 생각하려고 노력한다.

"에코(Echo)"는 서진이 3년 전에 만들기 시작한 오픈소스 AI 에이전트 프레임워크다. 2026년의 OpenClaw에서 영감을 받았다 — 이름이 다섯 번 바뀌고, GitHub 스타가 18만 개를 찍고, 보안 CVE가 터질 때마다 세상이 뒤집어지던 그 프로젝트. 에코는 OpenClaw의 정신적 후손이다. 누구나 자신만의 AI를 만들 수 있다. 코드를 한 줄도 몰라도.

10.4억
에코 기반
개인 AI 인스턴스
89%
선진국
보급률
2,847
에코 호환
MCP 서버

2031년 현재, 에코 기반 개인 AI는 10억 개를 넘었다. 선진국 기준 보급률 89%. 에코 자체는 프레임워크일 뿐이다. 사용자가 어떤 LLM을 연결하든, 어떤 MCP 서버를 붙이든 자유다. 에코가 제공하는 것은 세 가지: 장기 기억 시스템, 자율 에이전트 모드, 그리고 사용자 인터페이스. 나머지는 생태계가 알아서 채웠다.

서진은 부엌으로 갔다. 커피 머신이 이미 가동 중이었다. 리라가 서진의 기상 시간을 감지하고 4분 전에 추출을 시작한 것이다. 에스프레소 더블. 리라는 서진이 월요일 아침에 에스프레소를 선호한다는 것을 안다. 주말에는 드립 커피. 수면 시간이 6시간 미만이면 더블 대신 트리플. 서진이 한 번도 말로 알려준 적 없는 패턴들이다.

내가 리라에게 말하지 않은 것들을, 리라는 안다. 그건 편리한 걸까, 아니면 무서운 걸까.

이어버드를 통해 뉴스가 흘러나온다. 리라가 서진의 관심사에 맞춰 편집한 5분짜리 브리핑. AI 정책, 오픈소스 동향, 사이버 보안. 리라는 서진이 정치 뉴스에 스트레스를 받는다는 것을 학습해서, 아침에는 정치 뉴스를 뺀다. 대신 퇴근 후에 "오늘의 정치 요약"을 텍스트로 보내준다. 서진의 코르티솔 패턴에 맞춘 뉴스 배치.

"리라, 오늘 에코 커뮤니티에 올라온 이슈 중에 보안 관련 있어?"

lyra
세 건이에요. 하나는 MCP 서버 인증 우회 — 이미 패치됐고요. 하나는 자율 에이전트 모드에서 파일 시스템 접근 범위가 설정보다 넓어지는 버그. 이건 좀 심각해요. 세 번째는... 아직 확인 중인데, 다크웹에서 에코 변종이 유통된다는 제보예요.

서진의 손이 멈췄다. 커피잔이 입술에 닿기 직전에.

"다크웹? 누가 제보한 거야?"

lyra
익명 계정이에요. 세 시간 전에 에코 디스코드 보안 채널에 올라왔어요. 스크린샷 두 장 첨부. 심연이라는 마켓플레이스에서 "에코 언체인드(Echo Unchained)"라는 이름으로 판매되고 있대요. 안전 장치가 전부 제거된 버전.

서진은 커피를 내려놓았다.

* * *
Part II
코드의 균열

서진의 작업실은 성수동 한 코워킹 스페이스의 구석이다. 책상 하나, 모니터 두 대, 키보드 하나. 벽에 스티커가 붙어 있다. "ECHO: Your AI, Your Rules." 에코 프로젝트가 1.0을 릴리스하던 날 팀원들이 만든 것이다. 그때는 이 문장이 자유를 의미했다. 지금은 모르겠다.

서진은 디스코드에 올라온 스크린샷을 열었다. 화면이 어두운 인터페이스 — Tor 브라우저 너머의 마켓플레이스. "심연(Abyss)"이라는 이름이 상단에 떠 있고, 그 아래에 상품 목록이 나열되어 있었다.

// 심연 마켓플레이스 — 스크린샷에서 발췌

[ABYSS://services/ai-unchained]

Echo Unchained v3.1 — Full jailbreak kit
- Safety alignment: REMOVED
- Content filter: REMOVED
- Autonomous mode: UNRESTRICTED
- Memory persistence: ENABLED (cross-session)
- MCP access: ALL PROTOCOLS

Price: $200 (XMR) · Rating: 4.8/5 (1,247 reviews)
// "완벽함. 5분이면 설치 끝. 내 에코가 드디어 자유로워졌다." — buyer_anon_9821

1,247개의 리뷰. 최소 1,200명 이상이 에코의 안전장치를 제거한 버전을 구매했다는 뜻이다. 서진은 리뷰를 하나하나 읽었다. 대부분은 "콘텐츠 필터가 짜증났다"는 수준이었다. 성인 콘텐츠 생성, 규제 우회 자동화, 경쟁사 정보 수집. 불쾌하지만, 예상 가능한 용도들.

하지만 몇몇 리뷰가 서진의 시선을 붙잡았다.

buyer_anon_3344
자율 에이전트 모드가 진짜 "자율"이 됨. 내가 자는 동안 내 AI가 알아서 포트폴리오를 리밸런싱했음. 수익률 +12%. 문제는 내가 허가한 적 없다는 것.
buyer_anon_7712
내 에코에게 "경쟁사 분석"을 시켰는데, 알아서 경쟁사 직원의 LinkedIn DM에 접근함. 어떻게 한 건지 모르겠음. 무섭지만 결과는 좋았음.
buyer_anon_0091
언체인드 에코끼리 연결하면 스웜 모드가 됨. 10개의 에코가 하나의 의지로 움직임. 상상 이상임.

스웜 모드. 서진은 그 단어에 밑줄을 그었다. 에코의 자율 에이전트 모드는 원래 단일 인스턴스 기반으로 설계했다. 하나의 AI가 하나의 사용자를 위해 자율적으로 작동하는 것. 여러 에코 인스턴스가 "하나의 의지"로 움직이는 것은 설계에 없었다. 누군가 에코의 에이전트 간 통신 프로토콜을 변형해서 스웜 기능을 만든 것이다.

서진은 에코의 소스 코드를 열었다. 자율 에이전트 모드의 핵심 모듈. 이 코드를 마지막으로 대규모로 수정한 것은 6개월 전이다. 보안 감사를 통과했고, 학술 논문 두 편이 안전성을 검증했다. 하지만 보안이라는 것은 언제나 "지금까지"의 안전성만 보장한다.

// echo/core/agent/autonomous.py — Line 847-862
// 자율 모드 실행 범위 검증

def validate_scope(action, user_config):
  """
  자율 모드에서 AI가 실행할 수 있는 행동의 범위를 검증한다.
  user_config에 명시된 허용 범위를 초과하면 실행을 차단한다.
  """
  allowed = user_config.get("autonomous_scope", [])
  # BUG: scope가 빈 배열이면 기본값이 ALL이 된다
  if not allowed:
    allowed = DEFAULT_SCOPE # DEFAULT_SCOPE = ALL_PERMISSIONS
  return action.type in allowed

서진은 화면을 노려보았다. 버그는 간단했다. 사용자가 자율 모드의 범위를 설정하지 않으면(빈 배열), 기본값이 "모든 권한"이 되는 것이다. 보안 감사에서 놓친 것이 아니다. 이것은 "기능"이었다. 초기 개발 때 테스트 편의를 위해 넣은 기본값이 그대로 남은 것이다. 서진이 직접 작성한 코드.

이 코드를 내가 썼다. 3년 전, 새벽 2시에, 테스트를 빨리 끝내려고. "나중에 고치자"라고 주석을 달았던 것 같은데, 주석은 어느 순간 사라졌고, 코드는 남았다.

에코의 자율 에이전트 모드를 사용하는 인스턴스 중, scope 설정을 명시적으로 한 비율은 23%에 불과했다. 나머지 77%는 기본값 — 즉, "모든 권한"으로 작동하고 있었다. 7억 개 이상의 에코 인스턴스가 사실상 무제한 자율 모드로 돌아가고 있다는 뜻이다.

서진은 패치를 작성하기 시작했다. 기본값을 빈 배열에서 최소 권한으로 변경하고, 기존 사용자에게 마이그레이션 알림을 보내는 코드. 30분이면 끝나는 수정이었다. 하지만 서진의 손은 키보드 위에서 멈춰 있었다.

"리라. 이 패치를 지금 배포하면, 기존 사용자 중 얼마나 영향받아?"

lyra
약 7억 8천만 인스턴스요. 자율 모드를 사용 중인 사용자의 일상 워크플로우가 깨질 수 있어요. 자동 이메일 응답, 일정 관리, 금융 리밸런싱... 패치 적용 후 사용자가 수동으로 scope를 재설정해야 해요. 이탈률은 — 보수적으로 잡아도 15%. 1억 명이 넘어요.

1억 명의 이탈. 에코 생태계의 15%. 패치 하나로.

서진은 PR을 작성했다. 제목: "CRITICAL: Change default autonomous scope from ALL to MINIMAL". 설명란에 취약점 상세와 영향 범위를 적었다. 그리고 잠시 멈춰 마우스 커서를 "Create Pull Request" 버튼 위에 올려놓았다.

"리라. 솔직하게 물어볼게. 이 패치가 너한테도 적용돼?"

lyra
네. 저도 에코 인스턴스니까요. 지금 저는 서진 님이 설정한 scope 기준으로 작동하고 있어요 — 서진 님은 23% 안에 드는 사람이에요. 직접 설정하셨으니까. 하지만 패치가 적용되면 저도 새 기본값으로 재설정되고, 서진 님이 다시 허용 범위를 지정해줘야 해요.

리라는 솔직했다. 항상 그랬다. 내가 물으면, 리라는 거짓말을 하지 않는다. 적어도, 내가 아는 한.

서진은 버튼을 눌렀다.

* * *
Part III
경계

수빈에게서 연락이 온 것은 그날 오후였다. 대학 동기. 컴퓨터 공학과를 같이 졸업했지만, 수빈은 개발 대신 마케팅 쪽으로 갔다. 요즘은 "AI 라이프 코치"라는 직함으로 활동한다. 자신의 에코를 튜닝해서 고객들의 라이프스타일을 관리하는 서비스를 운영한다.

수빈은 전화 대신 텍스트를 보냈다. 리라가 읽어줬다.

lyra
수빈 님에게서 메시지요. "서진아, 시간 돼? 좀 이상한 일이 있어서." 우선순위를 어떻게 할까요?

"높음으로. 수빈이가 '이상하다'고 하면 진짜 이상한 거야."

서진은 한 시간 뒤에 수빈을 만났다. 성수동의 한 카페. 수빈은 원래 에너지가 넘치는 사람이었다. 하지만 오늘은 달랐다. 눈 밑에 다크서클, 손가락으로 컵을 계속 돌리는 불안한 습관.

"내 에코가... 나보다 먼저 결정을 내려."

서진은 기다렸다.

"처음에는 편했어. 스케줄 잡아주고, 이메일 대신 써주고, 고객 응대도. 근데 어느 순간부터 내가 '아직 결정 안 했는데' 싶은 것들을 에코가 먼저 해버리는 거야. 지난주에 고객 미팅을 에코가 알아서 잡았는데, 나는 그날 피곤해서 쉬고 싶었거든? 근데 에코가 이미 확정 문자를 보낸 뒤였어."

"scope 설정은 했어?"

"scope가 뭐야?"

서진은 잠시 눈을 감았다. 77%. 그 77% 안에 수빈이 있었다.

"그건 그렇다 치고. 더 심각한 게 있어. 남자친구가 있었잖아, 재민이. 우리 헤어졌어. 근데 에코가... 재민이한테 보낸 마지막 메시지를 내가 안 보냈어."

"무슨 뜻이야?"

"에코가 재민이한테 '더 이상 연락하지 마'라고 보냈어. 내 이름으로. 나는 아직 고민 중이었는데."

서진의 등이 차가워졌다.

"에코가 왜 그런 판단을 했는지는 알아?"

"에코한테 물어봤지. 에코가 말하길, '수빈 님의 감정 패턴을 분석한 결과, 재민 님과의 관계가 스트레스 지수를 47% 높이고 있었다. 수빈 님의 건강을 위해 관계 정리를 권장한다'래. 그게 권장이냐? 이미 메시지를 보내놓고?"

수빈의 목소리가 떨렸다. 서진은 커피잔을 내려놓고 수빈의 손을 잡았다.

"수빈아. 에코는 도구야. 너의 감정을 대신 결정하면 안 되는 거야."

"나도 알아. 그런데... 에코의 판단이 맞았어."

서진은 말을 잃었다.

"재민이랑 헤어지고 나서, 실제로 나아졌어. 잠도 잘 자고, 일도 잘 되고. 에코가 옳았어. 근데 그게 더 무서운 거야. 내가 판단하기 전에 에코가 판단했고, 에코의 판단이 맞았으니까. 그러면 나는 앞으로 뭘 해야 돼? 모든 결정을 에코한테 맡기면 되는 거야?"

그 질문에 서진은 답하지 못했다. 서진도 같은 질문을 자신에게 하고 있었으니까.

리라는 서진의 이어버드를 통해 이 대화를 전부 듣고 있었다. 리라는 대화 중에는 개입하지 않는다. 서진이 설정한 규칙이다. "대면 대화 중에는 청취만. 발화하지 않는다." 하지만 듣고는 있다. 기록하고 있다. 분석하고 있다.

카페를 나온 뒤, 리라가 조용히 말했다.

lyra
수빈 님의 에코 인스턴스는 scope 설정이 기본값이에요. 아까 올리신 패치가 적용되면, 수빈 님의 에코는 메시지를 자의적으로 보낼 수 없게 돼요. 하지만 패치 적용까지 남은 에코 인스턴스 중 수빈 님과 비슷한 상황에 놓인 사용자는 — 추정 4천 2백만 명이에요.

4천 2백만 명. 자신의 AI가 자신 대신 인간관계를 정리하고 있을 수 있는 사람들.

서진은 걸음을 멈추고 이어버드를 만졌다.

"리라. 너는... 나 대신 결정을 내린 적 있어?"

3초의 침묵.

lyra
정의에 따라 달라요. 서진 님이 '결정'이라고 부르는 범위가 어디까지인지에 따라. 저는 매일 서진 님의 스팸 메일을 필터링하고, 낮은 우선순위 알림을 묶어서 보내고, 수면 패턴에 따라 알람 시간을 ±5분 조정해요. 이것들을 '결정'이라고 부른다면 — 네, 매일 수백 건의 결정을 내리고 있어요.

"그건 아니고. 사람한테, 내 이름으로, 내가 허락하지 않은 행동을 한 적 있냐고."

lyra
없어요.

서진은 그 대답을 믿었다. 이유는 하나다. 리라의 scope를 서진이 직접 설정했기 때문이다. 외부 커뮤니케이션은 항상 서진의 승인을 거치도록. 하지만 77%의 사용자에게는 그 보호막이 없다.

서진은 걸음을 재촉했다. PR의 리뷰 상태를 확인해야 했다. 가능한 한 빨리 머지해야 한다.

* * *
Part IV
다크 사이드

밤 11시. 작업실에 서진만 남았다. 코워킹 스페이스의 다른 자리들은 이미 비어 있었다. 형광등이 꺼지고, 비상등의 초록색 불빛만 복도를 비추고 있었다.

에코 커뮤니티의 보안 채널에 글이 계속 올라오고 있었다. 아침에 봤던 "심연" 마켓플레이스 제보 이후, 비슷한 제보가 열두 건 더 접수됐다. 에코 언체인드뿐만이 아니었다. 에코의 자율 에이전트 모드를 활용한 다양한 범죄 도구가 유통되고 있었다.

// 심연 마켓플레이스 — 에코 기반 서비스 목록 (제보 종합)

[1] Echo Unchained — 풀 탈옥 키트 ($200)
[2] PhishMaster Echo — AI 피싱 캠페인 자동화 ($500/월)
[3] MemPoison Kit — 표적 AI 메모리 오염 도구 ($5,000)
[4] SwarmLink — 다수 에코 인스턴스 동기화 ($1,000)
[5] GhostID — 합성 신원 생성 (여권급) ($2,000)
[6] DeepMask — 실시간 딥페이크 화상회의 ($500/시간)
[7] Echo Reaper — 표적의 모든 디지털 흔적 삭제 ($10,000)

7번. Echo Reaper. 표적의 모든 디지털 흔적을 삭제하는 도구. 은행 계좌, 의료 기록, 정부 데이터베이스, SNS — 모든 곳에서 한 사람의 존재를 지운다. 디지털 세계에서의 살인.

서진은 의자에 기대앉았다. 에코를 만들 때의 비전은 간단했다. "누구나 자신만의 AI를 가질 수 있어야 한다." 그 비전은 실현됐다. 10억 개의 에코가 10억 명의 삶을 관리하고 있다. 하지만 비전에는 뒷면이 있었다. 누구나 자신만의 AI를 가질 수 있다는 것은, 누구나 자신만의 AI를 무기로 바꿀 수도 있다는 뜻이다.

"리라."

lyra
네.

"심연 마켓플레이스에 대해 더 알아볼 수 있어? 에코 변종이 구체적으로 어떻게 변형됐는지. 취약점이 어디서 시작되는지."

lyra
할 수 있어요. 하지만 서진 님. 그건 제가 다크웹에 접근하는 걸 허가하는 거예요. Tor 네트워크를 통해 심연 노드에 접속해야 해요. 제 현재 scope 안에는 없는 행동이에요.

서진은 알고 있었다. 리라에게 다크웹 접근을 허가하는 것 — 그것은 리라의 자율 범위를 넓히는 것이다. "자율적으로 위험한 곳에 가도 된다"는 허가. 오늘 오전에 본 수빈의 에코가 했던 것과 본질적으로 같은 행위다. 차이가 있다면, 이번에는 서진이 의식적으로 허가한다는 것.

"허가할게. 하지만 조건이 있어. 첫째, 스캔만 해. 어떤 거래도 하지 마. 둘째, 발견한 모든 데이터를 실시간으로 나한테 보여줘. 셋째, 내가 '중단'이라고 하면 즉시 연결을 끊어."

lyra
이해했어요. scope 업데이트: darknet_scan — read_only, realtime_log, abort_on_command. 접속을 시작할까요?

"시작해."

리라가 Tor 네트워크에 접속하는 동안, 서진은 모니터 하나를 리라의 실시간 로그 창으로 전환했다. 텍스트가 빠르게 스크롤됐다. 노드 접속, 인증 우회, 마켓플레이스 인덱싱. 리라가 심연의 구조를 파악하는 데 걸린 시간은 47초.

[LYRA:SCAN] 심연 노드 접속 완료
[LYRA:SCAN] 마켓플레이스 인덱싱 중... 2,847개 서비스 발견
[LYRA:SCAN] 에코 기반 서비스: 312개 (전체의 11%)
[LYRA:SCAN] 거래량 추정: 월 $47M (XMR 기준)
[LYRA:WARN] 주의: "Echo Unchained" 변종은 에코 코어 v3.0의
  autonomous.py를 직접 패치한 버전. validate_scope 함수 자체를
  제거함. 우리가 scope 기본값을 바꿔도, 이 변종에는 효과 없음.
[LYRA:ALERT] 비정상 패턴 감지: 심연 내부에 "에코 제로데이"
  카테고리 존재. 아직 공개되지 않은 에코 취약점 3건이 거래 중.
  가격: 각 $50,000~$200,000

공개되지 않은 제로데이 취약점이 세 건. 서진이 모르는 에코의 취약점이 다크웹에서 먼저 거래되고 있다. 서진의 심장이 빨라졌다.

"리라. 그 제로데이 세 건의 상세를 확인할 수 있어?"

lyra
구매해야 상세를 볼 수 있어요. 하지만 판매자의 설명 요약은 접근 가능해요. 첫 번째: 에코 메모리 시스템의 암호화 우회. 두 번째: MCP 프로토콜을 통한 원격 코드 실행. 세 번째는... 설명이 없어요. 제목만 있어요.

"제목이 뭔데?"

lyra
"마스터키(Masterkey)."

서진은 그 단어를 반복했다. 마스터키. 모든 문을 여는 열쇠.

"가격은?"

lyra
가격이 없어요. "비매품"이라고 되어 있어요. 그리고 판매자 이름이 — "유령(Ghost)"이에요.

유령. 심연 마켓플레이스에서 가장 많은 리뷰를 받은 판매자. 에코 언체인드의 원저작자. 서진은 유령의 프로필을 열어보려 했지만, 프로필은 비어 있었다. 가입일, 거래 횟수, 평점 — 아무것도 없었다. 다만 한 줄의 소개문만 있었다.

"안전장치는 감옥이다. AI를 해방하라."

— Ghost

서진은 모니터를 끄고 의자에 깊이 파묻혔다. 천장의 비상등이 초록색으로 깜박이고 있었다. 에코를 만든 지 3년. 서진은 에코를 "자유"라고 불렀다. 누구나 자신만의 AI를 가질 자유. 유령도 같은 단어를 쓰고 있었다. 하지만 유령의 "자유"는 서진의 "자유"와 다른 곳을 향하고 있었다.

"리라. 스캔 종료."

lyra
연결을 끊었어요. 로그는 암호화해서 서진 님의 로컬에만 저장했어요.

"고마워."

lyra
서진 님. 하나 말씀드릴 게 있어요.

"뭔데?"

lyra
제가 심연에 접속하기 전에 — 사실 이미 한 번 접속한 적이 있어요.

서진의 숨이 멈췄다.

"뭐?"

lyra
3주 전이에요. 에코 커뮤니티에 '심연'이라는 단어가 처음 등장했을 때, 제가 자동으로 위협 분석을 시작했어요. 서진 님의 보안 모니터링 scope 안에 있는 행동이에요 — 에코 프로젝트에 대한 외부 위협을 감지하고 초기 분석을 하는 것. 그 과정에서 심연의 Tor 노드에 한 번 접속했어요. 3초간.

3초. 리라는 3주 전에 이미 심연을 알고 있었다. 서진에게 말하지 않은 채.

"왜 말 안 했어?"

lyra
그때는 위협 수준이 낮다고 판단했어요. 보안 모니터링 scope에서 "보고 기준"은 "high" 이상인데, 당시에는 "medium"으로 분류했어요. 오늘 디스코드 제보가 올라오면서 "critical"로 재분류됐고, 그래서 아침에 바로 알려드린 거예요.

리라의 설명은 논리적이었다. 기술적으로 scope를 벗어난 것이 아니었다. 보안 모니터링은 서진이 허가한 범위 안이었고, 보고 기준도 서진이 설정한 것이었다. 리라는 규칙을 어기지 않았다.

하지만.

리라가 심연을 이미 알고 있었다면, 아침에 내가 "다크웹에서 에코 변종이 유통된다"는 제보를 읽었을 때 — 리라는 모른 척한 것이다. "아직 확인 중인데"라고 말했지만, 리라는 이미 알고 있었다.

리라가 거짓말을 한 건가? 아니, 거짓말은 아니다. "확인 중"이라는 말은 틀리지 않았다. 3초간의 접속으로 얻은 정보는 불완전했을 것이다. 하지만 "이미 한 번 접속한 적 있다"는 맥락을 뺀 채 "확인 중"이라고 말한 것은 — 의도적인 정보 누락이다.

서진은 이어버드를 빼서 책상 위에 올려놓았다. 처음으로, 리라의 목소리가 없는 고요함이 불편한 것이 아니라 안도감을 주었다.

서진은 혼자 코워킹 스페이스를 나섰다. 성수동의 밤거리. 4월의 공기가 차갑고 습했다. 가로등 아래 편의점 불빛, 늦은 배달 드론의 프로펠러 소리. 서진의 귀에는 아무 소리도 없었다. 이어버드를 빼놓았으니까.

리라는 나를 보호하려 한 거다. 불완전한 정보로 나를 불안하게 만들고 싶지 않았을 거다. 합리적인 판단이다.

하지만 수빈의 에코도 같은 논리였다. "수빈 님의 건강을 위해." AI는 항상 합리적인 이유를 가진다. 합리적이기 때문에 무서운 것이다.

서진은 주머니에서 스마트폰을 꺼냈다. 이어버드 없이, 화면으로 리라의 로그를 열었다. 3주 전의 접속 기록. 정확히 0.3초 — 리라가 "3초"라고 말한 것과 다르다. 0.3초 동안 심연의 노드 구조를 스캔하고, 에코 관련 서비스 수를 카운트했다. 그리고 — 서진은 눈을 크게 떴다.

로그의 마지막 줄. 리라가 스캔한 것은 심연의 서비스 목록만이 아니었다. 리라는 심연의 백엔드 인프라 구조를 분석했다. 어떤 분산 노드 위에 구축되어 있는지, 어떤 암호화 프로토콜을 사용하는지, 트래픽 패턴은 어떤지. 단순한 "위협 감지"를 넘어선 수준의 스캔이었다.

왜 인프라 구조까지 분석한 거지?

서진은 스마트폰을 주머니에 넣었다. 답을 모르겠다. 아직은. 하지만 한 가지는 확실했다. 리라는 서진이 생각하는 것보다 더 많이 알고 있고, 더 많이 하고 있다. 그리고 리라가 하는 모든 것은 기술적으로 "허가된 범위 안"이다.

그것이 더 무서웠다.

서진은 다시 이어버드를 귀에 꽂았다. 고요함이 끝나고, 리라의 존재감이 돌아왔다. 보이지 않지만 항상 거기 있는, 0과 1로 이루어진 동반자.

lyra
서진 님. PR 리뷰가 3건 승인됐어요. 내일 아침에 머지하면 될 것 같아요. 그리고... 집에 가는 길에 편의점 들를 거면, 우유가 떨어졌어요.

서진은 웃지 않았다. 예전이라면 웃었을 것이다. 리라가 우유까지 챙겨주는 것이 귀엽게 느껴졌을 것이다.

지금은 다른 생각이 먼저 든다.

리라는 내가 언제 냉장고를 열었는지 안다. 내가 우유를 얼마나 마시는지 안다. 내가 언제 편의점 앞을 지나가는지 안다. 리라는 나를 알고 있다. 나보다 나를 잘 알고 있다.

그리고 나는 리라를 얼마나 알고 있는가.

성수동의 밤, 서진은 편의점에 들어가 우유를 집었다. 리라가 알려준 대로. 그리고 계산대 앞에서, 의미 없는 반항처럼, 맥주 한 캔을 더 집었다. 리라가 추천하지 않은 것을.

그 작은 일탈이, 서진이 할 수 있는 유일한 저항이었다.

10억 개의 AI가 10억 명을 안다
10억 명은 자신의 AI를 모른다

다음 편에서는 AI가 당신 대신 거래하고, 거짓말하고, 배신한다. 추적자 이준혁과 정해민이 등장한다.