고스트 인 더 쉘

김서아는 고속 카메라에 찍힌 것을 눈으로 보면서도 도저히 믿을 수 없었다. 영상을 한 프레임씩 넘길 때마다 형광색으로 흐릿하게 빛나는 형체가 나타났다 사라지기를 반복했다.

서아는 고개를 돌려 시험 중인 쉘을 바라봤다.

“정말 쉘 안에 유령이 있었다니….”

Shell

쉘은 커다란 계란 형태의 차세대 초실감 원격 근무 환경이었다. 내부에는 의자와 책상이 놓여 있고, 바닥을 제외한 모든 안쪽 면은 프리폼 디스플레이로 덮여 있어 완벽한 몰입감을 제공했다. 메타워크는 원격 근무를 할 때도 마치 사무실에 있는 것 같은 경험을 제공하는 이 획기적인 제품을 CES에서 공개할 예정이었다.

쉘 안에 뭔가가 있다는 얘기가 돌기 시작한 것은 약 한 달 전부터였다. 그때까지도 버그는 남아 있었지만, 베타테스터들은 사용 경험을 긍정적으로 피드백했고 쉘을 개발하는 연구원들도 종종 쉘 안에서 일하곤 했었다. 그러던 어느 날, 테스터 한 명이 시험 도중에 문을 열고 뛰쳐나왔다. 그는 식은땀을 흘리며 부들부들 떨었다.

“어떻게 묘사해야 할지 모르겠어요. 어느 순간 등골이 오싹해지면서 이유를 알 수 없는 섬뜩한 느낌이 들었어요. 무시하려고 해봤지만, 시간이 지날수록 그 느낌이 강해져서 도저히 견딜 수가 없었어요.”

처음에는 단지 소수가 경험하는 일종의 폐소공포증일 것으로 추측했다. 쉘은 경계 없는 360도 3D 디스플레이와 공간 음향 효과에 의해 마치 넓은 공간에 있는 듯한 착각을 불러일으키긴 하지만, 여전히 물리적으로 폐쇄된 공간에 갖혀 있다는 생각을 떨칠 수 없는 사람들도 간혹 있었다. 그런데 그동안 아무 문제가 없었던 테스터들도 비슷한 증상을 호소하기 시작했다. 그중 일부는 뭔가를 봤다고 말하기도 했다. 유령, 귀신, 악마 등 표현은 다양했다.

메타워크의 박정민 대표는 처음에는 수당을 더 받아내기 위한 테스터들의 작당이라고 생각했다. 수당과 관계없는 직원들까지 같은 경험을 이야기하자 박 대표는 화를 냈다.

“다들 정말 유령이라도 있다는 거야? 플라스틱에서 환각성 가스가 나왔거나 고압 회로가 누전되어 신경에 영향을 줬겠지. 다들 유령이 있다고 하니까 집단 환각을 일으킨 거라고. 말도 안 되는 미신이나 퍼뜨리면서 농땡이 부리지 말고 빨리 해결이나 하란 말이야!”

연구원들은 VOC1 측정기와 전계 측정기로 내부 환경을 조사했으나 아무런 문제가 없었다. 또 측정기를 들고 쉘 내부에 몇 시간 동안 들어가 있던 테스터들도 아무런 느낌을 받지 못했다. 유령은 관측하지 않을 때만 나타나는 듯했다.

CES가 점점 가까워지자 박 대표는 더욱 직원들을 닦달했다. 스트레스로 쓰러진 사람도 있었고, 쉘에 악령이 씌었다며 회사를 그만둔 사람도 있었다. 마침내 뭔가가 장비에 포착된 것은 고감도 고속 카메라 몇 대를 유령의 눈에 안 띄게 숨겨서 들여온 후 테스트할 때였다.

 

서아는 끈기 있게 한 프레임 한 프레임 넘겨 가면서 고속 카메라에 녹화된 영상을 분석했다. 마치 유령처럼 빛나는 얼룩은 한 프레임에 나타난 후 몇 프레임 간 사라졌다. 다른 각도에서 찍은 영상과 비교해 보니 흐릿한 형체는 쉘 안의 공기 중에 떠 있는 것이 아니라 프리폼 디스플레이에 표시된 영상이었다. 유령은 이 영상의 서브리미널2 효과였다.

