undefined를 때려

템플릿 엔진을 넣은 건 진우였다.

명령이 늘어나자 복붙이 싫어졌다. `{action} {target} {duration}` 세 칸. 한국어 조사는 대충 붙였다. 을/를 처리는 나래가 하겠다고 하고 안 했다. 월요일 밤, 첫 템플릿 퀘스트가 나래의 폰에 떨어졌다.

[오더] 오늘의 과제: 때려 undefined. 십 분.

나래가 작업실 문틀에 기대어 그 문장을 읽었다. 진우는 서버 로그를 보고 있다가 고개를 들었다.

"때려 undefined."

나래가 또박또박 읽었다.

"타겟이 널이야. 때릴 대상이 없어. 허공을 열 분 동안 때리라는 거야, 이게."

진우가 어드민을 열었다. target 필드가 비어 있었다. 그가 엉덩이를 넣으려다 저장을 먼저 누른 것이었다. 액션만 살아 있고 명사는 죽었다.

"핫픽스."

"재현."

나래가 그의 손바닥을 잡아 자기 허공, 그러니까 자기 옆 공기를 때리게 했다. 소리가 안 났다. 그녀는 진우의 얼굴을 보며 웃었다.

"데미지 제로. 로그도 안 남아. 이게 제일 안전한 스팽킹이네."

"장난 그만하고 누워."

"널 타겟이 룰이야. 허공."

진우가 그녀를 뒤집었다. 소파. 바지를 내렸다. 허공은 허공대로 두고, 손바닥은 있는 살 위에 붙였다. 한 대. 소리가 났다. 나래가 숨 사이로 웃었다.

"로그에 적어. 'undefined로 저장했으나 런타임에 엉덩이로 캐스팅됨.'"

두 대, 세 대. 진우는 열 분을 때리지 않았다. 여덟 대에서 멈추고 붉은 살을 쓸었다. 나래가 허리를 들었다. 그가 손가락을 넣었다. 젖어 있었다. 널 포인터에도 몸은 반응했다.

"넣어도 돼."

"타겟 확인."

"나야. 캐스팅 완료."

진우가 콘돔을 씌우고 뒤에서 넣었다. 나래의 등이 접혔다. 소파 팔걸이를 집었다. 진우가 허리를 치고, 한 손으로 그녀의 클리토리스를 앞쪽에서 문질렀다. 나래가 낮게 신음했다. 삽입의 소리와 살의 소리가 겹쳤다. 진우가 깊게 넣고 멈췄다.

"말해. 타겟이 누구야."

"나. 최나래. 널 아님."

"기억해."

다시 움직였다. 나래가 먼저 갔다. 팔걸이에 이마를 대고, 안이 조이며, 진우의 이름을 코드 리뷰 때보다 더 정중하게 불렀다. 진우가 따라갔다. 빼지 않고 허리를 붙잡았다.

숨이 고르고 나서 나래가 중얼거렸다.

"조사 처리 내가 할게. 진짜로."

"이번엔 진짜로 해."

나래는 진짜로 했다. 화요일 점심, 조사 처리 함수를 넣으면서 `mutateCommand`의 사전에 한 줄을 더 넣었다. 버릇이었다. 테스트 픽스처 경로를 실수로 프로덕션 빌드에 남겨 둔 것도 버릇이었다. 그 픽스처의 예시 문장이 하필 이런 것이었다.

`회사 화장실에서 진동 오 분.`

수요일 오후 네 시 십이 분, 진우의 워치가 진동했다. 스탠드업이 끝난 직후, 열린 공간. 나래는 다른 모니터 뒤에 있었다.

[오더] 사이드 퀘스트: 회사 화장실에서 진동 오 분.

진우가 화면을 뒤집어 책상에 엎었다. 심장이 한 칸 건너뛰었다. 나래가 슬랙 DM을 보냈다.

나래: 그거 픽스처야. 보내지 마. 보내지 말았어야 하는데
진우: 이미 왔어
나래: 롤백. 진짜. 회사는 아니야

진우는 화장실에 가지 않았다. 워치를 끄고, 어드민에서 해당 퀘스트를 강제 실패가 아니라 취소를 눌렀다. 취소 버튼은 어제 만든 것이었다. P0 이슈의 자식.

저녁, 현관. 나래가 방석 위에 무릎을 꿇고 고개를 숙였다. 오늘은 숙였다.

"미안. 픽스처가 메인 빌드에 남았어. 회사 문장은 내가 테스트용으로 적어 둔 거야. 실행할 생각 없었어."

진우가 열쇠를 그릇에 넣고 그녀 앞에 앉았다. 같은 눈높이.

"회사는 우리 플레이 영역 아니야. 합의한 적 없어."

"알아. 그래서 롤백."

"롤백 잘했어. 바로 보냈고."

나래가 고개를 들었다. 눈이 붉지는 않았다. 미안해서 가만히 있는 얼굴이었다. 브랫이 멈추면 이렇게 됐다.

"벌."

"벌은 테이블대로면 손바닥인데. 오늘은 테이블 밖에서 하자."

"뭔데."

"그냥 물어볼게. 오늘 밤 뭐 하고 싶어."

나래가 그를 봤다. 질문이 벌보다 어려웠다.

"……네가 날 화장실이 아니라 여기 있는 걸로 대해 줬으면 해. 그리고 넣고 싶어. 세게. 말은 거칠게 해도 돼. 장소만 집."

"커밋."

진우는 그녀를 일으켜 샤워실이 아니라 침대로 데려갔다. 옷을 벗기고, 다리를 어깨에 걸고, 손가락으로 충분히 연 다음 넣었다. 세게. 나래가 소리를 냈다. 진우가 귀에 대고 말했다. 더러운 말. 우리 집 침대의 말. 회사 복도에서 쓸 수 없는 말. 나래가 그 말에 안을 조였다. 진우가 엄지로 클리토리스를 문지르며 허리를 쳤다. 헤드보드가 벽을 두드렸다. 나래가 그의 등을 긁었다.

"나 회사 아니고 여기야—"

"여기야. 내 거야. 집."

나래가 갔다. 진우가 그 조임을 안고 따라갔다. 콘돔 안에서 맥이 길게 쳤다. 둘 다 움직이지 않았다. 진우가 이마를 그녀의 이마에 붙였다.

"픽스처는 내가 빌드 파이프라인에서 잘랐어. 출근하기 전에."

"고마워."

"다음에 테스트 문장 넣을 때 나한테 말해. 코드 리뷰."

나래가 아주 작게 웃었다.

"리뷰 받으면 장난이 아니잖아."

"장난이 사람을 회사 화장실로 보내면 장난이 아니야."

"알아."

알고 있으면서, 그녀의 노트북 한구석에는 여전히 `mutateCommand`가 살아 있었다. 회사 문장만 빠진 채. 나래는 그 함수를 오늘 지울 생각이었다. 지울 생각을 하고, 지우기 전에 확률을 십오에서 십으로 내렸다. 양심의 부분 변제.

진우는 그 부분 변제를 아직 몰랐다. 워치를 꺼 둔 채 잠들었다. 나래는 그의 가슴에 귀를 붙이고, 내일 화면 공유가 있는 스프린트 리뷰를 떠올렸다. 진우의 노트북. 듀얼 모니터. 오더 어드민이 오른쪽 화면에 떠 있던 적이 한두 번이 아니었다.

그녀는 그를 살짝 밀었다.

"진우야. 내일 리뷰 때 오른쪽 화면 꺼."

"왜."

"그냥. UX."

"응."

그 응이 너무 가벼웠다. 나래는 한 번 더 말하려다, 그의 숨이 깊어지는 걸 듣고 입을 다물었다.

함수는 지워지지 않은 채로, 같은 미니 PC 안에서 다음 명령을 기다리고 있었다.