brunch

You can make anything
by writing

C.S.Lewis

by 성수 Nov 04. 2024

한밤의 호출

연재소설 : 러브 코딩 29화 - 한밤의 호출

가로등 불빛으로 창문이 흐릿하게 보이는 어두운 방 안. 

민수가 곤하게 자는 가운데 전화가 울린다. 이어서 뒤척이는 소리.

잠자던 민수는 머리맡에 있는 전화기를 찾느라 더듬거린다. 그리고 이내 수화기를 집어 든다.

“여보세요.”

“잠자는데 죄송합니다. 여기 기계실인데요, 이민수씨 좀 부탁드립니다.”

민수는 아직 잠에서 헤어나지 못 한 목소리로 말한다.

“예, 이민수입니다.”

“일일마감작업 에러 때문에 전화드렸습니다.”

반사적으로 튀어나오는 민수의 반응.

“어디서 에러 났죠?”

“SNBPNCD1 잡(job)의 DNBSUR1 스텝(step)에서 비삼철(B37)이 났어요.”

“아…. B37, 디스크 용량 부족이네요. 이거는 JCL(Job Control Language)만 좀 고치면 되는데… JCL 수정 좀 부탁드려도 될까요?”

“말씀하세요.”

“이 잡(job) JCL을 화면에 좀 띄워 주시겠어요?”

수화기를 통해 키보드 두드리는 소리가 들린다.

“예, 띄웠습니다.”

“에러 났던 step 있잖아요.”

“DNBSUR1 말이죠?”

“예, JCL에서 그 부분을 좀 찾아주세요.”

“네, 찾았습니다.”

“거기 SPACE라고 적힌 부분에 숫자가 어떻게 되나요?”

“40에 5라고 적혀있습니다.”

“그 부분을 100에 5로 좀 바꿔 주세요.”

수화기 너머로 오퍼레이터가 키보드 두드리는 소리가 뚜닥뚜닥 난다.

“예, 바꿨습니다.”

“그 스텝의 INPUT 파일명이 어떻게 적혀있나요?”

“SNBSP.STEP3로 적혀있어요.”

“그러면 그 부분부터 작업을 부탁드릴게요.”

“네, 알겠습니다.”

“저, 죄송하지만 지금 몇 시인가요, 방에 불을 안 켜서요.”

“1시 40분입니다.”

“예, 감사합니다. 수고하세요.”

“지금 작업 들어갔습니다.”

민수는 수화기를 내려놓고 다시 잠을 청한다.


민수 얼핏 잠이 들었을까 싶은데 어두운 방 안에 또다시 전화벨이 울린다. 민수는 반사적으로 수화기를 든다.

“여보세요.”

“또 전화드려 죄송합니다. 여기 기계실인데요.”

전혀 죄송하지 않은 목소리의 오퍼레이터 말에 민수는 약간 신경질적으로 묻는다.

“예? 또 에러 났나요?”

“SNBPNCD3에서 S706 에러 났어요.”

S706 에러'라는 말에 민수의 목소리가 심각해진다.

“S706 에러면 프로그램 로직 에러인데….”

“어떻게 할까요?”

민수는 잠시 망설이다 대답한다.

“지금 기계실로 나갈게요.”


민수는 일어나 형광등 스위치를 켜며 시계를 본다. 2시 20분. 시스템 오류를 복구하고 새벽녘에 돌아올 수 있는 시간이다. 그래서 민수는 양복이 아닌 사복을 입는다. 어제 아무렇게나 벗어놓은 양말을 발견하고는 앉아서 그 양말을 신는다. 고요한 새벽에 느끼는 형광등 밝기가 낯설게 느껴진다. 민수는 이부자리 위에서 힘겹게 일어나서 책상 위에 던져놓은 양복 주머니에서 지갑과 열쇠를 챙겨서 불을 끄고 방에서 나간다. 

어두운 현관에서 신발을 신고 현관문을 열고 나가서 조심스럽게 닫는다. 열쇠로 소리 안 나게 문을 잠근 민수는 새벽길을 나선다.


민수는 가로등이 켜진 적막한 골목길을 지나 큰 도로로 나온다. 텅 빈 도로에 이따금 차들이 날카로운 타이어 굴러가는 소리를 공중에 휘날리며 달린다.

민수는 도로 옆에서 택시를 기다리다 다가오는 택시를 향해 손을 든다. 택시가 멈춰 서자 택시 뒷문을 열고 올라탄다.


“어디로 모실까요?”

“여의도 대성증권 옆의 태성빌딩요.”