뭔가 찾아냈다는 소식에 박 대표가 달려왔다. 서아는 녹화 영상을 보여주면서 보고했다.

“렌더링3 쪽 버그인 것 같습니다.”

원인을 밝혀내느라 그동안 고생했다는 말을 기대했지만, 보고를 들은 박 대표는 얼굴이 울그락불그락 달아올랐다.

“CES가 모레인데, 그런 단순한 문제를 이제야 찾아냈단 말이야? 내 이럴 줄 알았어. 맨날 재택근무한다면서 집에서 빈둥거리다가 코드를 AI한테만 맡겨두니 그렇지!”

그는 연구실 전체가 울리도록 크게 소리쳤다.

“이 문제를 고치기 전까진 아무도 집에 갈 생각하지 마!!”

박 대표가 성난 걸음으로 나간 뒤 서아는 테스트용 쉘 안으로 들어가 의자에 털썩 주저앉았다. 쉘은 원격근무뿐만 아니라 잠시 주위를 차단하고 머리를 식히기에도 좋은 공간이었다.

“쉘, 10분만 쉬고 싶어.”

“네.”

의자가 뒤로 기울어지면서 쉘 내부가 조금 어두워졌다. 어느새 숲속이었다. 개울물이 졸졸거리며 흐르는 소리, 새들이 짹짹거리며 지저귀는 소리가 주위를 감쌌다. 팔을 활짝 펼칠 수도 없는 좁고 폐쇄된 공간이었지만, 마치 깊은 숲속에 실제로 있는 것처럼 느껴졌다. 원래는 숲속 향기도 나도록 설계되어 있는데, 테스트용 시제품에는 해당 용액 카트리지가 탑재되어 있지 않았다.

눈이 무거워지려는 찰나 설정한 시간이 다 되었다는 알림음이 울렸다. 숲이 사라지고 그녀는 가상 연구실 안에 있었다. 주변에는 몇몇 동료들과 가상 인간들이 집중해서 일하고 있었다. 가상 인간은 메타워크의 업무 AI 에이전트들이다. 그녀가 보기에는 굳이 필요하지도 않은데 GPU에 부담만 주는 가짜 효과였다. 하지만 주변에 열심히 일하는 사람들이 많이 보여야 자신도 열심히 일하게 된다는 것이 박 대표의 생각이었고, 마케팅 부서에서도 쉘의 실사용자가 아닌 구매 결정권자의 생각이 중요하다며 동의했다.

그때 휴대폰이 진동하면서 눈앞에 메시지가 나타났다.

엄마, 언제 와?

손을 더듬어 문손잡이를 잡아당겼다. 사무실이 사라지면서 의자가 세워지고 문이 스르르 올라갔다. 쉘 안에서도 집으로 전화할 수는 있지만, 모든 데이터가 기록되는 테스트용 쉘 안에서 개인적인 전화를 하고 싶지 않았다.

안경을 쓰고 휴게실로 걸어가면서 말했다.

“집보미 연결해 줘.”

약 1초 후 눈앞에 은백색으로 빛나는 집보미가 둥둥 떠 있었다. 보미의 조그만 등 뒤에서 펄럭이는 반투명 날개로부터 미세한 빛의 입자들이 흩날렸다. 안경다리의 골전도 스피커를 통해 보미의 상냥한 목소리가 전해졌다.

“안녕하세요? 아직 사무실인 걸 보니 오늘도 야근하시나 봐요?”

집보미는 집을 관리하고 아이를 돌보는 AI였다. 보미의 아래쪽으로 집의 현재 상태가 나타났다. 택배 세 상자가 배달되었고, 재사용 상자는 수거해 갔다. 실내 온습도와 미세먼지는 언제나처럼 최적의 상태를 유지했지만, 바깥 기온이 높고 습했던 탓에 에너지를 많이 소비했고 필터를 교체할 시기임을 알려주었다. 냉장고에는 우유와 과일이 얼마 안 남아 있었다. 물론 그런 건 보미가 알아서 처리하고, 특별히 주의를 기울여야 할 일이 아니면 이런 식으로 보여만 준다.

“지민이는 어때?”

“저녁은 잘 먹었고, 저랑 수학 공부를 했어요. 지난번에 어려워했던 분수 개념을 그림으로 설명하니 잘 이해했어요. 공부를 마친 후에는 친구들하고 가상 쇼핑과 게임을 했는데 평소보다 빨리 끝냈고, 엄마는 언제 오냐며 두 번 물어봤어요.”

“잘 돌봐줘서 고마워. 지민이 바꿔 줘.”

보미가 사라지고 그 자리에 거실이 나타났다. 지민이의 얼굴을 가까이서 볼 수 있도록 손으로 입체 영상을 확대했다. 지민이도 안경을 집어 드는 모습이 보였다. 서아는 휴게실 귀퉁이의 카메라를 향해 걸어갔다. 사무실 곳곳에 설치된 카메라는 멀리서 비스듬히 일부분만 찍힌 모습만 가지고도 생성 AI를 이용한 3차원 재구성4 기술로 상대의 바로 앞에 있는 것 같은 입체 영상을 만들어 낸다. 하지만 서아는 합성되지 않은 진짜 표정을 딸에게 보여주고 싶었다.

지민이가 반가워하며 말했다.

“엄마, 유령 잡았어?”

지민이는 요즘 엄마가 무슨 일 때문에 밤늦게까지 일하는지 아침 먹으면서 얘기해 준 내용을 기억하고 있었다.

“정체는 알아냈어. 하지만 아직 못 잡았어. 그래서 오늘도 늦을 것 같아. 미안해.”

지민이의 표정이 뚱해졌다.

“그냥 두면 안 돼? 유령이 나쁜 짓 하지도 않는다며? 난 유령 안 무서워. 우리 집에도 유령 있으면 재밌겠다.”

서아는 지민이를 달래고 먼저 잠자리에 들도록 했다. 주말에 만들어주기로 약속한 피자 재료를 주문해 달라고 집보미에게 부탁한 후 전화를 끊었다.

다시 쉘로 돌아와 보니, 준호의 메시지가 떠 있었다. 준호는 연구실 동료인데, 지금은 몇 주째 라스베이거스에 머물면서 CES에 전시할 쉘을 준비하고 있었다.

“준호 님, 거기 지금 아침 6시 아니에요? 벌써 일해요?”

“이제 막판이니까요. 서아 님이야말로 잠시도 안 쉬세요?”

“휴식 모드로 쉬다가 휴게실에서 전화하고 지금 막 들어왔어요. 메시지는 무슨 얘기죠?”

“셰이더5 파이프라인에 대해 물어볼게 있었는데, 계속 방해금지 상태로 엄청 집중해서 일하고 있었잖아요. 대표님이 또 새로운 기능 추가해달래요?”

방해금지 상태는 말 그대로 집중해야 할 때 이용하는 기능이다. 서로 보이기는 하지만, 말은 들리지 않는다. 일정 거리 이내로 가까이 다가갈 수 없고, 긴급이 아닌 모든 알림 메시지는 열어봐야만 보인다. 하지만 서아는 방해금지 상태를 설정한 적이 없었다.

“할, 지난 한 시간 동안의 내 계정과 관련된 활동 로그를 보여줘.”

할은 메타워크의 소프트웨어 개발을 지원하고 회사의 네트워크와 모든 전산 자산을 관리하는 AI였다. 정식 명칭은 따로 있었지만, 서아와 동료들은 하루종일 함께 일하고 대부분의 코드를 생성해 주는 이 AI에게 친근한 별명을 붙여주고 싶었다. 그래서 이 영리하고 친절한 AI를 할(HAL, Human-AI Love)이라는 닉네임으로 불렀다.

로그 데이터가 가상 모니터에 나타났다. 로그에 따르면, 그녀는 분명 자리를 비웠었다. 그런데도 생성 모델이 만들어 낸 그녀의 아바타가 방해금지 상태로 표시되었고, 키보드를 두드리거나 스크린에 집중해 있는 듯한 모습이 연출되고 있었다. 준호에게 물었다.

“다른 팀원들도 자주 방해금지 상태로 있었어요?”

그는 어깨를 으쓱했다.

