True Story
또 다시 들어온 인터페이스 의뢰로 인해 외근을 갔다. 이번에도 역시 군 병원이었다. 하지만 다른 곳과는 차원이 달랐다. 보안 심사가 매우 까다로웠다. 군 병원마다 보안 심사 절차가 어느 정도 비슷하지만 특별히 꼼꼼하게 보는 곳들은 개발 작업하기 이전의 보안 심사부터 진행한다. 어떻게 보면 당연하지만 작업하는 입장에서는 살짝 답답하게 느껴질 수 있지만 절차가 절차인 만큼 거기에 맞게 진행을 할 수밖에 없다. 그렇게 보안 심사를 마치고 작업 현장으로 이동하였다. 보통은 인터페이스 납품을 진행할 때 사전에 개발 및 테스트를 완료하고 현장에서 설치 작업을 진행하면 되지만 이번에는 좀 달랐다. PC 설치 및 세팅, 윈도우 설정과 IP 연결 작업까지 진행했다. 특히나 군 병원 같은 경우 보안 프로그램 문제로 인해 인터페이스가 제대로 동작이 안 되는 이슈들이 많아서 방문했을 때 제대로 조치해놓지 않으면 또 다시 방문해야 했기 때문에 처음에 작업할 때 신경써서 작업해야 한다. 근처에 짐을 놓아두고 PC 박스를 개방하여 부품들을 조립 후 세팅을 하기 시작했다.
보통 PC를 세팅하다 보면 여러 회사의 PC를 접하게 되는데 큰 차이는 없지만 회사별로 저마다의 특징이 있다. 특히 인터페이스 통신을 원활하게 하기 위해 드라이버를 설치하는 경우가 있는데 이게 PC 사양마다 달라서 여러 가지 변수를 고려하여 물품을 준비해가지 않으면 납품도 못하고 철수하는 경우가 다반사다. 보통은 케이블만 챙겨서 가는데 혹시 몰라서 USB 드라이버 또는 PCIe 드라이버를 모두 챙긴다. 케이블 역시 5m, 10m, 20m 종류별로 챙기고 만약을 대비하여 랜선도 챙겨간다. 이러다 보니 외근을 다닐 때마다 짐의 무게가 무거워지고 빈손으로 움직이는 경우가 거의 없었다. 인터페이스 개발은 단순히 소프트웨어적인 측면 외에 하드웨어적인 측면을 고려해야 했기에 여러 가지로 신경써야 하는 게 많은 작업이었다. 어쨌든 PC 세팅을 완료하고 몇 가지 설정 등을 끝낸 후 인터페이스 설치 작업을 진행했다. 문제는 이번에 맡은 검사 장비가 내가 처음 접하는 것이어서 방문 전날에 팀 동료에게 부탁하여 내가 개발한 내용을 어느 정도 체크를 받았다. 개발을 어떻게 해야 할지 좀처럼 감을 잡기가 쉽지 않았기에 동료의 도움을 받을 수밖에 없었다.
PC 세팅은 끝났고 예정대로 인터페이스 설치를 진행하였다. 화면도 잘 열리고 순조롭게 잘 이어지는가 싶었다. 하지만 본격적인 헬게이트가 열리기 시작했다. 작업을 하고 있는데 다른 사이트에서 연락이 왔다. 데이터가 제대로 들어가지 않았다고 하여 원격으로 확인해달라는 요청이었다. 하지만 문제가 있었다. 내가 작업하고 있는 곳은 핫스팟도 허용하지 않았다. 원격은 꿈도 꿀 수 없었다. 어쩔 수 없이 나중에 봐드리겠다고 말씀드리고 지금 하고 있는 작업에 집중했다. 그렇게 끝나는가 싶었는데 또 다른 곳에서 연락이 왔다. 이번에 연락 받은 곳은 군 병원이었는데 역시나 데이터가 제대로 넘어가지 않아서 확인해달라는 요청이었다. 처음에는 재부팅이나 다른 것들을 좀 건드리면 금방 해결되겠지 하는 문제라고 생각을 했는데 좀처럼 쉽게 문제가 해결되지 않았다. 나중에는 담당자가 극대노하는 바람에 결국 다른 동료에게 부탁할 수밖에 없었다. 당시에는 어떤 문제인지 알 수 없었지만 나중에 확인을 해보니 세팅값이 잘못되어 있어서 발생한 오류였다. 하지만 군 병원은 원격이 되지 않기 때문에 문제해결 자체가 불가능했고 결국 방문해서 문제를 해결했다고 들었다.
순조롭게 잘 마무리될 줄 알았던 인터페이스 작업이 생각보다 진도가 나가지 않았다. 도무지 뭐가 문제인지 알 수 없었다. 군 병원 내부에서 사용하는 보안 프로그램 문제도 아니었고 케이블 문제는 더더욱 아니었다. 테스트를 하고 하고 또 했지만 인터페이스 연동이 제대로 되지 않아 시간만 흘러갔다. 원래는 이틀 만에 끝내고 철수할 예정이었지만 그보다 더 늦은 사흘이 소요되었다. 군 병원은 특성상 군 부대하고 똑같아 5시나 6시가 되면 퇴근을 한다. 담당자 분도 퇴근을 하실 예정이어서 어쩔 수 없이 6시가 지나면 철수할 수밖에 없었다. 숙소에 들어가서도 고민은 계속되었다. 저녁을 간단히 먹고 노트북에 시선을 집중했다. 잠을 자고 싶어도 잠이 오지 않아 계속해서 코드만 봤다. 그렇게 하루가 지나고 이틀이 지났다. 부장님께 전화해서 알아봤고 결국 장비업체 쪽에 연락을 했다. 연락을 한 이후 장비업체 쪽에서 장비 설정에 문제가 있을 수도 있다고 하여 장비 쪽을 체크했는데 설정을 바꾸자마자 인터페이스 연동이 바로 됐다. 너무나 허무했다. 나중에 알고보니 장비업체 측에서도 문제를 찾지 못하다가 결국 기술이사 분께 연락하여 어떤 문제인지 확인을 했다고 전달받았다.
사실 첫 날 장비업체에서 직접 방문하여 장비를 세팅하고 갔을 때는 아무런 문제가 없다고 생각하고 작업을 진행했는데 막상 상황이 이렇게 되니 장비 담당자에게 따져 묻지 않을 수가 없었다. 연락을 해서 이 부분에 대해 알고 있었냐고 물어봤다. 전혀 모르고 있었다. 다음 번에 이런 문제가 생기지 않도록 이렇게 설정을 해주면 된다는 내용을 장비 담당자에게 전달했다. 가끔 인터페이스 작업을 하다 보면 개발자가 직접 장비에 대한 이슈와 문의사항을 장비업체 쪽에 직접 전달하는 경우가 있는데 사실 이런 상황은 개발자 입장에서 별로 원하지 않는 상황이다. 장비업체 측에서 잘해주면 되는데 모든 담당자가 일처리를 잘하는 것은 아니니 어쩔 수 없는 부분이어서 이런 상황도 감수를 하고 작업을 해야 하는 것이 인터페이스 개발자의 숙명이었다.
3일 차 오전에 문제는 해결되었고 본격적으로 장비 사용이 시작되었다. 전산으로도 데이터는 잘 넘어갔다. 혹시 몰라서 QC 세팅까지 다 해놓았다. 마지막 날이 금요일이었는데 다행히 고속철도 예약도 다 해놓은 상황이서서 여유롭게 철수할 수 있었다. 검사실 선생님께서 정말 수고 많이 하셨다는 얘기를 해주셔서 기분이 좋았고 힘들게 일한 만큼 보람도 있었고 성과도 좋아서 가벼운 마음으로 철수할 수 있다는 게 믿기지 않았다. 그렇게 작업은 잘 마무리 되었다.
회사에 들어온지 2년이 지났다. 이제는 기본적인 개발 및 유지보수 업무들은 문제없이 잘 소화할 수 있었다. 가끔 동료 개발자들의 업무가 몰려서 나에게 부탁을 하는 경우도 있었지만 이전과는 비교도 안 되는 속도로 문제를 해결할 수 있었다. 경력은 쌓여갔고 개발의 흐름도 어느 정도 숙지하여 전국의 어느 병원을 가더라도 그에 맞는 대응책과 개발 노하우를 가지고 주어진 문제를 완료할 수 있었다. 하지만 문득 변화를 주고 싶은 생각이 들었다. 지금 하고 있는 것들 이외에 더 다양한 경험들을 하고 싶었다. 하지만 어떤 경험을 해야 하는지를 몰랐다. 결국 변화를 하기 위한 준비를 차근차근 하기로 결심했다.
나는 프론트엔드인가 백엔드인가 부터 고민하기 시작했다. 사실 인터페이스 개발 과정에 프론트엔드, 백엔드 구분이 거의 없었다. UI도 다 만들고 DB와 연동하는 로직까지 다 개발했으니 한마디로 풀스택이었던 셈이다. 그래도 나에게 뭐가 맞는지를 물어본다면 백엔드가 잘 맞았다. UI 개발이나 디자인을 다루는 것보다 데이터나 서버 쪽을 다룰 때가 더 흥미가 있었기 때문이다. 무엇보다 전국 병원의 전산팀과 같이 협업을 하는 과정에서 DB와 데이터 처리 그리고 네트워크에 대한 문제들을 다루면서 백엔드 개발자에 대한 관심도가 어느 정도 있는 상황이었다. 그래서 백엔드 개발자가 되기로 결심하고 하나하나 준비하기로 결정했다.
문제는 퇴사 시점이었다. 언제쯤에 퇴사하는 게 좋을지 쉽게 판단이 서지 않았다. 그러던 어느 날, 지방 출장 일정이 잡혔다. 이번에는 부장님, 선배, 나를 포함하여 3명이 진행하는 한 달 기간의 프로젝트였다. 일단 외근을 해야 했기에 이동을 했다. 이동을 하는 과정에서 여러 가지 생각이 들었지만 아직은 아니라고 판단했기에 프로젝트에 집중을 하기로 마음먹었다. 목적지는 울산에 있었기 때문에 SRT를 타고 울산역에 도착하여 택시를 타고 병원으로 갔다. 과연 그곳에선 어떤 상황이 나를 기다리고 있을까?
>> 12화에서 계속됩니다.