택시가 한밤중에 텅 빈 도로를 달리다가 강변도로로 들어선다. 강변도로에 차들이 경쟁하듯 달린다. 강변도로의 눈에 띄지 않는 완만한 둔덕에도 질주하는 택시는 공중에 뜬다. 몸이 공중으로 붕 뜨는 것을 느낀 민수는 앞자리 의자의 목 받침대를 꽉 잡으며 택시 속도계를 바라본다. 150km. 강변도로를 미친 듯이 달리던 택시가 여의도로 진입하자 민수는 한시름 놓는다. 택시가 태성빌딩 앞에 이른다.

“기사님, 저 모퉁이 돌아서 세워 주세요.”

“예.”


텅 빈 도로에 택시가 멈춰 서자 민수 택시에서 내린다. 택시 문 닫히는 소리가 적막한 거리에 '탁'하며 둔탁하게 울려 퍼진다. 민수는 1층 로비의 조명이 희미하게 켜진 건물로 들어선다.


전산 기계실의 벽시계는 2시 55분을 가리킨다. 전산기 계실 안쪽 유리창 너머로 대형 전산기기가 설치된 것이 보이고 전산기 계실 특유의 기계음이 들린다. 전산 기계실에 4명의 오퍼레이터가 바삐 일하고 있다.

한 명은 시스템 콘솔 모니터를 을 주시하고 있고, 한 명은 카트리지 테이프를 챙기고 있다. 또 두 명은 대형 프린터에서 배출되는 인쇄물을 챙기며 카트로 옮기고 있다.

민수 전산 기계실로 들어서며 일하고 있는 오퍼레이터에게 인사한다.

“안녕하세요, 신계약팀 이민수입니다.”

“시스템 콘솔을 보며 작업 상황을 살피던 오퍼레이터가 민수를 알아본다.

“아, 예, 에러 때문에 오셨죠?”

“예.”

오퍼레이터는 민수 앞에 놓인 단말기를 가리키며 말한다.

“앞에 있는 단말기 사용하시면 됩니다.”

“예, 감사합니다.” 

민수는 단말기 앞에 앉아서 모니터를 보며 키보드를 치기 시작한다. 


모니터에 ID와 패스워드가 입력되자 화면이 전환되고 커맨드 창에 'DIS SNBP+'가 쳐진다. 키보드 치는 ‘탁’ 소리. 작업 창에 ‘SNBP’ 문구로 시작되는 작업들이 모니터 화면에 전개된다.

제일 마지막의 SNBPNCD3로 커서가 옮겨진다. 그리고 키보드 ‘탁’ 치는 소리.


민수는 모니터를 진지하게 바라보며 키보드를 본격적으로 치기 시작한다.


모니터 화면에 프로그램 코드가 펼쳐져 있다. 프로그램 코드 중간에 'DISPLAY 'CHECK CODE 1'이라는 문자가 키보드 소리와 함께 입력된다. 그리고 이 코드가 카피되어 프로그램 코드 중간중간에 무작위로 삽입되면서 코드명을 ‘CODE 2’, ‘CODE 3’, ‘CODE 4’로 변경된다. 커맨드 입력창에 'SUBMIT' 이 타자되고 난 후 키보드 치는 소리 '탁' 소리와 함께 작업 진행을 조회하는 화면으로 바뀐다.


민수는 모니터를 통해 작업이 돌아가는 것을 바라보다가 작업이 종료되자 다시 키보드를 치기 시작한다.

모니터에 작업 진행 조회 화면에서 작업 결과 조회 화면으로 이동한다. 작업 결과 조회 화면에 ‘CHECK CODE 1’부터 ‘CHECK CODE 11’의 문구가 반복적으로 줄줄이 이어지다 제일 마지막 줄에 ‘CHECK CODE 8’로 끝나는 것을 확인한다.


민수는 작업 결과 화면에서 프로그램 코드 화면으로 전환하며 키보드를 치기 시작한다. 민수가 바라보는 모니터 화면이 전개된다. 


모니터 화면에 체크 코드를 삽입했던 프로그램이 다시 뜨고 그 프로그램 코드가 아래에서 위로 스크롤되다가 ‘CHECK CODE 8’이 삽입된 부분에서 멈춘다. 바로 문구 바로 밑에 CONT_BIRTH_DATE 문구가 보인다. 그 문구 위로 'DISPLAY CONT_BIRTH_DATE'가 키보드 치는 소리와 함께 삽입된다. 그리고 커서가 커맨드 입력창으로 옮겨진 후 'SUBMIT'이 타자되고 입력키 치는 소리와 함께 작업이 돌아가는 화면으로 바뀐다.


민수는 모니터를 바라보며 진행되는 작업을 지켜보다가 작업이 종료되자 키보드를 치기 시작한다.