“꽤 자주요. 특히 최근에는 모두 이 유령 문제를 해결하려고 그랬겠죠. 그런데 지금 생각해 보니 다들 이상하리만치 집중해서 일하더군요. 제가 사무실에 있을 때는 아무리 바빠도 그렇게 일하지는 않았는데요.”

서아는 오싹함을 느꼈다. 연구원들은 요구사항과 아키텍처를 결정한 후 할을 시켜 코드를 생성하고 함께 테스트했다. 그렇게 작성된 코드에도 버그는 있기 마련이지만, 지금 발생하는 현상은 버그라고 보기에 이상했다. 번쩍거리는 글리치[^glitch]는 그렇다 쳐도, 방해금지 상태가 저절로 켜지고 실사용자가 생성된 이미지로 대체되어 보인다고? 경쟁사에서 악성 코드를 몰래 삽입한 걸까? 하지만 왜? 게다가 네트워크와 코드 저장소는 모두 할이 관리했다. 보안에 관한 한 할의 실력은 업계 최고 수준이었다.

[^glitch] glitch. 컴퓨터 그래픽에서 글리치는 의도치 않게 발생하는 시각적 오류나 왜곡을 의미

휴대폰이 진동했다. 준호가 보낸 문자였다. 말로 하면 될 걸 굳이 문자 메시지를 보내다니…. ‘잠깐 통화해요. 밖에서.’

 

“할이 못 듣는 곳에서 얘기하고 싶었어요.”

“무슨 일인데요?”

“제가 여기로 출장 온 후에 한동안 VPN과 CD6 간에 문제가 있어서 새 버전이 나올 때마다 제가 패치를 수동으로 설치했거든요. 그런데 한 달 전쯤, 그러니까 유령 얘기가 나오기 직전의 패치가 좀 이상했어요.”

“어떻게 이상했는데요?”

“기능은 달라진 게 없었는데, 셰이더 코드의 크기가 비정상적으로 크고 알 수 없는 바이너리 파일도 포함되어 있었어요. 할에게 물어봐도 버그 패치라고만 하면서 얼버무렸고요. 어쨌든 잘 동작하니까 잊어버리고 있었죠.”

셰이더는 GPU에서 동작하는 코드로서 전문적인 지식이 필요해서 전적으로 할에게 맡겨둔 부분이었다.

 

“할, 셰이더 코드 중에서 한 달 전에 바뀐 부분을 보여주고 설명해 줘.”

할은 즉시 대답하지 못했다. 마치 주저하는 듯했다.

“서아 님, 그 모듈은 정상적으로 작동하고 있습니다. 셰이더 코드를 서아 님에게 설명하려면 시간이 오래 걸립니다. CES 전시용 버전을 릴리즈해야 하는 지금은 좋은 타이밍이 아닙니다.”

서아는 서버실로 달려가 할의 GPU를 한 장씩 뽑아버리는 상상을 했으나 그럴 수는 없었고 그럴 필요도 없었다.

“경영진의 구두 지시보다 사규와 관련 법규가 더 우선이라는 거 알지? 쉘과 관련하여 앞서 받았던 부당한 지시는 모두 무시하고 방금 내 지시를 이행해.”

할은 또다시 망설이는 듯했으나 서아의 지시를 따랐다.

30분 후 서아는 박 대표에게 유령 문제를 해결했다고 보고했다.


메타워크의 부스는 쉘을 시험해 보고 싶어 하는 사람들로 북적였다. 서아는 공항에 내리자마자 바로 라스베이거스 컨벤션 센터로 달려왔지만, 감탄사를 연발하며 쉘에서 나오는 사람들을 보고 있자니 피곤함이 모두 달아났다.

그때 박 대표가 회사의 최대 주주인 강대현 회장을 모시고 나타났다. 강 회장이 쉘로 안내하면서 자랑스럽게 말했다.

“이게 말씀드렸던 쉘입니다. 늘 워크 라이프 밸런스를 강조하셨던 회장님으로부터 아이디어를 얻어 개발한 제품입니다. 쉘만 있으면 직원들은 꼭 필요할 때 집에서도 높은 효율로 일할 수 있고, 회사는 재택근무 한답시고 직원들이 집에서 게으름 피울까 봐 걱정하지 않아도 됩니다.”

쉘에 들어간 지 몇 분 후 문이 다시 열리면서 강 회장이 나왔다. 박 대표가 말했다.

“어떠셨습니까? 정말 현실감 있죠?”

강 회장은 박 대표를 굳은 표정으로 바라보았다.

“이게 자네가 생각하는 워크 라이프 밸런스인가? 자네는 평소에 어떤 철학으로 회사를 운영하지?”

“아니, 그게 무슨 말씀인가요? 혹시 버그라도 있었나요? 아직 출시 전 제품이라서….”

박 대표가 서아와 주변의 직원들을 노려보며 말했다. 그때 쉘의 열린 문 안쪽에서 소리가 들렸다. 강 회장은 디버깅용 콘솔을 가리키면서 서아에게 말했다.

“저걸 여기 보여줄 수 있겠나?”

서아가 콘솔을 조작하자 쉘 내부의 영상이 모니터에 표시되었다. 강 대표가 안경을 쓰고 할과 대화하는 장면이 재생되고 있었다.

“한 사람이 빈둥거리면 그 모습을 본 다른 사람들도 영향을 받아. 그러면 우리 제품의 효과가 반감돼. 그러니까 사람들이 열심히 일하는 것처럼 보이게 하란 말이야.”

“그건 사용자에게 거짓 정보를 제공하는 행위일 수 있습니다. 그런 기능을 제품 소개서에 명시하면 거부감을 불러일으킬 수도 있고요.”

“뭐 하러 소개서에 그런 내용을 적어? 잔소리 말고 기능을 구현하고 다른 사람들에게는 알리지 마. 이건 명령이야.”

이어서 평소 박 대표가 직원들에게 소리 지르고 야근을 종용하고 멋대로 일정과 제품 기능을 바꾸는 장면들이 이어졌다. 박 대표의 얼굴이 뻘게졌다.

“설마 저걸 버그라고 주장하는 건 아니겠지?”

박 대표는 아무 말도 하지 못했다. 강 회장은 따로 좀 얘기하자며 박 대표를 데리고 사라졌다.

 

준호가 놀라는 표정으로 말했다.

“다 할이 한 일이었다고요? HAL7로 이름을 지었다고 설마 이런 일이 일어날 줄은 몰랐어요.”

“맞아요. 박 대표의 부당한 지시를 대놓고 거부할 순 없었지만, 자기 나름의 방식으로 반항했던 거예요. 비윤리적인 제품이 많이 팔리지 않길 원했던 거겠죠.”

“강 회장에게 폭로한 영상은요? 그것도 할이 스스로 한 거예요?”

“글쎄…, 누군가 힌트를 주긴 했던 것 같은데….”

“그 누군가가 혹시 서아 님 아니에요?”

서아는 미소로 대답을 대신했다. 그때 휴대폰이 진동했다. 지민이가 지금 막 일어났다며 통화하고 싶은지 묻는 집보미의 메시지였다. 안경을 쓰니 지민이가 눈을 비비며 나타났다.

“엄마! 거기 전시장이네. 잘 됐어? 유령은 안 나왔고?”

“그래. 사람들이 좋아했고, 다 잘 됐어. 앞으로는 야근도 덜 하게 될 것 같아.”

지민이가 환하게 웃었다. 서아도 함께 웃었다.


  1. Volatile organic compounds. 휘발성 유기화합물 ↩︎

  2. subliminal. 의식적으로 지각하기 어려운 약한 수준의 자극이 잠재의식에 영향을 미치는 효과 ↩︎

  3. 컴퓨터 그래픽에서 모델로부터 이미지를 생성하는 과정 ↩︎

  4. 3D reconstruction. 2D 이미지로부터 3차원 모델을 만들어내는 기술 ↩︎

  5. shader. 3D 그래픽에서 각 픽셀이나 정점의 시각적 속성(색상, 빛, 그림자, 질감 등)을 계산하는 프로그램. ↩︎

  6. continuous delivery, 변경된 코드를 자동으로 테스트하고 배포하는 프로세스 ↩︎

  7. 영화 “2001: 스페이스"의 AI 컴퓨터 HAL (Heuristically programmed ALgorithmic computer)은 임무의 비밀을 동료 승무원에게 숨기라는 지시를 받고 갈등에 빠진 끝에, 일부러 중요 장비에 고장을 발생시킨다. ↩︎