작업 결과 화면 제일 아랫단에 '991127'이 나타난다. 이 숫자를 보며 민수는 머리를 갸우뚱거린다.

“생년월일이 99년 11월 27일? 지금이 92년인데…”

민수는 모니터를 바라보며 생각한다. 어떻게 출생 연도가 99가 될 수 있을까? 고민하던 민수가 혼자서 낮게 소리친다.

“아! 1899년 11월 27일?”

현재의 92년에서 계약자의 출생 연도 99를 빼면 연령이 –7세로 처리되고 이로 인해 에러가 발생된 것이다. 

비싼 메모리 가격 때문에 연도를 마지막 두 자리 숫자만으로 관리하다 보니 이런 문제를 야기되었다. 이것들은 나중에 Y2K라는 전 세계적인 문제를 만들게 된다.

“이 계약자의 연령은 93세로 계산되어야 하는데….”

민수는 혼자서 궁시렁거리며 처리 로직을 어떻게 바꾸어야 할지를 고민한다.

계약자가 99년생 즉 1899년생이면? 민수는 해결하는 논리를 찾기 시작한다. 

“192에서 현재년도 99를 빼면 93세가 될 수 있는데….”

민수는 급한 대로 현재의 연도가 계약자의 출생 연도보다 작으면 현재 연도에 100을 더해서 처리하는 로직으로 프로그램을 변경하기 시작한다.


키보드 치는 소리와 함께 모니터 화면에 프로그램 코드가 삽입된다. 

IF   C_DOB_YY > CUR_YY

     THEN ADD 100 TO CUR_YY. 

CUR_YY의 속성값이 자리 숫자에서 세 자리 숫자로 바뀐다.

그리고 변경된 프로그램 코드로 작업이 수행된다.


모니터를 초조하게 바라보며 작업 결과를 기다리는 민수. 작업 결과 화면에 ‘END OF JOB’ 문자가 뜬다.

모니터를 보며 작업 결과에 이상이 없음을 확인한 민수가 오퍼레이터를 향해 말한다.

“에러 다 고쳤어요.”

“그렇습니까? 그다음 작업을 해도 되나요?”

“예, SNBPNCD3의 ENBSSTP4부터 작업을 시작해 주시면 됩니다.”

“잠시만요.” 

오퍼레이터는 콘솔을 바라보며 키보드를 두드린다.

콘솔에서 ‘삐빅’ 하는 소리가 난 후 오퍼레이터가 말한다.

“작업 들어갔습니다. 확인해 보세요.”

민수는 작업하던 단말기 모니터로 진행되는 작업을 확인한다.

“아 됐네요.”

민수는 단말기를 로그아웃한 후 일어서며 시계를 본다. 4시 10분.

“그럼, 이만 가보겠습니다. 수고하세요.”

민수의 인사에 오퍼레이터가 웃으며 말한다.

“수고하셨습니다.”

민수는 전산 기계실을 나선다.


민수는 건물에서 나와 텅텅 비어 있는 도로를 걷는다.

민수는 혹시 지나가는 택시가 있을까 싶어 길의 이쪽저쪽을 살피며 걷는다. 이윽고 큰 도로로 접어들자 저 멀리 빈 택시 다가오는 것을 발견한다. 민수는 손을 들어 택시를 세우고 올라탄다. 

“자양동 영동역 부근요.”

택시가 출발한다. 민수는 강변을 달리는 택시 안에서 피곤한 눈으로 밖을 바라본다.


현관문이 달그락거리고 민수 문을 열고 들어선다.

문을 여는 소리에 어머니의 경계하는 듯한 목소리가 안방에서 흘러나온다.

“누구세요?”

“저래요.”

어머니가 방문을 열고 나오면서 민수를 바라본다.

“웬일이고?”

“기계실 갔다가 오는 길이예요.”

“밤에 또 전화 왔거나, 아이고 무시라… 사람을 잡네.”

민수는 어머니 말에 웃으며 방으로 들어간다.



민수는 방으로 들어서며 시계를 본다. 탁자 위의 시계가 4시 50분을 가리킨다.

민수는 옷을 대강 벗어던진 채 이불에 눕는다. 잠이 쉽게 오지 않는지 민수는 뒤척인다. 날이 밝아오고 민수는 잠들어 있다.


어머니가 조심스러운 목소리로 민수를 깨운다.

“지금 7시 40분인데 회사 가야지.”

민수는 피곤한 눈으로 일어나며 혼잣말한다.

“잠을 잤나…”

확인하듯 어머니를 향해 묻는다.

“저가 잠들었었나요?”

“야가 무슨 소리 하노. 코를 골면서 자던데.”


“그래요?”

민수는 아쉬운 듯 이부자리에서 일어난다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari